BookinglyTech News
Software

Quarkdown añade funciones a Markdown y lo lleva al Turing completo

El proyecto, construido sobre CommonMark y GFM, incorpora funciones, bucles y condicionales al Markdown y compila una misma fuente a HTML, PDF, diapositivas o texto plano.

2 min de lecturaLobsters0 vistas

Quarkdown es un sistema de composición tipográfica que parte de Markdown y le añade funciones, variables, condicionales y bucles hasta hacerlo Turing-completo. De una sola fuente salen un libro listo para imprimir, un paper académico, una base de conocimiento o una presentación interactiva, y el resultado se puede exportar a HTML, PDF, Markdown GFM o texto plano. El proyecto es abierto y se instala con un script, Homebrew, Scoop o compilándolo a mano.

Un Markdown con funciones

La base es CommonMark con las extensiones de GFM, y encima va lo que el proyecto llama el sabor Quarkdown. La unidad de trabajo es la llamada de función, con argumentos entre llaves y argumentos con nombre:

.function {greet} to from: **Hello, .to** from .from!
.greet {world} from:{iamgio}

Con eso se define una función y se invoca en la línea siguiente; el intérprete sustituye los argumentos. La biblioteca estándar trae constructores de layout, entrada y salida, matemáticas, condicionales y bucles, y quien lo use puede declarar sus propias funciones, variables y librerías reutilizables, todo dentro del propio Markdown. El tipo de documento se fija desde la fuente con la función .doctype, que admite modo continuo, paginado, diapositivas y documentación; por debajo tira de paged.js para el paginado y de reveal.js para las presentaciones. El proyecto presume de vista previa en vivo, de un sistema de permisos restrictivo por defecto que limita el acceso a recursos del sistema y de compilar su wiki, con más de 100 subdocumentos, en unos dos segundos. La cifra es suya.

Instalación y despliegue

En Linux y macOS, el instalador es un curl que se ejecuta con sudo y deja el binario en /opt/quarkdown y el wrapper en /usr/local/bin/quarkdown, además de descargar el navegador que hace falta para exportar a PDF. También hay fórmulas de Homebrew y Scoop, un script de PowerShell en Windows, una action para GitHub Actions y la vía manual: descomprimir quarkdown.zip de la última versión estable o compilar con gradlew installDist. Para el PDF hace falta un navegador de la familia Chromium, como chrome-headless-shell. El editor tiene extensiones para VS Code y para IntelliJ IDEA, esta última mantenida por un tercero y no por el equipo del proyecto.

La propuesta entra en el terreno de LaTeX y Typst, con una curva de aprendizaje más suave sobre una sintaxis que la mayoría de quien escribe documentación técnica ya conoce. La tabla comparativa que acompaña al proyecto, eso sí, la firma el propio proyecto: coloca a Quarkdown por delante en control del documento, scripting y exportación, y no hay una evaluación independiente que lo respalde. Queda por ver si se adopta más allá de los documentos del autor y de quien se anime a probarlo con la vista previa delante.