Markdown with superpowers — from ideas to presentations, articles and books.
About
Quarkdown is a modern Markdown-based typesetting system, designed around the key concept of versatility, by seamlessly compiling a project into a print-ready book or an interactive presentation. All through an incredibly powerful Turing-complete extension of Markdown, ensuring your ideas flow automatically into paper.
Born as an extension of CommonMark and GFM, the Quarkdown Flavor brings functions to Markdown, along with many other syntax extensions.
This is a function call:
.somefunction {arg1} {arg2}
Body argument
Possibilities are unlimited thanks to an ever-expanding standard library, which offers layout builders, I/O, math, conditional statements and loops.
Not enough? You can still define your own functions and variables — all within Markdown. You can even create awesome libraries for everyone to use.
.function {greet}
to from:
**Hello, .to** from .from!
.greet {world} from:{iamgio}
Result: Hello, world from iamgio!
This out-of-the-box scripting support opens doors to complex and dynamic content that would be otherwise impossible to achieve with vanilla Markdown.
Combined with live preview and ⚡ fast compilation speed, Quarkdown simply gets the work done.
Check the wiki to learn more about the language and its features.
Getting started
Installation
Download quarkdown.zip from the latest stable release or build it with gradlew distZip, and unzip it.
The bin directory contains the executable scripts. Optionally, adding it to your PATH allows you to access Quarkdown more easily.
The lib/qmd directory contains .qmd libraries that can be imported into a project.
Java 17 or higher is required. All major operating systems are supported.
Creating a project
Running quarkdown create [directory] will launch the prompt-based project wizard, making it quicker than ever to set up a new Quarkdown project, with all metadata and initial content already present.
For more information about the project creator, check out its wiki page.
Alternatively, you may manually create a .qmd source file and start from there.