Skip to content
Brett Terpstra edited this page Dec 6, 2025 · 1 revision

Processor Modes

Apex supports multiple processor modes, each optimized for compatibility with different Markdown flavors.

Overview

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

Unified Mode (Default)

Command: apex document.md or apex --mode unified document.md

Unified mode enables all features from all other modes. This is the default mode.

Enabled Features

  • ✅ 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:)

ID Format

  • Default: GFM format
  • Can be overridden with --id-format

GFM Mode

Command: apex --mode gfm document.md

GitHub Flavored Markdown compatibility mode.

Enabled Features

  • ✅ Tables
  • ✅ Strikethrough
  • ✅ Task lists
  • ✅ Autolinks
  • ✅ Hard line breaks (newlines become <br>)

Disabled Features

  • ❌ Footnotes
  • ❌ Definition lists
  • ❌ Smart typography
  • ❌ Math
  • ❌ Wiki links
  • ❌ Critic Markup
  • ❌ Callouts
  • ❌ File includes
  • ❌ Metadata
  • ❌ Abbreviations
  • ❌ IAL
  • ❌ Relaxed tables

ID Format

  • GFM format (cannot be changed)

MultiMarkdown Mode

Command: apex --mode mmd document.md or apex --mode multimarkdown document.md

MultiMarkdown compatibility mode.

Enabled Features

  • ✅ Tables
  • ✅ Footnotes (reference style)
  • ✅ Definition lists
  • ✅ Smart typography
  • ✅ Math support
  • ✅ Metadata blocks (YAML, MMD, Pandoc)
  • ✅ Metadata variables ([%key])
  • ✅ Abbreviations
  • ✅ File includes

Disabled Features

  • ❌ Strikethrough
  • ❌ Task lists
  • ❌ Wiki links
  • ❌ Critic Markup
  • ❌ Callouts
  • ❌ IAL
  • ❌ Relaxed tables

ID Format

  • MultiMarkdown format (cannot be changed)

Kramdown Mode

Command: apex --mode kramdown document.md

Kramdown compatibility mode.

Enabled Features

  • ✅ Tables
  • ✅ Footnotes (reference and inline styles)
  • ✅ Definition lists
  • ✅ Smart typography
  • ✅ Math support
  • ✅ Inline Attribute Lists (IAL)
  • ✅ Abbreviations
  • ✅ Relaxed tables (default)

Disabled Features

  • ❌ Strikethrough
  • ❌ Task lists
  • ❌ Wiki links
  • ❌ Critic Markup
  • ❌ Callouts
  • ❌ File includes
  • ❌ Metadata
  • ❌ Autolinks

ID Format

  • Kramdown format (cannot be changed)

CommonMark Mode

Command: apex --mode commonmark document.md

Pure CommonMark specification compliance. No extensions.

Enabled Features

  • ✅ Basic Markdown only (headers, lists, emphasis, links, code, blockquotes, etc.)

Disabled Features

  • ❌ All extensions (tables, footnotes, etc.)

ID Format

  • GFM format (for consistency)

Feature Comparison Table

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

Choosing a Mode

  • 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

Overriding Mode Defaults

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

Related

Quick Links

Clone this wiki locally