Queremos la más básica (en el sentido de "fundamental") la funcionalidad de los sitios Pila de cambio, preguntar y responder, a trabajar sin JavaScript . Las cosas más avanzadas como votar, marcar, detalles de UI, textos de ayuda, favoritos, bandeja de entrada global y otras cosas que no requieren JavaScript, y eso está bien. Pero lo único que los sitios no pueden vivir sin – Q & A – no debería tener ese requisito, para mantener la fricción lo más baja posible.
Por supuesto, cuando no tiene JavaScript como requisito, no puede exigir que el cliente presente el Margen.
Incluso si vuelve a desinfectar en el lado del servidor, permitir que el cliente haga el renderizado obviamente elimina la confianza que puede tener en la versión renderizada que realmente se realiza a partir del Markdown. Imagine la siguiente:
I, un spammer mal, publicar la siguiente respuesta:
As you can sea on [this awesome site][1],
... (long text on thread-safe usage of the turtle in LOGO) ...
Hope that helps!
[1]: http://almost-real-rolex-watches.biz
Pero envío una versión procesada en la que el enlace en realidad va a un sitio relevante sobre las complejidades de la concurrencia de tortuga. Dado que el servidor espera tanto el origen de Markdown como el HTML renderizado de mí, confía en que el uno fue hecho del otro.
A lo largo se encuentra Sean Sceat, reconocido usuario de Stack Overflow con una reputación de 120k solo en la etiqueta del logotipo. Él ve que el enlace realmente va a una página relevante, le gusta la respuesta, lo sube, publica una "Gran respuesta, ¡el sitio al que se vincula tiene toneladas de contenido útil!" comente, y mientras lo hace, arregla el error tipográfico "mar" -> "ver" (que el spammer hizo deliberadamente).
Pero el Markdown que estaba en el editor después de hacer clic en "editar" hizo que no ya no contenga el enlace correspondiente; contenía el enlace de Rolex. Y por lo tanto, – sin el conocimiento de Sean –, no solo corrigió el error tipográfico, sino que también cambió el enlace para ir al sitio del spammer.
Ahora tiene una publicación en la que la última edición proviene de un usuario de confianza que respalda la respuesta, pero con un vínculo que preferiría que no hagamos clic en las personas.
Y el historial de revisiones (consulte el punto 2.), ni siquiera mostrar que el enlace fue cambiado.
Los problemas 2 y 3 solo ocurren si el servidor maneja una versión procesada, y no veo por qué esto sería posible si el cliente hiciera todo el renderizado. Simplemente deje que el servidor maneje la versión de Markdown exclusivamente. Por supuesto, la razón 1 es suficientemente convincente por sí misma. Pero no entiendo 2 o 3. –
@KonradRudolph ¿Quiere decir que la página solo obtendría el origen de Markdown, y el cliente representaría el HTML cuando alguien vea la página? Eso significaría que Google (y todos los demás que no ejecutan JavaScript) nunca ven el contenido. Además, la pregunta era sobre el envío del contenido presentado al servidor. – balpha
Bueno, Google también vería la página con contenido de Markdown incrustado. Pero sí, no pensé en eso. –