2.0k stars · MIT · 0.2.0, read from /releases/latest, shown as '03 Jan' with no year and therefore 3 January 2026, with 91 commits on main since · Track this in Scout
A light markup language from the author of pandoc, designed to remove the parts of Markdown that are slow and sometimes ambiguous to parse.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A markup syntax with a reference implementation in Lua, plus versions in JavaScript, Rust and other languages. Its own site describes it as derived from CommonMark, the strict definition that most Markdown tools follow. It adds footnotes, definition lists, tables, mathematics and a general way of attaching attributes to anything, and it removes the rules that make a Markdown document slow and sometimes ambiguous to read.What it is good for. Anyone who writes a lot, and anyone building a tool that has to read what people wrote. The problem it removes is the corner of Markdown where two tools give you two different answers. This one is honest: the case for using it today is strongest inside your own system, where you control both ends. A short line about Grasppy: its subtopic maps are built by reading structure out of text, and a format whose structure is unambiguous is worth knowing about.
- A single, clear definition, so two implementations agree about what a document means.
- Footnotes, tables, mathematics and attributes are part of the language rather than extensions bolted on by each tool.
- MIT licence, by the author of pandoc, which already converts to and from djot, so nothing you write in it is trapped.
- Almost nothing supports it. GitHub does not render it, and neither does anything you are already using.
- The version number is 0.2.0, published on 3 January 2026, with 91 commits since. This is a language still being settled, not a finished standard.
- Writing in it means converting to Markdown or HTML before anybody else sees it, which is one more step in every publishing path.
jgm/pandocPublished in Edition 14, by the same author, and it converts between dozens of formats including this one, so it is the bridge rather than a competitor.
Track this in Scout- commonmark/cmark
The reference implementation of CommonMark, which is the strict Markdown definition djot was designed to improve on.
Track this in Scout - asciidoctor/asciidoctor
The other serious answer to the same complaint, much older and much more widely supported, and considerably heavier to write.
Track this in Scout
# Try it in a browser first, with no install: # https://djot.net/playground/ # The JavaScript version: npm install -g @djot/djot djot mydoc.dj > mydoc.html # Convert to and from it with pandoc: pandoc -f djot -t html mydoc.dj -o mydoc.html pandoc -f markdown -t djot README.md -o README.dj
