Djot (/dʒɑt/)

Djot is a light markup syntax. It derives most of its features from commonmark, but it fixes a few things that make commonmark's syntax complex and difficult to parse efficiently. It is also much fuller-featured than commonmark, with support for definition lists, footnotes, tables, several new kinds of inline formatting (insert, delete, highlight, superscript, subscript), math, smart punctuation, attributes that can be applied to any element, and generic containers for block-level, inline-level, and raw content. The project began as an attempt to implement some of the ideas I suggested in Beyond Markdown.

Djot isn't completely stable yet, minor future changes to the syntax are expected. The official JavaScript implementation is complete and ready for use.

To install the parser locally using npm:

$ npm install -g @djot/djot
$ djot --help

To convert a GitHub-flavored Markdown document to djot, using djot and pandoc:

$ pandoc mydoc.md -f gfm -t json | djot -f pandoc -t djot > mydoc.dj

To convert a djot document to any format pandoc supports (in this example, docx):

$ djot -t pandoc mydoc.dj | pandoc -f json -s -t docx -o mydoc.docx