Skip to content

Modern Markup Languages Comparison ​

Who this is for

Anyone surveying the field. A neutral tour of lightweight markup languages, Carve included but not centered. For the Carve-centric take, see Carve vs Markdown/Djot/MDX.

A broad, neutral survey of the lightweight markup languages available today.

For a focused, Carve-centric comparison against Markdown, Djot, and MDX, see Carve vs Markdown, Djot & MDX.

Overview ​

The overview below is chronological. Later comparison tables group related syntaxes together instead.

LanguageAuthorYearFocus
AsciiDocStuart Rackham2002Technical documentation
reStructuredText (reST)David Goodger2002Python documentation
TextileDean Allen2002Web publishing
MediaWikiMagnus Manske2002Wikipedia
Org ModeCarsten Dominik2003Emacs, outlining
MarkdownJohn Gruber2004Simplicity, email-style
CreoleWikiCreole2007Wiki standardization
CommonMarkJohn MacFarlane et al.2014Standardized Markdown
GitHub Flavored Markdown (GFM)GitHub2017 (formal spec; the flavor dates to ~2009)Extended CommonMark
GemtextSolderpunk2019Minimalism (Gemini protocol)
DjotJohn MacFarlane2022Predictable parsing
CarveMark Scherer2026Simple & predictable parsing

Feature Comparison ​

FeatureMarkdownCommonMarkGFMDjotAsciiDocreSTCarve
Strong**text****text****text***text**text***text***text*
Emphasis*text**text**text*_text__text_*text*/text/
Code inline`code``code``code``code``code```code```code`
Strikethrough--~~text~~-[.line-through]#text#-~text~
Highlight---{=text=}#text#-=text=
Subscript---{~text~}~text~-{,text,}
Superscript---{^text^}^text^-{^text^}
Tablesvaries-| col || col ||===directives| col | + spans
Task lists--- [x]- [x]* [x]-- [x]
Footnotesvaries-[^1] (deployed; not in the formal spec)[^1]footnote:[][1]_[^1], ^[inline]
Attributes---{.class #id}[.class]:class:{.class #id}
Divs/Admonitions---:::====.. note::::: note
Smart quotesvaries--autoexplicit ("`text`")-auto

Notes on the Djot column:

  • Strikethrough: Djot has no strikethrough. Its nearest elements are delete {-text-} (<del>) and insert {+text+} (<ins>); plain ~text~ is subscript, not a line-through.
  • Subscript / Superscript: the braces are optional in Djot: ~text~/^text^ work as shorthand, and the {~ ~}/{^ ^} forms are only needed when the span contains spaces or ambiguous boundaries. In Carve the braces are mandatory: {,text,} / {^text^} are the only sub/sup forms, and a bare , or ^ is always literal.

Syntax Examples ​

Headings ​

# Markdown/CommonMark/GFM/Djot/Carve

= AsciiDoc Level 1
== AsciiDoc Level 2

Title
=====    (reST)

* Org Mode Level 1
** Org Mode Level 2
[text](url)                    # Markdown/CommonMark/GFM/Djot/Carve
https://url[text]              # AsciiDoc
`text <url>`_                  # reST
[[url][text]]                  # Org Mode
"text":url                     # Textile
[[Page|text]] / [url text]     # MediaWiki (internal page / external URL)
[[url|text]]                   # Creole
=> url text                    # Gemtext

Images ​

![alt](src)                    # Markdown/CommonMark/GFM/Djot/Carve
image::src[alt]                # AsciiDoc
.. image:: src                 # reST
   :alt: alt text
[[file:src]]                   # Org Mode
!src(alt)!                     # Textile
[[File:src|alt]]               # MediaWiki
{{src|alt}}                    # Creole

Code Blocks ​

```language                    # Markdown/GFM/Djot/Carve
code
```

[source,language]              # AsciiDoc
----
code
----

.. code-block:: language       # reST
   code

#+BEGIN_SRC language           # Org Mode
code
#+END_SRC

Lists ​

- item                         # Markdown/CommonMark/GFM/Djot/Carve
* item                         # AsciiDoc/Org Mode
- item                         # reST (with blank lines)
* item                         # Textile/MediaWiki/Creole

Philosophy Comparison ​

LanguagePhilosophy
Markdown"Easy to read, easy to write" - minimal syntax for common cases
CommonMarkStandardize Markdown with unambiguous spec
GFMExtend CommonMark for developer workflows (tables, task lists, code)
DjotPredictable parsing, consistent rules, no edge cases
AsciiDocTechnical documentation with semantic markup
reSTExtensible, explicit, Python ecosystem standard
Org ModeNotes, tasks, and literate programming in one format
GemtextRadical simplicity, one link per line, no inline formatting

Strengths & Weaknesses ​

Markdown ​

  • Pros: Ubiquitous, simple, familiar
  • Cons: Ambiguous spec, many incompatible flavors

CommonMark ​

  • Pros: Standardized, well-specified
  • Cons: Missing features (tables, footnotes), complex spec

GFM ​

  • Pros: Tables, task lists, autolinks, widely supported
  • Cons: GitHub-specific extensions, still has edge cases

Djot ​

  • Pros: Predictable, rich features, clean spec
  • Cons: New, less tooling/adoption

AsciiDoc ​

  • Pros: Feature-rich, great for books/docs
  • Cons: Complex syntax, steep learning curve

reST ​

  • Pros: Extensible, semantic, Python standard
  • Cons: Verbose, whitespace-sensitive

Org Mode ​

  • Pros: Supports literate programming and task management
  • Cons: Emacs-centric, complex

Gemtext ​

  • Pros: Dead simple, fast to parse
  • Cons: Very limited formatting

Adoption & Ecosystem ​

LanguagePrimary UseNotable Users
MarkdownGeneral writingGitHub, Stack Overflow, Reddit, Discord
CommonMarkStandardized docsDiscourse, Swift, many parsers
GFMDeveloper docsGitHub, GitLab
DjotModern alternativeGrowing adoption
AsciiDocTechnical booksO'Reilly, Spring, Asciidoctor
reSTPython docsSphinx, Read the Docs, Python
Org ModePersonal knowledgeEmacs users, researchers
MediaWikiWikisWikipedia, Fandom

Parsing Complexity ​

LanguageParser ComplexitySpec Size
GemtextTrivial~1 page
CreoleSimple~10 pages
MarkdownAmbiguousinformal syntax essay, no formal spec
CommonMarkComplexlarge prose spec, ~650 conformance examples
DjotModeratecompact prose spec + reference implementation
GFMComplexCommonMark + extensions
AsciiDocComplexLarge spec
reSTComplexLarge spec
CarveModerateEBNF grammar + semantic constraints + executable corpus

Recommendations ​

Use CaseRecommended
Quick notesMarkdown
GitHub READMEsGFM
Technical booksAsciiDoc
Python documentationreST
Personal knowledge baseOrg Mode
New projects wanting consistencyDjot
Rich documents with predictable parsing and built-in constructsCarve
Extreme minimalismGemtext
Wiki contentMediaWiki or Creole

Released under the MIT License.