10 puntos por GN⁺ 2025-06-04 | 5 comentarios | Compartir por WhatsApp
  • Un sistema moderno de tipografía que amplía la sintaxis existente de Markdown para crear fácilmente documentos en diversos formatos como libros, artículos académicos, diapositivas y presentaciones
  • Integra directamente en Markdown funciones avanzadas como soporte para funciones, uso de variables, condicionales/bucles y biblioteca estándar, lo que le da una ventaja en extensibilidad y automatización frente a Markdown tradicional o LaTeX
  • Con un solo archivo fuente puede generar múltiples salidas como HTML, PDF, diapositivas (reveal.js) y libros paginados (paged.js), con un enfoque especial en la creación de contenido basada en código
  • Con funciones de scripting y una sintaxis extendida expresiva, permite implementar libremente contenido complejo o dinámico
  • Ofrece un entorno de REPL, vista previa en vivo y compilación rápida, lo que permite edición y depuración de documentos en tiempo real
  • En comparación con herramientas existentes, destaca frente a Markdown, LaTeX, Typst, AsciiDoc y MDX en aspectos como scripting, control del documento y facilidad de aprendizaje
  • Puede usarse en los principales sistemas operativos con solo Java 17 o superior, sin necesidad de un entorno de desarrollo aparte ni configuraciones complejas

About

  • Quarkdown es un sistema moderno de composición tipográfica diseñado para que el usuario pueda crear fácilmente resultados de alta calidad en diversos formatos, desde texto simple hasta libros, artículos académicos y diapositivas, al añadir funciones y sintaxis extendida a la estructura base de Markdown
  • Está desarrollado sobre CommonMark y GFM, y además soporta su propia sintaxis, funciones, variables e incluso bibliotecas definidas por el usuario
    • Ofrece una sintaxis propia llamada Quarkdown Flavor
    • A través de una sintaxis extendida de funciones Turing-completa, añade a Markdown funciones avanzadas como funciones, condicionales y bucles
  • Con las bibliotecas .qmd se pueden usar diversas funciones como diseño, entrada/salida, matemáticas, condicionales y bucles
  • Incluso cuando se necesitan estructuras documentales complejas o contenido dinámico, puede aumentar la extensibilidad y la productividad

Características principales y usos

  • Soporta diversos formatos de salida como HTML, diapositivas, libros (Paged) y PDF
    • Es posible especificar el tipo de documento mediante llamadas a funciones como .doctype {slides} y .doctype {paged}
    • Integración con motores basados en open source como reveal.js y paged.js
  • Scripting y contenido dinámico
    • Introduce elementos de programación como funciones, variables, condicionales y bucles
    • ej.) .function {greet} ... .greet {world} from:{iamgio}
  • Vista previa en vivo y compilación rápida
    • Ofrece vista previa en tiempo real y detección de cambios en archivos (Watch)
    • Las opciones -p --preview y -w --watch aumentan la eficiencia del trabajo
  • Comparación con otras herramientas de documentación
    • Tiene una curva de aprendizaje más baja que LaTeX y una mejor extensibilidad funcional que Markdown
    • También destaca en scripting/expresividad frente a Typst, AsciiDoc y MDX

Objetivos compatibles

  • HTML
    • Salida general (predeterminada)
    • Diapositivas (usando reveal.js)
    • Formato de libro/artículo académico (usando paged.js, requiere servidor web)
  • PDF
    • Todos los tipos de documento y funciones que soporta HTML pueden exportarse tal cual a PDF
    • Para más detalles sobre la salida en PDF, consulta la documentación de la wiki
  • Es posible controlar el formato de salida mediante llamadas a funciones como .doctype {slides} y .doctype {paged}

Comparación

Quarkdown Markdown LaTeX Typst AsciiDoc MDX
Concisión y legibilidad
Control total del documento
Funciones de scripting Soporte parcial
Salida en formato libro/artículo 3rd party
Salida para presentaciones 3rd party
Curva de aprendizaje verde verde rojo naranja verde verde
Soporte de objetivos HTML, PDF HTML PDF, PostScript PDF HTML, PDF, ePub HTML

5 comentarios

 
plastic041 2025-06-05

Parece que, por la tabla, el diseño en móvil se rompe.

 
plastic041 2025-06-05

Se arregla dándole min-width: 0 a .topic_contents. min-width realmente da muchos dolores de cabeza...

 
xguru 2025-06-05

Ah, lo resolví de otra manera. ¡Gracias!

 
plastic041 2025-06-05

