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/style filtered)

Two facts worth keeping straight:

  1. 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.
  2. 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