Documents and knowledge · Edition No. 25 · 19 Sep 2026

jgm/djot

A light markup language from the author of pandoc, designed to remove the parts of Markdown that are slow and sometimes ambiguous to parse.

← Documents and knowledgeRead the whole edition →
11

jgm/djot

💎 hidden gem

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.

Stars2.0k
LicenceMIT
Latest0.2.0, read from /releases/latest, shown as '03 Jan' with no year and therefore 3 January 2026, with 91 commits on main since
Good
  • 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.
Watch for
  • 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.
Similar repositories
Install
# 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
Screenshots
jgm/djot: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.