Skip to content
Brett Terpstra edited this page Jun 24, 2026 · 7 revisions

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
quarto Pandoc/Quarto markdown 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$$)
  • ✅ Superscript and subscript (x^2^, H~2~O)
  • ✅ Wiki links ([[Page]]) - Requires --wikilinks flag (disabled by default)
  • ✅ Critic Markup
  • ✅ Callouts
  • ✅ File includes
  • ✅ Metadata blocks (YAML, MMD, Pandoc)
  • ✅ Metadata variables ([%key]) - See Metadata Transforms for transform syntax
  • ✅ Abbreviations
  • ✅ Inline Attribute Lists (IAL), including fenced divs and bracketed spans
  • ✅ Relaxed tables (default)
  • ✅ Grid tables (Pandoc +---+ syntax) - --grid-tables to enable, --no-grid-tables to disable (off by default)
  • ✅ GitHub Emoji / emoji autocorrect (:emoji_name:)
  • ✅ Image captions from Markdown image syntax (wrap images with title/alt in <figure>/<figcaption>)

ID Format

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

Quarto Mode

Command: apex --mode quarto document.qmd

Pandoc/Quarto markdown compatibility for HTML-oriented documents. See Quarto Mode for syntax, metadata toggles, and limitations.

Enabled Features

  • ✅ Quarto callouts (::: {.callout-note})
  • ✅ Fenced divs and bracketed spans
  • ✅ Raw content ({=html}, {=latex}, etc.)
  • ✅ Example lists (@), roman lists, line blocks
  • ✅ Code fence attributes, diagram fences ({mermaid}, {dot})
  • ✅ Shortcode shim ({{< pagebreak >}}, {{< kbd >}}, {{< include >}})
  • ✅ fig-alt, semantic span CSS in standalone output

Disabled vs Unified

  • ❌ Marked extensions (page break markers, etc.)
  • ❌ Wiki links (unless explicitly enabled)
  • ❌ Index syntax (mmark, TextIndex, Leanpub)

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]) - See Metadata Transforms for transform syntax
  • ✅ Abbreviations
  • ✅ File includes
  • ✅ Image captions from Markdown image syntax (wrap images with title/alt in <figure>/<figcaption>)

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
Image Captions

* Wiki links are available in unified mode but disabled by default. Use --wikilinks to enable.

Choosing a Mode

  • Quarto - Use for Pandoc/Quarto .qmd documents and HTML-oriented Quarto markdown
  • 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 enable or 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

# Enable wiki links (disabled by default)
apex --mode unified --wikilinks document.md

Related

Quick Links

Clone this wiki locally