10 Punkte von GN⁺ 2025-06-04 | 5 Kommentare | Auf WhatsApp teilen
  • Ein modernes Typografie-System, das die bestehende Markdown-Syntax erweitert, um mühelos Dokumente in verschiedensten Formaten wie Bücher, wissenschaftliche Arbeiten, Folien und Präsentationen zu erstellen
  • Integriert fortgeschrittene Funktionen wie Funktionsunterstützung, Variablen, Bedingungen/Schleifen und eine Standardbibliothek direkt in Markdown und hebt sich damit bei Erweiterbarkeit und Automatisierung von klassischem Markdown oder LaTeX ab
  • Aus einer einzigen Quelldatei lassen sich verschiedene Ausgaben wie HTML, PDF, Folien (reveal.js) und paginierte Bücher (paged.js) erzeugen; besonders geeignet für codebasierte Content-Erstellung
  • Mit Scripting-Funktionen und einer ausdrucksstarken erweiterten Syntax lassen sich auch komplexe oder dynamische Inhalte frei umsetzen
  • Bietet eine Umgebung mit REPL, Live-Vorschau und schneller Kompilierung, wodurch Dokumentbearbeitung und Debugging in Echtzeit möglich sind
  • Gegenüber bestehenden Tools punktet es bei Scripting-Funktionen, Dokumentkontrolle und einer einfachen Lernkurve im Vergleich zu Markdown, LaTeX, Typst, AsciiDoc und MDX
  • Ohne separate Entwicklungsumgebung oder komplizierte Konfiguration auf allen wichtigen Betriebssystemen nutzbar, sofern Java 17 oder höher vorhanden ist

About

  • Quarkdown ist ein modernes Satzsystem, das der Grundstruktur von Markdown Funktionen und erweiterte Syntax hinzufügt, damit Nutzer von einfachem Text bis hin zu Büchern, wissenschaftlichen Arbeiten und Folien leicht hochwertige Ergebnisse in verschiedensten Formaten erstellen können
  • Es basiert auf CommonMark und GFM und unterstützt neben eigener Syntax auch Funktionen, Variablen und sogar benutzerdefinierte Bibliotheken
    • Es bietet eine eigene Syntax namens Quarkdown Flavor
    • Durch eine Turing-vollständige funktionale Erweiterungssyntax fügt es Markdown fortgeschrittene Funktionen wie Funktionen, Bedingungen und Schleifen hinzu
  • Mit .qmd-Bibliotheken lassen sich verschiedene Funktionen wie Layout, Ein-/Ausgabe, Mathematik, Bedingungen und Schleifen nutzen
  • Auch bei komplexen Dokumentstrukturen oder dynamischen Inhalten lassen sich Erweiterbarkeit und Produktivität steigern

Hauptmerkmale und Einsatzmöglichkeiten

  • Unterstützung für verschiedene Ausgabeformate wie HTML, Folien, Bücher (Paged) und PDF
    • Der Dokumenttyp kann per Funktionsaufruf wie .doctype {slides} oder .doctype {paged} festgelegt werden
    • Integration mit Open-Source-basierten Engines wie reveal.js und paged.js
  • Scripting und dynamische Inhalte
    • Einführung programmatischer Elemente wie Funktionen, Variablen, Bedingungen und Schleifen
    • Bsp.) .function {greet} ... .greet {world} from:{iamgio}
  • Live-Vorschau und schnelle Kompilierung
    • Bietet Echtzeit-Vorschau sowie Dateibeobachtung (Watch) bei Änderungen
    • Steigert die Arbeitseffizienz mit den Optionen -p --preview und -w --watch
  • Vergleich mit anderen Dokument-Tools
    • Geringere Lernkurve als LaTeX und bessere funktionale Erweiterbarkeit als Markdown
    • Auch im Vergleich mit Typst, AsciiDoc und MDX stark bei Scripting und Ausdruckskraft

Unterstützte Ziele

  • HTML
    • Normale Ausgabe (Standard)
    • Folien (mit reveal.js)
    • Buch-/Paper-Format (mit paged.js, Webserver erforderlich)
  • PDF
    • Alle von HTML unterstützten Dokumenttypen und Funktionen können unverändert als PDF ausgegeben werden
    • Ausführliche Informationen zum PDF-Export finden sich im Wiki-Dokument
  • Steuerung des Ausgabeformats über Funktionsaufrufe wie .doctype {slides} und .doctype {paged}

Vergleich

Quarkdown Markdown LaTeX Typst AsciiDoc MDX
Kürze·Lesbarkeit
Vollständige Dokumentkontrolle
Scripting-Funktionen teilweise unterstützt
Ausgabe als Buch/Artikel 3rd party
Präsentationsausgabe 3rd party
Lernkurve grün grün rot orange grün grün
Zielunterstützung HTML, PDF HTML PDF, PostScript PDF HTML, PDF, ePub HTML

