-
Notifications
You must be signed in to change notification settings - Fork 2
Modes
Brett Terpstra edited this page Dec 6, 2025
·
1 revision
Apex supports multiple processor modes, each optimized for compatibility with different Markdown flavors.
| Mode | Description | Default ID Format |
|---|---|---|
unified |
All features enabled | GFM |
gfm |
GitHub Flavored Markdown | GFM |
mmd |
MultiMarkdown compatibility | MultiMarkdown |
kramdown |
Kramdown compatibility | Kramdown |
commonmark |
Pure CommonMark spec | GFM |
Command: apex document.md or apex --mode unified document.md
Unified mode enables all features from all other modes. This is the default mode.
- ✅ Tables (GFM style)
- ✅ Strikethrough (
~~text~~) - ✅ Task lists (
- [ ]and- [x]) - ✅ Autolinks (URLs and emails)
- ✅ Footnotes (reference and inline styles)
- ✅ Definition lists
- ✅ Smart typography
- ✅ Math support (
$inline$and$$display$$) - ✅ Wiki links (
[[Page]]) - ✅ Critic Markup
- ✅ Callouts
- ✅ File includes
- ✅ Metadata blocks (YAML, MMD, Pandoc)
- ✅ Metadata variables (
[%key]) - ✅ Abbreviations
- ✅ Inline Attribute Lists (IAL)
- ✅ Relaxed tables (default)
- ✅ GitHub Emoji (
:emoji_name:)
- Default: GFM format
- Can be overridden with
--id-format
Command: apex --mode gfm document.md
GitHub Flavored Markdown compatibility mode.
- ✅ Tables
- ✅ Strikethrough
- ✅ Task lists
- ✅ Autolinks
- ✅ Hard line breaks (newlines become
<br>)
- ❌ Footnotes
- ❌ Definition lists
- ❌ Smart typography
- ❌ Math
- ❌ Wiki links
- ❌ Critic Markup
- ❌ Callouts
- ❌ File includes
- ❌ Metadata
- ❌ Abbreviations
- ❌ IAL
- ❌ Relaxed tables
- GFM format (cannot be changed)
Command: apex --mode mmd document.md or apex --mode multimarkdown document.md
MultiMarkdown compatibility mode.
- ✅ Tables
- ✅ Footnotes (reference style)
- ✅ Definition lists
- ✅ Smart typography
- ✅ Math support
- ✅ Metadata blocks (YAML, MMD, Pandoc)
- ✅ Metadata variables (
[%key]) - ✅ Abbreviations
- ✅ File includes
- ❌ Strikethrough
- ❌ Task lists
- ❌ Wiki links
- ❌ Critic Markup
- ❌ Callouts
- ❌ IAL
- ❌ Relaxed tables
- MultiMarkdown format (cannot be changed)
Command: apex --mode kramdown document.md
Kramdown compatibility mode.
- ✅ Tables
- ✅ Footnotes (reference and inline styles)
- ✅ Definition lists
- ✅ Smart typography
- ✅ Math support
- ✅ Inline Attribute Lists (IAL)
- ✅ Abbreviations
- ✅ Relaxed tables (default)
- ❌ Strikethrough
- ❌ Task lists
- ❌ Wiki links
- ❌ Critic Markup
- ❌ Callouts
- ❌ File includes
- ❌ Metadata
- ❌ Autolinks
- Kramdown format (cannot be changed)
Command: apex --mode commonmark document.md
Pure CommonMark specification compliance. No extensions.
- ✅ Basic Markdown only (headers, lists, emphasis, links, code, blockquotes, etc.)
- ❌ All extensions (tables, footnotes, etc.)
- GFM format (for consistency)
| Feature | Unified | GFM | MMD | Kramdown | CommonMark |
|---|---|---|---|---|---|
| Tables | ✅ | ✅ | ✅ | ✅ | ❌ |
| Strikethrough | ✅ | ✅ | ❌ | ❌ | ❌ |
| Task Lists | ✅ | ✅ | ❌ | ❌ | ❌ |
| Footnotes | ✅ | ❌ | ✅ | ✅ | ❌ |
| Definition Lists | ✅ | ❌ | ✅ | ✅ | ❌ |
| Smart Typography | ✅ | ❌ | ✅ | ✅ | ❌ |
| Math | ✅ | ❌ | ✅ | ✅ | ❌ |
| Wiki Links | ✅ | ❌ | ❌ | ❌ | ❌ |
| Critic Markup | ✅ | ❌ | ❌ | ❌ | ❌ |
| Callouts | ✅ | ❌ | ❌ | ❌ | ❌ |
| File Includes | ✅ | ❌ | ✅ | ❌ | ❌ |
| Metadata | ✅ | ❌ | ✅ | ❌ | ❌ |
| Abbreviations | ✅ | ❌ | ✅ | ✅ | ❌ |
| IAL | ✅ | ❌ | ❌ | ✅ | ❌ |
| Relaxed Tables | ✅ | ❌ | ❌ | ✅ | ❌ |
- Unified - Use when you want all features or need compatibility with multiple Markdown flavors
- GFM - Use for GitHub compatibility or when publishing to GitHub
- MMD - Use for MultiMarkdown compatibility or when you need metadata
- Kramdown - Use for Kramdown compatibility or when you need IAL attributes
- CommonMark - Use for strict CommonMark compliance or minimal output
In unified mode, you can disable specific features:
# Unified mode but disable footnotes
apex --mode unified --no-footnotes document.md
# Unified mode but disable math
apex --mode unified --no-math document.md- Header IDs - How ID formats differ by mode
- Syntax - Syntax available in each mode
- Command Line Options - Mode selection and feature flags
Copyright 2025 Brett Terpstra, All Rights Reserved | MIT License
- Getting Started - Your first steps with Apex
- Installation - How to build and install Apex
- Usage - Basic usage examples
- Syntax - Complete syntax reference for unified mode
- Modes - Understanding processor modes
- Command Line Options - All CLI flags explained
- Header IDs - How header IDs are generated
- C API - Programmatic API documentation
- Xcode Integration - Using Apex in Xcode projects
- Examples - Practical usage examples
- Troubleshooting - Common issues and solutions
- Credits - Acknowledgments and links to related projects