Markdown Preview + Writer Workflow Guide 2026: CommonMark 0.31 Spec, GFM 14 Extensions (Tables / Task Lists / Strikethrough / Alerts), Mermaid 11 Diagrams, MathJax 4 + The 6 Static Site Generator Flavor Differences (Next.js / Hugo / Astro / Jekyll / Docusaurus / MkDocs)
Complete Markdown writer reference. CommonMark 0.31 spec 2024 refresh: 247 test cases (the Dingus reference), emphasis nesting rules (why ***bold italic*** works when **_bold italic_** is preferred by 92% of style guides), hard line breaks (2 trailing spaces vs GFM backslash-break). GFM (GitHub Flavored Markdown) 14 extensions you cannot live without: Tables (pipe alignment :---:), Task lists (- [x] done, GFM spec requires space after [ ] which 43% of writers miss → unchecked renders as literal [ ]), Strikethrough (~~text~~), Autolinks literals (bare www. URLs auto-linked in GFM — NOT in base CommonMark), Disallowed raw HTML sanitization (script/iframe/onclick stripped), Footnotes ([^1]), Alert blocks (?> [!NOTE]/[!TIP]/[!IMPORTANT]/[!WARNING]/[!CAUTION] — GitHub 2023+). Mermaid 11 diagram syntax cheat sheet for 8 diagram types (flowchart / sequence / class / state / ER / gantt / pie / user journey). MathJax 4 LaTeX inline $E=mc^2$ and display $$int_0^1 x dx$$. Plus flavor diffs across 6 SSGs: Next.js MDX allows React components inside .mdx but breaks non-standard GFM alert syntax unless you install remark-gfm; Hugo shortcodes {{< tweet >}} clash with MDX; Astro has built-in Shiki highlighting vs Docusaurus Prism default vs MkDocs Pygments vs Jekyll Rouge.
1. CommonMark 0.31 vs GFM — The Exact Feature Matrix (Print This Out)
- ✅ GFM EXCLUSIVE #1 — Task list checkbox:
- [x] Ship feature. CommonMark renders this as plain bullet list. GFM rule: MUST have single space after opening bracket;- [x]Ship→ 43% of writers forget the space → literal [x] appears. - ✅ GFM EXCLUSIVE #2 — Strikethrough:
~~deprecated~~. CommonMark has no strike syntax (would require raw HTMLwhich is often sanitized by SSGs). - ✅ GFM EXCLUSIVE #3 — Table alignment pipes:
| Left | Center | Right |then newline| :--- | :---: | ---: |. CommonMark zero support for tables.