Quarkdown: Markdown as a Turing-complete typesetting system
Markdown with superpowers: from ideas to papers, presentations, websites, books, and knowledge bases.
At a glance
- What is it?
- Quarkdown extends CommonMark and GFM with functions, conditionals, and loops, letting one source compile to HTML, PDF, slides, or docs. It targets writers who want Markdown's simplicity but need the control of LaTeX or Typst.
- Who is it for?
- Adopt Quarkdown if you want one Markdown source for multiple output types, and you are comfortable with a GPL-3.0 license and a project still in active development. Do not adopt it if you need a stable, long-term tool with a mature ecosystem, since the latest release is a development build and the API may change.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Quarkdown actually is
Quarkdown is a Markdown-based typesetting system written in Kotlin. It does not just render Markdown to HTML. It extends CommonMark and GFM with a function system that is Turing-complete, meaning you can define variables, write loops, and create conditional content directly in the source. The README gives an example: a function called greet takes arguments and produces formatted text. This is not a template engine bolted on after the fact. The function calls are part of the language itself. The project targets people who want the readability of Markdown but also need the structural control that usually forces them into LaTeX or Typst. It is aimed at academic papers, books, websites, presentations, and knowledge bases, all from a single source file or project.
The mechanism: functions, standard library, and document types
The core mechanism is the Quarkdown Flavor, a superset of CommonMark and GFM. You call a function with a dot prefix, like .somefunction {arg1} {arg2}. The body of the function is indented underneath. The README shows a custom function definition using .function, with named arguments like to and from. There is also a standard library, located in the repository under quarkdown-stdlib, which provides layout builders, I/O, math, conditionals, and loops. Because the language is Turing-complete, you can generate complex content that plain Markdown cannot express. Document type is set inside the source with the .doctype function: plain, paged, slides, or docs. The paged target uses paged.js, and slides use reveal.js. This means the same Markdown can be compiled to a continuous web page, a print-ready PDF, an interactive presentation, or a documentation site.
Getting started: installation and quickstart
The README does not give the exact installation command, but it points to the releases page and the wiki. The quickstart involves creating a project and compiling it. Based on the repository structure, you would download the latest release binary, then run a command like quarkdown in a directory containing a Markdown file. The README mentions a VS Code extension and an unofficial IntelliJ IDEA plugin. For deployment, there is an example GitHub Actions workflow at iamgio/iamgio.github.io that builds the site. The workflow likely runs the Quarkdown CLI and publishes the generated HTML. The README claims you can set up a CD workflow in under three minutes. That is plausible given a single binary and a simple build step, but the exact commands are not in the material I have.
The permission system: secure by default, but with limits
One notable design choice is the restrictive permission system. The README says Quarkdown is secure by default, limiting access to system resources. This is important because the language is Turing-complete and has I/O in the standard library. Without restrictions, a malicious document could read files or make network calls. The permission system is a real feature, not an afterthought. However, it also means you must configure permissions for any document that needs file access or other system interactions. The README does not explain how to grant permissions, only that the system exists. For a user who wants to write a script that reads a CSV file, this adds a configuration step. It is a trade-off: safety versus convenience. The project clearly chooses safety, which is reasonable for a tool that compiles untrusted documents.
Performance claims and live preview
The README claims low-latency live previews and states that the official wiki, which has over 100 subdocuments, compiles in about two seconds. That is a concrete performance figure, but I cannot verify it from the material alone. The project uses Kotlin, which compiles to native or JVM bytecode, so fast compilation is plausible. Live preview is a feature that many Markdown tools offer, but Quarkdown's reactive approach means changes in the source update the output without a full rebuild. For a large knowledge base, two seconds is good, but it is not a benchmark I can confirm. The claim is in the README, and you should test it with your own content before relying on it.
Genuine limitations and wrong-tool cases
The first limitation is the license. Quarkdown is GPL-3.0, which means if you embed it in a proprietary tool, you may have to open-source your code. That is a dealbreaker for some commercial projects. Second, the project is under active development, with the latest release being a development build from May 2025, and a v2.5.1 release dated August 2026. The version numbers suggest the project is moving fast, but that also means APIs can change between releases. Third, the README does not describe how PDF export works beyond saying all HTML features are supported. If you need precise PDF typography, you may be better off with LaTeX or Typst. Quarkdown is the wrong tool if you need a stable, frozen specification or if you want to avoid GPL obligations. It is also not ideal if you want a tool with a huge community and many third-party packages, since the ecosystem is still small.
Alternatives: LaTeX, Typst, AsciiDoc, and MDX
The README itself includes a comparison table. LaTeX gives full document control and produces high-quality PDFs, but the source is verbose and hard to read. Typst is a modern alternative with a concise syntax and scripting, but it is not Markdown. AsciiDoc is readable and has decent document control, but the README marks it as lacking full document control and scripting. MDX lets you use JSX in Markdown, which is powerful for React-based sites, but it is tied to the JavaScript ecosystem. Quarkdown's difference is that it stays in Markdown syntax and adds a function system that is Turing-complete. Typst has its own scripting language, but you have to learn it. Quarkdown lets you use familiar Markdown and then add functions only where you need them. The trade-off is that Quarkdown is newer and less established than LaTeX or AsciiDoc.
Maintenance, upgrade cost, and ecosystem
The repository is not archived and has recent pushes, so it is actively maintained. The release cadence shows a development build and two stable releases in 2026, which indicates ongoing work. Upgrade cost is a concern because the project is pre-1.0 in a sense: the latest stable is v2.5.1, but the development build is newer. You should pin your version and read the changelog before upgrading, as the README does not promise backward compatibility. The standard library is open source, so you can read the code to understand what functions are available. The license is GPL-3.0, which grants you the right to modify and redistribute, but any derivative work must also be GPL. This is fine for open-source projects but a constraint for proprietary use. The ecosystem includes a VS Code extension and an IntelliJ plugin, but both are official or unofficial, and the IntelliJ one is unofficial, so support may vary.
Editorial conclusion
Adopt Quarkdown if you want one Markdown source for multiple output types, and you are comfortable with a GPL-3.0 license and a project still in active development. Do not adopt it if you need a stable, long-term tool with a mature ecosystem, since the latest release is a development build and the API may change. Before committing, verify that the function syntax and standard library cover your document needs, and test the PDF export with your own content, since the README does not specify how PDF generation is implemented.
Community notes