Tengo usuarios que editan mal la sintaxis de las citas y provocan que la función de cita falle. Por ejemplo, tenemos esta de un tema actual. Esto no está escapado:
[quote=“CFO.Digest.Input, post:1, topic:3258”]
él sugirió que volviera a poner aceite mineral. [/quote]
El problema es que el /quote está en la misma línea, mientras que la cita de apertura está en su propia línea. He descubierto que puedes hacer cualquiera de las dos, pero deben coincidir. Por ejemplo, esto funciona (’ añadido para escapar la función):
'[quote=“CFO.Digest.Input, post:1, topic:3258”]
él sugirió que volviera a poner aceite mineral.
'[/quote]
y esto también funciona:
'[quote=“CFO.Digest.Input, post:1, topic:3258”]él sugirió que volviera a poner aceite mineral.[/quote]
… pero no puedes mezclar los modos.
Sé que alguien dirá “entonces no hagas eso” o “Usa el botón de cita”, pero aún tenemos usuarios que no lo hacen correctamente.
¿No hay alguna forma de analizar esto para que los modos puedan mezclarse?
¡Ay, Dios mío… así que básicamente estamos imponiendo estándares de codificación a nuestros clientes y usuarios?
Aunque estoy de acuerdo con el análisis de Sam sobre el formato, hay una diferencia entre que sea difícil de leer para el autor y que sea difícil de leer para todos los que ven la publicación. Parece que estamos castigando a los lectores por los pecados del autor…
Supongo que seguiré editando las publicaciones cuando la gente las estropee.
Edición: Otra opción sería forzar un salto de línea después de [/quote] si no lo hay… editar automáticamente el formato para mejorar la legibilidad.
Eso no parece una mala idea, pero si simplemente seleccionan texto y usan el botón de citar, funciona. ¿Van a volver y editar la cita, rompiendo así el formato?
¡Sí que lo son! Realmente bastante notable… y sin darse cuenta de que están rompiendo el formato en el proceso. Supongo que no tienen la vista previa activada, ¿o quizás lo están haciendo desde el móvil…?
Y la persona que hizo esto es uno de los principios del negocio… ¡qué glad no lo hice editor!
Edité la publicación agregando un retorno de carro después de la etiqueta de cierre de comillas, pero sigo encontrando sorprendente que el flujo de texto no se analice como HTML, donde los saltos de línea y los retornos de carro no afectan la funcionalidad de las etiquetas. Parece un error para mí…
El orden no es aleatorio, está bien. Pero a diferencia de HTML, en este sistema importa dónde caen los saltos de línea.
Todo lo que se necesitó para arreglar esa publicación rota fue añadir un salto de línea / CR después de la etiqueta de cierre.
Estoy dispuesto a seguir editando manualmente las publicaciones cuando los usuarios no cumplan con la estructura requerida, pero aún parece extraño que los saltos de línea importen para el parser…
Echa un vistazo a la especificación de Markdown. A diferencia del HTML, Markdown depende completamente de los saltos de línea bien colocados.
Un salto de línea erróneo en un elemento <h1> no tendría ningún impacto en la renderización, pero:
aquí en el mundo
de Markdown sí lo tiene
Esto es cierto para muchos elementos; las tablas de Markdown se rompen horriblemente con saltos de línea adicionales. Las tablas HTML, por otro lado, no.
No estoy seguro de que la analogía con el HTML sea válida o útil; no se les pide a los usuarios que escriban HTML. ¿Puedes imaginar el dolor de faltar <p></p> y <br>? Muros literales de texto.
Si piensas en “Markdown primero”, que es como funciona Discourse, en lugar de “HTML primero”, que definitivamente no es el caso de Discourse, entonces los desafíos que presenta insertar etiquetas sin respetar la estructura comienzan a tener sentido.
No tengo problema en navegar por estas aguas, como cualquier programador, pero nuestros usuarios son personas comunes y pensarán que Markdown tiene algo que ver con los precios en Walmart.
Como bien dices, afortunadamente no les estamos pidiendo que escriban HTML. ¿Qué se gana al obligarlos a implementar el formato Markdown? Parece que un pequeño truco de programación podría protegerlos de esas realidades de nuestro mundo.
No sé qué tan complicado sería forzar automáticamente un salto de línea después de [/quote] (siempre que no esté dentro de un bloque de código o algo similar…) y entiendo que hay una estructura que se debe observar al usar Markdown.
Pero también entiendo lo frustrante que puede ser cuando aparece una cita malformada en un mensaje de usuario debido a ese pequeño «error» que consiste en escribir texto en la misma línea que [/quote] (no estoy seguro de que pueda llamarlo error).
¿Hay algún caso intencional en el que se escriba texto en la misma línea que [quote]?
Si no lo hay, entonces creo que no hay ninguna razón para que exista texto en la misma línea, y forzar un salto de línea después de la etiqueta de cierre de la cita podría ser beneficioso tanto para los usuarios como para el personal. Pero también estoy seguro de que esto no es tan sencillo como parece.
Exacto. La naturaleza básica de Markdown es que un salto de línea (o dos saltos de línea) equivale a una etiqueta de párrafo. Debido a esto, algunas etiquetas requieren saltos de línea antes o después de ellas para ser interpretadas correctamente. Creo que esto forma parte de la especificación.