Bibliothèque / SDK
iamgio/quarkdown avatar
iamgio/quarkdown

Quarkdown : un système de composition Markdown avec fonctions et multiples cibles de sortie

Markdown avec des super pouvoirs : des idées aux articles, présentations, sites Web, livres et bases de connaissances.

16 113 étoiles497 forksKotlinGPL-3.0

En bref

De quoi s’agit-il ?
Une seule source Markdown peut compiler en livre, présentation, wiki ou site statique, avec une couche de script qui ajoute fonctions et contrôle de flux.
À qui s’adresse-t-il ?
Le README de Quarkdown le présente comme une alternative plus scriptable et multi-cibles à LaTeX, Typst, AsciiDoc et MDX. Sa caractéristique distinctive est la possibilité de définir des fonctions et variables en Markdown et de choisir le type de sortie avec un appel .doctype.
Puis-je l’utiliser commercialement ?
Oui, sous conditions. GPL-3.0 est une licence copyleft : si vous distribuez un logiciel qui l’inclut, vous devez publier le code source de ce logiciel sous la même licence. Un usage interne, sans distribution, ne déclenche pas cette obligation.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Kotlin, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le Quarkdown Flavor : ajouter des fonctions à Markdown

Quarkdown est un système de composition écrit en Kotlin et hébergé sur github.com/iamgio/quarkdown. Il étend CommonMark et GFM avec une couche de script que le README appelle le Quarkdown Flavor. L'extension introduit des fonctions, appelées avec un préfixe point, qui acceptent des arguments et un corps. La bibliothèque standard comprend des constructeurs de mise en page, des E/S, des mathématiques, des conditionnelles et des boucles, et les utilisateurs peuvent définir leurs propres fonctions et variables entièrement en Markdown. Le README donne un exemple de fonction greet qui prend un nom et produit un message formaté. Cela rend Markdown un langage Turing-complet, ce qui est la principale différence avec Markdown ordinaire. Les métadonnées du dépôt enregistrent 15 863 étoiles et 491 forks, ainsi que 25 problèmes ouverts.

Cibles de sortie : HTML, PDF, Markdown et texte brut

Une seule source Quarkdown peut être compilée en plusieurs formes de sortie. Le README liste quatre variantes HTML : plain pour un flux continu comme Notion ou Obsidian, paged pour les articles et livres via paged.js, slides pour les présentations interactives via reveal.js, et docs pour les wikis et documentation technique. L'export PDF prend en charge tous les types de documents pris en charge par HTML. Il y a aussi l'export Markdown GFM et le texte brut. La cible souhaitée est choisie dans la source en appelant la fonction .doctype, par exemple .doctype {paged} pour une mise en page imprimée, et la variante plain est la valeur par défaut. Cela permet au même contenu de devenir un site Web, un diaporama ou un livre sans modifier la source.

Comparaison avec LaTeX, Typst, AsciiDoc et MDX

Le README inclut un tableau qui compare Quarkdown à LaTeX, Typst, AsciiDoc et MDX sur des critères comme la syntaxe concise, le contrôle complet du document, le script, les cibles d'export et la courbe d'apprentissage. Ce tableau est l'évaluation du projet lui-même, mais il montre les forces prévues : Quarkdown prétend supporter l'export de livres et d'articles, l'export de présentations, l'export de sites statiques et l'export de docs/wikis, avec HTML, PDF, Markdown et texte brut comme cibles. Le même tableau liste LaTeX comme ne produisant que PDF et PostScript, et Typst comme expérimental pour les sites statiques. Un exemple de code contraste un document LaTeX avec l'équivalent Quarkdown, utilisant des fonctions comme .tableofcontents, .center et .row pour gérer la structure et la mise en page.

Installation et création de projet

Le README documente plusieurs façons d'installer Quarkdown. Sur Linux et macOS, un script peut être exécuté avec curl et redirigé vers bash ; il installe dans /opt/quarkdown et crée un wrapper dans /usr/local/bin, et installe Node.js automatiquement si manquant. Homebrew est également supporté. Sur Windows, un script PowerShell et Scoop sont fournis. Une action GitHub nommée setup-quarkdown est référencée pour les workflows CI. Pour l'installation manuelle, le README suggère de télécharger quarkdown.zip depuis la dernière version stable ou de construire avec gradlew installDist. Après installation, quarkdown create lance un assistant basé sur des invites qui génère un projet avec métadonnées et contenu initial. La commande de compilation est quarkdown c file.qd, et pour les projets multi-fichiers, la cible doit être le fichier racine.

Options d'aperçu, de surveillance et PDF

La CLI propose quelques options fréquemment utilisées. Le drapeau -p ou --preview active le rechargement automatique du contenu après compilation, et -w ou --watch recompile à chaque modification d'un fichier source. La combinaison des deux donne un aperçu en direct. Le drapeau --pdf produit un fichier PDF. Le README renvoie au wiki pour les options CLI complètes et les détails d'export PDF. Il prétend également que le wiki officiel (plus de 100 sous-documents) compile en environ deux secondes, sans préciser le matériel ou la méthode de mesure. Le mode REPL est disponible avec quarkdown repl pour expérimenter.

Le document mock et la signification du logo

Le dépôt contient un document exemple appelé Mock, écrit en Quarkdown, destiné à démontrer les éléments visuels du langage. Sa source se trouve dans le répertoire mock et peut être compilée avec quarkdown c mock/main.qd -p. Le README dit que les artefacts PDF générés pour toutes les combinaisons de thèmes sont disponibles dans un dépôt séparé. Le logo est également expliqué : il ressemble à l'icône Markdown originale mais inclut une flèche tournante autour d'une sphère. Cette sphère est un quark down, choisi parce que les quarks sont des particules fondamentales qui constituent la matière, reflétant l'idée que de petites briques peuvent former des structures complexes.

Conditions de licence : GPLv3 avec AGPLv3 pour CLI et LSP

Quarkdown et ses modules sont sous licence GNU GPLv3 par défaut, selon le README. Deux modules font exception : le CLI (quarkdown-cli) et le serveur de langage (quarkdown-lsp) sont sous licence GNU AGPLv3. L'extrait de licence GPLv3 fourni indique qu'il s'agit d'une licence libre, copyleft, destinée à garantir la liberté de partager et de modifier le logiciel, et qu'il n'y a aucune garantie pour ce logiciel libre. Le texte AGPLv3 n'est pas inclus dans la source fournie, donc ses termes spécifiques ne sont pas couverts ici. Le README mentionne également une liste de sponsors, mais sans implications sur la licence.

Conclusion éditoriale

Le README de Quarkdown le présente comme une alternative plus scriptable et multi-cibles à LaTeX, Typst, AsciiDoc et MDX. Sa caractéristique distinctive est la possibilité de définir des fonctions et variables en Markdown et de choisir le type de sortie avec un appel .doctype. Les métadonnées du dépôt montrent 15 863 étoiles et 491 forks, et la licence se divise entre GPLv3 et AGPLv3 pour les modules CLI et LSP.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté