mdcomments — Cross-Parser Examples

Side-by-side comparison of how the mdcomments syntax renders across five Markdown systems: default output vs. plugin-enhanced output.

Note: The plugins shown here were generated by an LLM and have not been manually reviewed. They serve solely as illustrative examples.

Want to try it yourself? Open the Interactive Editor to create and reply to threaded comments in a live WYSIWYG editor.

markdown-it (Node.js) — needs markdown-it-footnote and markdown-it-mark plugins for footnote and ==highlight== support. Without them, [^c-rev1] and ==text== render as literal text. With the plugins, mdcomments degrade gracefully to numbered footnotes.
View plugin source on GitHub →

Default (with footnote + mark plugins)
With mdcomments plugin

Pandoc — footnotes are built-in; ==text== is not supported natively (passes through as literal text). The Lua filter implements full mdcomments rendering including mark/highlight support, sidebar threads, and PDF output.
View filter source on GitHub →

Default (built-in footnotes)
With Lua filter

MkDocs (Python-Markdown + pymdownx) — requires enabling the footnotes and pymdownx.mark extensions. The custom Python-Markdown extension transforms comment footnotes into sidebar threads.
View extension source on GitHub →

Default (footnotes + mark extensions)
With mdcomments extension

Showdown (Node.js) — has an opt-in footnotes flavor but no ==mark== support. Footnote handling is limited; nested blockquotes in footnotes can be unreliable. The plugin uses Showdown's regex extension API to pre-process mdcomment syntax.
View extension source on GitHub →

Default (footnotes flavor)
With mdcomments extension

Comrak (Rust) — GFM-compatible; footnotes available via --extension footnotes. No ==mark== support. The Rust plugin walks the AST to detect c- prefixed footnotes and transforms them into comment sidebar HTML.
View plugin source on GitHub →

Default (footnotes extension)
With mdcomments renderer