2008-12-27 14 views
7

Me gusta mucho la UI del comentario de Stack Overflow y estoy buscando implementar lo mismo en mi propio sitio web. Miré el código y parece que la herramienta principal aquí es WMD, con JQuery TextArea Resizer desempeñando un papel secundario.Ideas sobre la implementación de los comentarios al estilo Stack Overflow

WMD convierte el Markdown en HTML en el lado del cliente. Eso es muy bueno porque ayuda con la vista previa pero me encuentro con un desafío cuando lo envío al servidor. Si hay un error de validación (digamos que el usuario ingresó una dirección de correo electrónico no válida en alguna otra parte del formulario de comentarios, o quizás no ingresó su nombre), entonces el servidor responde al volver a mostrar el formulario con un mensaje de error y el campos de formulario prepoblados Solo que ahora el texto del comentario es HTML, no Markdown, porque el servidor nunca vio el Markdown. Pero me gustaría que sea Markdown, ya que eso es lo que el usuario estaba ingresando.

¿Alguna idea aquí?

He considerado varias ideas:

  • hacen una HTML-to-Markdown transformation lado del servidor. No tan entusiasmado con esta idea. Parece que Hokey se está transformando de Markdown a HTML de nuevo a Markdown, y como usuario siempre me resulta irritante cuando el software reformatea mi texto/código.
  • Validación del lado del cliente (para aumentar la validación del lado del servidor, que por supuesto conservaría). Parece una dirección razonable, aunque actualmente estoy usando reCAPTCHA en mis formularios de comentarios, lo que significa que necesito publicar al menos la parte reCAPTCHA en un servidor.
  • Pierde WMD y usa MarkdownJ para transformar el Markdown en HTML en el servidor. Tendría que buscar algún otro mecanismo para lograr la función de vista previa, que quiero mantener.

Lo ideal sería que hubiera alguna forma de obtener la versión de Markdown del texto y enviarla al servidor además del HTML, pero no soy lo suficientemente de JavaScript para saber si eso es real. posibilidad.

Cualquier sugerencia apreciada.

Respuesta

5

Ver esta pregunta: Convert HTML back to Markdown for editing in wmd (yay por el cuadro "Relacionados" en el lado derecho del navegador!).

+0

Gracias Chris. Esto es exactamente lo que estaba buscando. Esta vez mordido por RTFR, supongo. –

3

Solo he visto las ADM a un nivel superficial, pero enviar el área de texto al servidor parece bastante sencillo; de hecho, casi no veo cómo podrías evitarlo si el área de texto es parte de tu formulario. Según tengo entendido, tu área de texto contiene marcas y WMD las convierte a HTML para mostrarlas en otra parte de tu página. Simplemente incluya el área de texto en el formulario que se envía y debería verlo en el lado del servidor.

+3

Sí, recuperar y almacenar el texto "en bruto" un usuario entra aquí en SO - exactamente de la manera que usted describe! –

+0

Sí, lo tengo enviando el área de texto muy bien ... es solo que el navegador está enviando HTML al servidor, no a Markdown. Pero parece que por la respuesta de Chris, una de las opciones de WMD es enviarla al servidor como Markdown. Suspiro, mordido por RTFM. :-P –

5

Enviaría los datos como un descuento y luego dejaría que el servidor los convierta en html cuando hayan pasado las validaciones. WMD tiene una opción para especificar el formato de datos que enviará al servidor. Sólo tiene que añadir

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

Antes de la llamada a armas de destrucción masiva

Cuestiones relacionadas