Markdown parser feature comparison
Summary
The Markdown flavors comparison tables summarize the features supported across popular Markdown implementations, highlighting their basic, extended, and platform-specific capabilities. Quickly compare support for basic and advanced Markdown features.
Introduction #
Markdown is a great thing. But choosing the right Markdown parser is complicated. The feature implementations of the individual Markdown flavors are sometimes very different. The following comparison tables should help you get an overview of the individual features and their implementations.
Comparison tables #
I have compiled some feature comparison tables for the most popular Markdown interpreters (parsers):
- CommonMark (CM)
- GitHub Flavored Markdown (GFM)
- GitLab Flavored Markdown (GLFM)
- Markdown Extra (ME)
- MultiMarkdown (MM).
Basic syntax #
| Feature | CM | GFM | GLFM | ME | MM |
|---|---|---|---|---|---|
| Headers | ✓ | ✓ | ✓ | ✓ | ✓ |
| Lists (Ordered & Unordered) | ✓ | ✓ | ✓ | ✓ | ✓ |
| Nested Lists | ✓ | ✓ | ✓ | ✓ | ✓ |
| Emphasis (Bold, Italics) | ✓ | ✓ | ✓ | ✓ | ✓ |
| Links | ✓ | ✓ | ✓ | ✓ | ✓ |
| Email Recognition | ✓ | ✓ | ✓ | ✓ | ✓ |
| Images | ✓ | ✓ | ✓ | ✓ | ✓ |
| Image Linking | ✓ | ✓ | ✓ | ✓ | ✓ |
| Blockquotes | ✓ | ✓ | ✓ | ✓ | ✓ |
| Inline Code | ✓ | ✓ | ✓ | ✓ | ✓ |
| Fenced Code Blocks | ✓ | ✓ | ✓ | ✓ | ✓ |
| Indented Code Blocks | ✓ | ✓ | ✓ | ✓ | ✓ |
| Horizontal Rules | ✓ | ✓ | ✓ | ✓ | ✓ |
| HTML Tags Support | ✓ | ✓ | ✓ | ✓ | ✓ |
Extended syntax #
| Feature | CM | GFM | GLFM | ME | MM |
|---|---|---|---|---|---|
| Tables | ✗ | ✓ | ✓ | ✓ | ✓ |
| Task Lists | ✗ | ✓ | ✓ | ✗ | ✗ |
| Footnotes | ✗ | ✗ | ✓ | ✓ | ✓ |
| Definition Lists | ✗ | ✗ | ✓ | ✓ | ✓ |
| Strikethrough | ✗ | ✓ | ✓ | ✗ | ✓ |
| Subscript/Superscript | ✗ | ✗ | ✗ | ✓ | ✓ |
| Automatic Links | ✓ | ✓ | ✓ | ✓ | ✓ |
| Auto-linking | ✓ | ✓ | ✓ | ✓ | ✓ |
| Custom IDs for Headers | ✗ | ✗ | ✗ | ✓ | ✓ |
| Math/LaTeX Support | ✗ | ✗ | ✓ | ✗ | ✓ |
| Metadata | ✗ | ✗ | ✗ | ✓ | ✓ |
| Comments | ✗ | ✗ | ✗ | ✓ | ✓ |
| HTML Sanitization | ✓ | ✓ | ✓ | ✓ | ✓ |
GitHub/GitLab-specific features #
| Feature | CM | GFM | GLFM | ME | MM |
|---|---|---|---|---|---|
| Mention @user | ✗ | ✓ | ✓ | ✗ | ✗ |
| Issue/PR Links (#123) | ✗ | ✓ | ✓ | ✗ | ✗ |
Emoji Shortcodes (:smile:) | ✗ | ✓ | ✓ | ✗ | ✗ |
| Syntax Highlighting in Code | ✗ | ✓ | ✓ | ✗ | ✓ |
| Check Lists | ✗ | ✓ | ✓ | ✗ | ✗ |
MultiMarkdown-specific features #
| Feature | CM | GFM | GLFM | ME | MM |
|---|---|---|---|---|---|
| Citations | ✗ | ✗ | ✗ | ✗ | ✓ |
| Glossary | ✗ | ✗ | ✗ | ✗ | ✓ |
| Critic Markup | ✗ | ✗ | ✗ | ✗ | ✓ |
| Table of Contents (TOC) | ✗ | ✗ | ✗ | ✓ | ✓ |
| Cross-References | ✗ | ✗ | ✗ | ✗ | ✓ |
Miscellaneous #
| Feature | CM | GFM | GLFM | ME | MM |
|---|---|---|---|---|---|
| Extensibility | ✗ | ◔ | ◔ | ◑ | ◕ |
| Standardized Specification | ✓ | ◒ | ◒ | ✗ | ✗ |
| JavaScript Implementation | ✓ | ✓ | ✓ | ✓ | ✓ |
| Python Implementation | ✓ | ✓ | ✓ | ✓ | ✓ |
| Perl Implementation | ✓ | ✓ | ✓ | ✓ | ✓ |
Legend:
✔ - Fully Supported
✘ - Not Supported
◔ - Limited
◑ - Moderate
◕ - High
◒ - Partial
Notes #
- CommonMark (CM) is the baseline Markdown specification and intentionally avoids extensions, focusing on strict standards compliance.
- GitHub Flavored Markdown (GFM) is optimized for GitHub and supports extensions like task lists, tables, and syntax highlighting.
- GitLab Flavored Markdown (GLFM) is optimized for GitLab and supports extensions like task lists, tables, and syntax highlighting.
- Markdown Extra (ME) extends the base with additional features like footnotes and definition lists, making it popular for blogging platforms.
- MultiMarkdown (MM) is a highly extensible variant with robust features like metadata, citations, and advanced cross-referencing, often used in technical and academic writing.
Further readings #
Sources and recommended, further resources on the topic:
- Gruber Markdown Specification
- CommonMark Specification
- GitHub Flavored Markdown (GFM) Spec
- GitLab Flavored Markdown (GLFM)
- Markdown Extra Specification
- MultiMarkdown User's Guide
- Wikipedia: Markdown
License
Markdown parser feature comparison by Jonas Jared Jacek is licensed under CC BY-SA 4.0.
This license requires that reusers give credit to the creator. It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, for noncommercial purposes only. To give credit, provide a link back to the original source, the author, and the license e.g. like this:
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://www.ditig.com/markdown-parser-feature-comparison">Markdown parser feature comparison</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://www.j15k.com/">Jonas Jared Jacek</a> is licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="license noopener noreferrer">CC BY-SA 4.0</a>.</p>For more information see the Ditig legal page.