GitHub Flavored Markdown
The dialect GitHub renders for user content (READMEs, issues, comments), formally specified at github.github.com/gfm — spec captured in the garden clippings (v0.29-gfm, 2019-04-06). The spec is based on the CommonMark Spec (MacFarlane; CC BY-SA) and defines GFM as “a strict superset of CommonMark” — every feature beyond the base is an explicitly-marked extension:
- Tables — the pipe-table extension
- Task list items —
- [ ]/- [x]checkboxes - Strikethrough —
~~text~~ - Autolinks — bare URLs become links (extended to emails/www in the spec)
- Disallowed raw HTML — the sanitization subset (tags like
script/stylefiltered)
Two facts worth keeping straight:
- The spec is frozen at 0.29-gfm (2019) — but GitHub the product kept moving: alerts (
> [!NOTE]callouts), math ($$/$), Mermaid diagram blocks, and footnote support all render on GitHub today outside the formal spec. Spec-compliant ≠ what GitHub displays. - Post-processing exists beyond the spec — the spec itself notes GitHub runs additional sanitization after HTML conversion “to ensure security and consistency.”
Why it matters here: GFM is the de-facto common ground of renderers — Gitea, Forgejo, GitLab, Discord, Slack, most SSGs, and Obsidian all render the GFM extension set. Writing inside GFM (plus frontmatter) is the safe portability target for repo docs (_specs/-style files); Obsidian Flavored Markdown is the vault’s superset on top.
Related: Markdown Flavors · CommonMark · Obsidian Flavored Markdown