Shrimple: una alternativa a Markdown escrita en Go

Fuentes: Shrimple: a cleaner Markdown alternative in Go

Shrimple es una herramienta de línea de comandos, escrita en Go, que convierte documentos de texto plano en HTML siguiendo una sintaxis propia pensada para mantenerse limpia tanto en la fuente como en el resultado renderizado. Se distribuye como código fuente y se compila con go build; a partir de ahí, un comando como cat README | ./shrimple -s -w > README.html produce una página HTML lista para publicar, con las opciones -s/--default-css para añadir una hoja de estilos predeterminada y -w/--wrap para envolver el documento en una estructura HTML completa.

El formato está orientado a la legibilidad del archivo fuente. Los enlaces se resuelven a partir de notas al pie numeradas, lo que evita saturar el texto con URLs largas, y también admite notas al pie tradicionales referenciadas con [n]. Los bloques de código se indentan con seis espacios y pueden declarar un lenguaje en la primera línea con # ## Go, lo que añade una clase HTML útil para resaltado de sintaxis con Prism.js. Existen listas con viñetas y numeradas, dos niveles de encabezado definidos por caracteres de subrayado (= para h1, - para h2) y notas destacadas con una palabra en mayúsculas seguida de contenido indentado con cuatro espacios, que se transforman en clases CSS.

Una de sus funciones más distintivas son los diccionarios de parseo y renderizado: a partir de dos archivos externos (parse_dict y render_dict) Shrimple puede localizar expresiones concretas en el texto y aplicarles formato, como subrayado o color, sin necesidad de marcado adicional en el documento fuente. Además, incorpora un generador de sitios estáticos (-g/--generate-site) que convierte un directorio de archivos Shrimple en un conjunto de páginas HTML con menú anidado y enlaces de navegación anterior/siguiente, regenerando solo los archivos modificados en ejecuciones posteriores. El proyecto está alojado en code.qount25.dev y se ofrece con ejemplos, incluido un sitio estático de muestra en examples/StaticSite.