Question

J'aime l'interface utilisateur de commentaires Stack Overflow beaucoup et je suis à la recherche dans la mise en œuvre de la même chose sur mon propre site web. Je regardais le code et il semble que l'outil principal est ici ADM , avec le JQuery TextArea Resizer jouant un rôle de soutien.

ADM convertit Markdown en HTML sur le côté client. C'est assez agréable car il aide avec la prévisualisation, mais je lance dans un défi que lors de l'envoi au serveur. S'il y a une erreur de validation (dire que l'utilisateur est entré dans une adresse e-mail valide sur une autre partie de la forme de commentaires, ou il n'a pas entré son nom peut-être), le serveur répond par réafficher le formulaire avec un message d'erreur et le les champs de formulaire préremplis. Seulement maintenant le texte du commentaire est HTML, pas démarques, car le serveur n'a même jamais vu le Markdown. Mais je voudrais que ce soit Markdown puisque c'est ce que l'utilisateur entrait.

Toutes les idées ici?

Je l'ai examiné diverses idées:

  • Faites un côté serveur HTML à Markdown transformation . Non pas que enthousiasmés par cette idée. Semble hokey pour transformer de Markdown en HTML revenir à nouveau Markdown, et en tant qu'utilisateur, je trouve toujours irritant lorsque le logiciel reformate mon texte / code.
  • validation côté client (pour augmenter la validation côté serveur, que je de retenir bien sûr). On dirait une direction raisonnable mais actuellement j'utilise reCAPTCHA sur mes formulaires de commentaires, ce qui signifie que je dois poster au moins la partie reCAPTCHA à un serveur.
  • Perdre armes de destruction massive et utiliser MarkdownJ pour transformer le Markdown en HTML sur le serveur. Je dois chercher un autre mécanisme pour accomplir la fonction de prévisualisation, que je veux garder.

Idéalement il y aurait un moyen d'obtenir la version Markdown du texte et soumettre que le serveur en plus du HTML, mais je ne suis pas assez d'un gars JavaScript afin de savoir si c'est une possibilité réelle.

Toutes les suggestions ont apprécié.

Autres conseils

J'envoyer les données démarquage puis laissez le serveur convertir en html lorsque les validations ont passé. ADM a une option pour spécifier le format des données qu'il envoie au serveur. Il suffit d'ajouter

wmd_options = {
        //Markdown or HTML
        output: "Markdown"
    };

Avant l'appel à wmd

Je n'ai regardé armes de destruction massive à un niveau superficiel, mais soumettre le textarea au serveur semble assez simple - en fait, je vois mal comment vous pourriez l'éviter si l'textarea fait partie de votre formulaire. Si je comprends bien, votre textarea contient des balises et armes de destruction massive convertit au format HTML pour l'affichage dans une autre partie de votre page. Il suffit d'inclure le textarea sous la forme qui obtient soumis et vous devriez le voir sur le côté serveur.

scroll top