¡Gracias por la rápida retroalimentación~

 
GN⁺ 2025-06-04
Comentarios en Hacker News
  • Mi editor de texto FOSS, KeenWrite, usa un enfoque similar para convertir Markdown a XHTML, TeX y PDF
    La arquitectura del software muestra cómo se puede diseñar una cadena de procesadores
    La razón por la que hice KeenWrite fue para poder usar variables como nombres de personajes o lugares al escribir ciencia ficción
    Para más detalles, vean el tutorial
    Para quienes todavía usan pandoc y scripts de shell, en la serie Typesetting Markdown se explica cómo construir una infraestructura basada en scripts para convertir Markdown a PDF
    Se puede ver más información sobre KeenWrite aquí
    El diagrama de arquitectura se puede consultar aquí

  • Sería interesante compararlo con Typst, que ha recibido mucha atención últimamente, así que sorprende que Typst no se mencionara para nada en la matriz comparativa de funciones

    • La última vez que lo vi, Typst no podía exportar a HTML
    • Ahora Typst sí está mencionado
      En general, los dos proyectos se ven muy similares
  • Me pregunto si la tabla comparativa es precisa – enlace
    Creo que LaTeX claramente sí tiene capacidades completas de scripting, aunque por supuesto sea doloroso de usar
    Soy escéptico ante la afirmación de que la sintaxis críptica de Quarkdown sea más concisa y legible que la de Typst
    Tampoco creo que la curva de aprendizaje sea más fácil que la de Typst; se ven casi iguales
    También creo que LaTeX puede generar HTML con tex4ht

    • Siendo honestos, la mayor parte de Markdown también se puede usar tal cual en Quarkdown
      No se puede bajar mucho más la barrera de entrada
      Claro, la curva de aprendizaje no es exactamente lo mismo que la barrera de entrada, pero se superponen bastante
      Y “curva de aprendizaje” es una característica subjetiva
      Si la pones en una tabla comparativa, inevitablemente arranca sesgada
      Las funciones concretas son más objetivas, aunque a veces por la naturaleza del producto cierta función simplemente no hace falta
    • Pandoc es lo mejor para este tipo de casos de uso
    • Con TikZ y pgf puedes darte cuenta de inmediato hasta dónde llegan las capacidades de scripting de LaTeX y TeX
      La tabla comparativa es claramente inexacta
  • La salida de ejemplo se ve muy bien
    Pero nunca me ha gustado demasiado cuando un lenguaje de plantillas crece en llamadas a funciones o en complejidad
    Claro, en este contexto quizá tenga sentido
    Pero si tienes que usarlo junto con otro lenguaje, por ejemplo para renderizado del lado del servidor o generación de documentos basada en datos, terminas perdiendo demasiado tiempo yendo y viniendo entre dos lenguajes
    Los lenguajes de plantillas nunca son tan poderosos como un lenguaje “real”
    Por eso prefiero enfoques como JSX o los tagged template literals de JavaScript
    Me parece mejor usar un lenguaje de programación real y aun así entender el contexto del documento, de modo que haya menos preocupación por escapes (como XSS)

  • Me pregunto en qué se diferencia este proyecto de Quarto
    El nombre es parecido, la extensión también, y la dirección general parece similar, pero hasta da la impresión de tener menos funciones – Quarto

    • Quarto es el sucesor de facto del ecosistema de R Markdown
      En el FAQ dicen que lo desarrolló el mismo equipo
    • Yo también iba a hacer la misma pregunta
      Hace unos días un amigo me mostró cómo estaba reescribiendo todos sus guiones de clase en Quarto e incluso incrustando presentaciones, y se veía bastante limpio
      El hecho de que Quarto se integre bien con R Studio y Jupyter Notebook es una gran ventaja
    • Que el nombre sea parecido probablemente viene de una referencia o asociación con QuarkXPress
      Creo que esto es una especie de evolución convergente
  • Me parece interesante la explicación de que lo que puede parecer un “planet” en realidad es un quark, específicamente un quark down
    Es un proyecto cool, pero por la famosa marca QuarkXPress dentro de la industria editorial, usar la palabra “Quark” para nombrar un sistema de publicación parece un poco arriesgado
    La información de marcas registrada relacionada se puede ver aquí, aquí
    (También me pregunto por qué hay dos marcas registradas para la misma palabra)

  • En todos los hilos de discusión de este tema siempre el 70% de los comentarios son del tipo “¿por qué no usar LaTeX?”, así que voy a dejar clara mi postura desde el inicio
    Yo sí necesito un sistema moderno de composición basado en Markdown
    Ojalá hubiera varios intentos de reemplazar LaTeX
    LaTeX de verdad es incómodo y anticuado, y me gustaría un sistema donde se pudiera hacer el marcado con más libertad
    Aunque se vuelva más verboso por tener muchas funciones, claramente hace falta algo en esa zona apenas un poco más potente que Markdown
    Pero siento que este proyecto no es lo que estaba buscando
    Por los ejemplos, parece inclinarse a ser apenas un poco más potente que Markdown, y no un reemplazo total de LaTeX (o de Typst)
    Un sistema de documentos de este tipo tiene que sentirse “realmente fluido” al usarlo, y este no da esa impresión

    1. Además, está basado en la JVM y yo ni siquiera querría instalarlo
      Eso no ayuda mucho a su difusión
    2. Tampoco me gusta la sintaxis
      Me gustaría que fuera compatible al máximo con Markdown normal, pero si exige indentación para los argumentos de función, parece que terminarías indentando todo el documento, y en cambio los puntos de extensión de Markdown normalmente encajan mejor como bloques de código (del estilo ```plugin-name`)
      Por las diferencias de sintaxis, quizá haya que rehacer la estructura completa del documento
    3. Creo que el concepto de “mejor Markdown” funciona más cuando algo empieza como una nota personal y poco a poco evoluciona hacia documentación pública
      Si el documento se hace directamente con fines de publicación, entonces igual podrías trabajar simplemente en LaTeX
      Donde más utilidad le veo es integrado de verdad en una app para tomar notas
      Habrá gente que lo haga en Emacs o Vim, pero incluso yo, que soy bastante retro, admito que al final me pasé a algo como Obsidian
      Estaría bien una parte que permitiera controlar mejor la estructura del documento desde la app de notas o conectarlo con funciones de publicación
      Si es una herramienta independiente, me cuesta ver por qué debería usarla
      Al menos Typst sí tiene editor en línea, y todo el mundo usa eso
    • LaTeX no es basura vieja, es uno de los mejores programas que existen
      La clave es no meterle cosas innecesarias al documento
  • Estos sistemas (incluido Typst) están pensados básicamente para composición de textos largos, como artículos académicos
    Me gustaría que fueran una alternativa a HTML, pero incluso habiendo usado Typst, siento que sus autores solo piensan en “papers o textos largos”
    También quiero hacer formularios, facturas, volantes, tarjetas de presentación y cosas así, pero esos elementos parecen estar fuera de su interés
    (En realidad estaba pensando en Sile, pero Typst es parecido)
    No he usado Typst a fondo porque es comercial

    • No sé si haya una razón especial por la que no se pudiera usar Typst para formularios, facturas, etc.
      En particular, ya se comenta que los formularios interactivos están en desarrollo (el backend del pdf writer ya soporta parte de eso)
      Con un poco de tiempo, parece probable que Typst implemente funciones de formularios – ver issue
    • Creo que pasa porque esto se acerca más al “diseño gráfico” que a la “composición tipográfica”
      Facturas, folletos publicitarios, tarjetas de presentación y similares requieren colocar elementos pequeños con precisión en el centro o en los bordes de la página, y para eso las herramientas WYSIWYG son más cómodas
      Hacerlo solo con composición basada en texto implica demasiado ensayo y error
      Por ejemplo, en un tabloide el texto tiene que fluir y envolverse alrededor de imágenes o recortes, no dentro de rectángulos, y hacer eso solo escribiendo coordenadas sin verlo realmente es muy difícil
    • El editor en línea de Typst sí es comercial, pero Typst en sí está publicado bajo licencia Apache 2.0
      Yo lo instalé con cargo en Rust y lo uso sin problema sin necesitar el editor en línea
    • Typst también se puede usar localmente y simplemente saltarse por completo la parte comercial
      Es bastante fácil para crear varios tipos de documentos
      Yo ya lo uso como reemplazo para hacer diapositivas y folletos
    • Mi primer “uso real” de Typst fue un póster, y fue muchísimo más fácil que LaTeX
      Todavía faltan algunas funciones como ajuste de imágenes o flujo de texto, pero eso también es difícil en TeX y está previsto añadirlo más adelante en Typst
      Ejemplo de póster
  • Esto simplemente se ve casi igual que reStructuredText (rST)
    La sintaxis de funciones de Quarkdown (.somefunction {argumento} {argumento} body) y la sintaxis de funciones de rST (.. somefunction:: {argumento} {argumento} body) son muy parecidas

  • Hay tantos Markdown, Quarkdown, Typst y demás, y tan poca estandarización, que al final terminé regresando a HTML+CSS

    • ¿Y XML qué tal?
      No lo he usado directamente, pero lo estoy considerando bastante en serio
      Los demás formatos son complejos y tienen una curva de aprendizaje que termina interfiriendo con la escritura misma
      En XML puedo definir mis propias etiquetas y, con un parser, crear muchas estructuras distintas como generación automática de notas al pie
      Me pregunto si alguien ha probado un enfoque así
    • Markdown es realmente eficiente en un nivel básico
      El problema aparece cuando demasiada gente le empieza a montar sistemas encima, intentando resolver cosas que desde el principio eran “más complejas”
      Creo que toman un sistema pensado para un uso simple y, creyendo que lo están mejorando, en realidad no reconocen sus límites y solo agregan repetición y confusión innecesarias
      No es una falta de funciones, sino que se está usando fuera del alcance para el que fue diseñado
      Incluso si el notepad de Windows llegara a tener formato, yo no lo consideraría una mejora en esencia
      Notepad tenía un propósito original por algo
    • También existe Org-mode, que es maduro y confiable
      Si no odias Emacs, es una buena opción
    • Yo también siento que manipular el DOM con HTML, CSS y Javascript en desarrollo web es incluso más divertido
      No hace falta memorizar cientos de frameworks y sintaxis complicadas en la misma medida
      Hasta basta con pedirle a una IA que genere un conversor de markdown a html
    • Si el autocompletado de los editores de texto de 2005 hubiera soportado tan bien como ahora el balanceo de etiquetas, la indentación y el resaltado, tal vez formatos como JSON, YAML y Markdown no se habrían vuelto tan populares
      Incluso en The Art of Unix Programming, publicado en 2003, se dice que editar XML directamente era doloroso y que por eso había que crear nuevos formatos y parsers