5 Kommentare

 
plastic041 2025-06-05

Wegen der Tabelle scheint das mobile Layout kaputtzugehen.

 
plastic041 2025-06-05

Wenn man .topic_contents min-width: 0 gibt, wird es behoben. Wegen min-width ist das wirklich ziemlich lästig ...

 
xguru 2025-06-05

Ah, ich habe es auf eine andere Weise gelöst. Vielen Dank!

 
plastic041 2025-06-05

Vielen Dank für das schnelle Feedback~

 
GN⁺ 2025-06-04
Hacker-News-Kommentare
  • Mein FOSS-Texteditor KeenWrite verwendet einen ähnlichen Ansatz, um Markdown in XHTML, TeX und PDF umzuwandeln
    Die Softwarearchitektur zeigt, wie man eine Kette von Prozessoren entwerfen kann
    Ich habe KeenWrite gebaut, um beim Schreiben von Science-Fiction Variablen für Dinge wie Charakternamen oder Orte verwenden zu können
    Mehr dazu im Tutorial
    Für Leute, die immer noch pandoc und Shell-Skripte verwenden, erklärt die Serie Typesetting Markdown, wie man eine skriptbasierte Infrastruktur aufbaut, um Markdown in PDF umzuwandeln
    Informationen zu KeenWrite selbst gibt es hier
    Das Architekturdiagramm ist hier zu finden

  • Es wäre interessant, Typst mit diesem Projekt zu vergleichen, da Typst in letzter Zeit viel Aufmerksamkeit bekommen hat, daher ist es überraschend, dass Typst in der Feature-Vergleichsmatrix überhaupt nicht erwähnt wurde

    • Als ich zuletzt nachgesehen habe, konnte Typst nicht nach HTML ausgeben
    • Inzwischen wird Typst doch erwähnt
      Insgesamt wirken die beiden Projekte sehr ähnlich
  • Ich frage mich, ob die Vergleichstabelle korrekt ist – Link
    Ich denke, LaTeX hat ganz klar vollständige Skripting-Fähigkeiten, auch wenn es natürlich qualvoll zu benutzen sein kann
    Ich bin skeptisch gegenüber der Behauptung, die obskure Syntax von Quarkdown sei knapper und besser lesbar als Typst
    Ich glaube auch nicht, dass die Lernkurve leichter ist als bei Typst, die beiden wirken fast gleich
    Soweit ich weiß, kann LaTeX mit tex4ht auch HTML erzeugen

    • Ehrlich gesagt kann der Großteil von Markdown in Quarkdown unverändert verwendet werden
      Niedriger kann die Einstiegshürde kaum sein
      Natürlich ist die Lernkurve nicht dasselbe wie die Einstiegshürde, aber beides überschneidet sich erheblich
      Und die „Lernkurve“ ist eine subjektive Eigenschaft
      Nimmt man sie in eine Vergleichstabelle auf, ist diese von Anfang an verzerrt
      Klare Funktionen sind objektiver, auch wenn manche Funktionen je nach Produktcharakter gar nicht nötig sein müssen
    • Für solche Anwendungsfälle ist Pandoc unschlagbar
    • An TikZ und pgf kann man sofort sehen, wie weit die Skripting-Fähigkeiten von LaTeX und TeX reichen
      Die Vergleichstabelle ist offensichtlich ungenau
  • Die Beispielausgabe sieht großartig aus
    Aber ich mag es generell nicht besonders, wenn eine Template-Sprache durch Funktionsaufrufe oder zusätzliche Komplexität anwächst
    Natürlich ergibt das in diesem Kontext vielleicht Sinn
    Wenn man sie aber zusammen mit einer anderen Sprache verwenden muss, etwa für Server-Side-Rendering oder datengenerierte Dokumente, verbringt man zu viel Zeit damit, zwischen zwei Sprachen hin- und herzuwechseln
    Template-Sprachen sind nie so mächtig wie „echte“ Sprachen
    Deshalb bevorzuge ich Ansätze wie JSX oder JavaScripts tagged template literals
    Es ist besser, eine echte Programmiersprache zu verwenden und gleichzeitig den Dokumentkontext zu verstehen, sodass man sich weniger um Escaping-Probleme wie XSS sorgen muss

  • Ich frage mich, worin sich Quarto und dieses Projekt unterscheiden
    Die Namen sind ähnlich, die Dateiendung auch, und die Zielrichtung scheint vergleichbar, aber die Funktionen wirken sogar geringer – Quarto

    • Quarto ist de facto der Nachfolger des R-Markdown-Ökosystems
      Laut FAQ wird es von denselben Entwicklern gebaut
    • Ich wollte dieselbe Frage stellen
      Ein Freund hat mir vor ein paar Tagen gezeigt, wie er sämtliche Vorlesungsskripte in Quarto neu schreibt und sogar Präsentationen einbettet, das sah ziemlich sauber aus
      Dass Quarto auch gut mit R Studio und Jupyter Notebook zusammenarbeitet, ist ein großer Vorteil
    • Dass die Namen ähnlich sind, scheint auf eine Anspielung oder Verbindung zu QuarkXPress zurückzugehen
      Ich halte das für eine Art konvergente Evolution
  • Ich finde die Erklärung interessant, dass das, was wie ein „planet“ aussehen könnte, in Wirklichkeit ein Quark ist, genauer gesagt ein Down-Quark
    Cooles Projekt, aber wegen QuarkXPress, einer bekannten Marke in der Publishing-Branche, ist es etwas riskant, das Wort „Quark“ als Namen für ein Publishing-System zu verwenden
    Relevante Markeneinträge gibt es hier und hier
    (Ich frage mich auch, warum dasselbe Wort als zwei Marken eingetragen ist)

  • In jeder Diskussionsrunde zu diesem Thema bestehen gefühlt immer 70 % der Kommentare aus „Warum nicht einfach LaTeX?“, deshalb sage ich gleich vorweg:
    Ich brauche definitiv ein modernes Markdown-basiertes Satzsystem
    Ich würde gerne mehr Versuche sehen, LaTeX zu ersetzen
    LaTeX ist wirklich unbequem und altmodisch, und ich hätte gern ein System, das Markup freier handhabbar macht
    Selbst wenn die Syntax mit wachsendem Funktionsumfang länger wird, gibt es eindeutig Bedarf für einen Bereich, der etwas mächtiger ist als Markdown
    Aber dieses Projekt ist offenbar nicht das, wonach ich gesucht habe
    Den Beispielen nach wirkt es eher wie „ein bisschen mächtiger als Markdown“ und nicht wie ein vollwertiger Ersatz für LaTeX (oder Typst)
    Solche Dokumentensysteme müssen sich „wirklich geschmeidig“ benutzen lassen, und so fühlt sich das hier nicht an

    1. Außerdem basiert es auf der JVM, und deshalb möchte ich es schon gar nicht installieren
      Das ist für die Verbreitung kein gutes Zeichen
    2. Die Syntax gefällt mir auch nicht
      Sie sollte möglichst mit normalem Markdown kompatibel sein, aber wenn Funktionsargumente per Einrückung übergeben werden müssen, wird am Ende wohl das ganze Dokument eingerückt, obwohl Markdown-Erweiterungspunkte normalerweise eher als Codeblöcke natürlicher wirken (im Stil von ```plugin-name`)
      Durch die Syntaxunterschiede muss man womöglich die gesamte Struktur des Dokuments ändern
    3. Das Konzept „besseres Markdown“ eignet sich meiner Meinung nach eher für Fälle, in denen man mit persönlichen Notizen beginnt und diese nach und nach zu öffentlichen Dokumenten ausbaut
      Wenn man ein Dokument von Anfang an für die Veröffentlichung erstellt, kann man auch gleich mit LaTeX arbeiten
      Am nützlichsten wäre so etwas, wenn es gut in Notiz-Apps integriert wäre
      Manche machen das vielleicht in Emacs oder Vim, aber selbst ich als Retro-Typ muss zugeben, dass ich am Ende zu etwas wie Obsidian gewechselt bin
      Es wäre gut, wenn man die Dokumentstruktur in einer Notiz-App besser steuern oder Publishing-Funktionen anbinden könnte
      Als Standalone-Tool frage ich mich, warum ich das überhaupt verwenden sollte
      Immerhin hat Typst wenigstens einen Online-Editor, und den benutzt auch jeder
    • LaTeX ist kein alter Schrott, sondern eine der besten Softwares überhaupt
      Der Schlüssel ist, dem Dokument keinen unnötigen Kram hinzuzufügen
  • Solche Systeme, einschließlich Typst, sind im Grunde für den Satz langer Texte wie wissenschaftlicher Arbeiten gedacht
    Ich wünschte, sie wären eine Alternative zu HTML, aber ich habe auch Typst ausprobiert, und es wirkt, als würden sich die Autoren fast nur für „wissenschaftliche Arbeiten oder lange Texte“ interessieren
    Ich möchte auch Formulare, Rechnungen, Flyer oder Visitenkarten erstellen, aber solche Elemente scheinen außerhalb des Interesses zu liegen
    (Eigentlich dachte ich an Sile, aber bei Typst ist es ähnlich)
    Typst habe ich nicht tiefgehend verwendet, weil es kommerziell ist

    • Ich sehe keinen besonderen Grund, warum man die erwähnten Formulare, Rechnungen usw. nicht mit Typst erstellen könnte
      Vor allem interaktive Formulare sind offenbar bereits in Arbeit (das Backend des PDF-Writers unterstützt teilweise schon etwas davon)
      In einiger Zeit wird Typst vermutlich Formularfunktionen haben – siehe Issue
    • Ich denke, das liegt daran, dass dieser Bereich eher mit „Grafikdesign“ als mit „Satz“ zu tun hat
      Bei Rechnungen, Werbeflyern oder Visitenkarten müssen kleine Elemente präzise in der Seitenmitte oder am Rand positioniert werden, und dafür sind WYSIWYG-Tools bequemer
      Nur mit textbasiertem Satz gibt es zu viel Trial-and-Error
      Bei Boulevardzeitungen etwa muss Text nicht in Rechtecken, sondern entlang von Bildern oder Ausschnitten fließen und sich darum legen, und nur anhand von Koordinaten ohne visuelle Kontrolle ist das extrem schwierig
    • Der Online-Editor von Typst ist kommerziell, aber Typst selbst ist unter der Apache-2.0-Lizenz offen verfügbar
      Ich habe es über cargo in Rust installiert und nutze es problemlos ohne den Online-Editor
    • Man kann Typst auch lokal verwenden und den kommerziellen Teil komplett überspringen
      Es ist ziemlich einfach, damit verschiedene Arten von Dokumenten zu erstellen
      Ich nutze es bereits als Ersatz für die Erstellung von Folien und Handouts
    • Mein erster echter Produktiveinsatz von Typst war ein Poster, und es war viel einfacher als LaTeX
      Einige Features wie Textumbruch um Bilder oder Textfluss fehlen noch, aber das ist auch in TeX schwierig und soll in Typst später noch ergänzt werden
      Poster-Beispiel
  • Das sieht im Grunde fast genauso aus wie reStructuredText (rST)
    Die Funktionssyntax von Quarkdown (.somefunction {argument} {argument} body) und die von rST (.. somefunction:: {argument} {argument} body) sind sehr ähnlich

  • Es gibt zu viele Dinge wie Markdown, Quarkdown, Typst usw., und nichts scheint standardisiert zu sein, deshalb lande ich am Ende wieder bei HTML+CSS

    • Wie wäre es mit XML?
      Ich habe es nicht direkt verwendet, denke aber ziemlich ernsthaft darüber nach
      Die anderen Formate sind komplex und haben eine Lernkurve, was das eigentliche Schreiben behindert
      In XML kann ich meine Tags frei definieren und mit einem Parser verschiedene Strukturen erzeugen, etwa die automatische Generierung von Fußnoten
      Mich würde interessieren, ob jemand so einen Ansatz schon genutzt hat
    • Markdown ist auf einem grundlegenden Niveau wirklich effizient
      Das Problem entsteht, wenn zu viele Leute anfangen, Systeme direkt daraufzusetzen, obwohl sie eigentlich „etwas Komplexeres“ lösen wollen
      Ich denke, sie versuchen, ein ursprünglich für einfache Zwecke gedachtes System zu „verbessern“, ohne dessen Grenzen zu akzeptieren, und erzeugen stattdessen nur unnötige Wiederholungen und Verwirrung
      Es ist kein Mangel an Funktionen, sondern ein Problem, weil man den für den Entwurf vorgesehenen Rahmen verlässt
      Selbst wenn Windows-Notepad Formatierungsfunktionen bekäme, wäre das für mich im Kern keine Verbesserung
      Notepad hatte schließlich ursprünglich eine andere Rolle
    • Es gibt auch das ausgereifte und verlässliche Org-mode
      Wenn man Emacs nicht hasst, ist das eine gute Wahl
    • Ich finde es auch unterhaltsamer, mit HTML, CSS und Javascript im Web zu entwickeln und das DOM zu manipulieren
      Dann muss man sich nicht Hunderte Frameworks und komplexe Syntaxen merken
      Es reicht schon, einer KI den Befehl zu geben, einen Markdown-zu-HTML-Konverter zu erzeugen
    • Wenn die Autovervollständigung in Texteditoren 2005 schon so gut Tag-Balancing, Einrückung und Highlighting unterstützt hätte wie heute, wären Formate wie JSON, YAML oder Markdown vielleicht nie so populär geworden
      Schon in The Art of Unix Programming von 2003 stand, dass das direkte Bearbeiten von XML schmerzhaft sei und man deshalb allerlei neue Formate und Parser schaffen müsse