Markdown: texto formateado sin HTML, solución ingeniosa

Fuentes: phart/docs/GHM-LATEX.md at main · scottvr/phart

Este artículo describe una solución ingeniosa para mostrar texto coloreado y con formato en GitHub-Flavored Markdown (GFM) sin recurrir a HTML. El autor, Scottvr, del proyecto 'phart' (Python Hierarchical ASCII Rendering Tool), se enfrentó al desafío de integrar la salida de su herramienta, que genera representaciones ASCII de gráficos y diagramas, directamente en documentos Markdown de GitHub.

El problema radicaba en que GFM, aunque admite MathJax (un sistema de renderizado de fórmulas matemáticas), impone restricciones significativas sobre cómo se formatea el texto. Intentar usar MathJax para colorear texto resultaba en un control limitado sobre el formato (centrado, espaciado, etc.). Inicialmente, el autor exploró la posibilidad de usar HTML dentro de SVG, pero buscaba una solución más fiel a la salida original de 'phart', que incluye secuencias de escape ANSI para el color.

La solución encontrada es un 'hack' que aprovecha la sintaxis de listas con viñetas de Markdown. Al colocar cada línea de texto dentro de un elemento de lista, se evita el problema de que MathJax aplique su formato predeterminado (centrado, espaciado excesivo o inserción de saltos de párrafo). Aunque esta técnica produce una salida visualmente peculiar (texto organizado en líneas separadas por viñetas), permite mostrar el texto coloreado y con formato deseado en GFM. El autor explica detalladamente el proceso de experimentación y las limitaciones encontradas, incluyendo la necesidad de usar listas con viñetas para evitar el formato automático de MathJax.

'phart' ahora puede generar archivos SVG que esencialmente son 'framebuffers virtuales' para la terminal, capturando secuencias ANSI y traduciéndolas a equivalentes HTML para su visualización. Esto permite la inclusión de diagramas coloreados directamente en documentos Markdown, superando las limitaciones de las opciones estándar de GFM. La solución, aunque funcional, es un 'hack' y refleja las limitaciones inherentes a la integración de formatos de texto complejos en un entorno Markdown restringido. El autor también menciona la posibilidad de integrar Mermaid, una herramienta para generar diagramas SVG a partir de texto, como una futura funcionalidad de 'phart'.