What Is GitHub Flavored Markdown (GFM)?
GitHub Flavored Markdown extends standard markdown with tables, task lists, strikethrough, auto-linking, and more. Learn what GFM adds and where it works.
Last updated: March 3, 2026
GitHub Flavored Markdown (GFM) is an extension of the CommonMark markdown specification. It adds features that the original markdown syntax does not include: tables, task lists, strikethrough, auto-linked URLs, fenced code blocks with syntax highlighting, and footnotes. GFM is maintained by GitHub and formally specified at github.github.com/gfm.
GFM is not limited to GitHub. Most modern markdown tools, editors, and documentation platforms implement the GFM specification because it fills the practical gaps in standard markdown.
What GFM Adds to Standard Markdown
Standard markdown (as defined by CommonMark) handles headings, emphasis, links, images, code, lists, and blockquotes. GFM adds these features on top:
| Feature | Syntax | Standard Markdown? |
|---|---|---|
| Tables | Pipe and dash syntax | No |
| Task lists | - [x] / - [ ] | No |
| Strikethrough | ~~text~~ | No |
| Auto-linking | Bare URLs become clickable | No |
| Fenced code blocks | Triple backticks with language | Partial (backticks yes, language hint added by GFM) |
| Footnotes | [^1] | No |
| Emoji shortcodes | :fire: :rocket: | No (GitHub-specific rendering) |
| Alerts | > [!NOTE] | No (GitHub-specific since 2023) |
Tables
GFM tables use pipes (|) and dashes (-):
| Name | Role | Status ||------|------|--------|| Alice | Developer | Active || Bob | Designer | On leave |Column alignment uses colons:
:---left-aligned (default):---:centered---:right-aligned
For the complete guide, see Markdown Tables.
Task Lists
- [x] Completed task- [ ] Pending taskOn GitHub issues and PRs, these are interactive checkboxes. See the markdown task lists guide for more.
Strikethrough
~~deleted text~~Requires double tildes. See the strikethrough guide for details.
Auto-Linking
In GFM, bare URLs automatically become clickable links:
Visit https://mdtolink.com for more.Standard CommonMark requires angle brackets: <https://mdtolink.com>.
Fenced Code Blocks with Language Hints
GFM supports language identifiers after the opening backticks for syntax highlighting:
```javascriptconst greeting = "Hello, world";console.log(greeting);```Common language identifiers: javascript, typescript, python, bash, json, html, css, go, rust, sql, yaml, markdown.
For the full guide, see Markdown Code Blocks.
Footnotes
This claim needs a source[^1].
[^1]: Source: https://example.com/researchFootnotes render at the bottom of the document regardless of where the definition appears.
GitHub-Specific: Alerts
Added in 2023, alerts create styled callout boxes:
> [!WARNING]> This action cannot be undone.Five types: NOTE, TIP, IMPORTANT, WARNING, CAUTION. These only render as styled boxes on GitHub. Other platforms show them as regular blockquotes.
GFM vs CommonMark
CommonMark is the base specification. GFM is a superset that adds the features above.
| Aspect | CommonMark | GFM |
|---|---|---|
| Maintained by | CommonMark team | GitHub |
| Specification | spec.commonmark.org | github.github.com/gfm |
| Tables | No | Yes |
| Task lists | No | Yes |
| Strikethrough | No | Yes |
| Auto-linking bare URLs | No | Yes |
| Footnotes | No | Yes |
| Disallowed raw HTML | No filtering | Filters some tags |
Every valid CommonMark document is also valid GFM. GFM only adds features; it does not remove or change existing CommonMark behavior.
One exception: GFM disallows certain raw HTML tags for security (like <script>, <iframe>, <style>). CommonMark passes all HTML through unchanged.
Where GFM Works
GFM is the de facto standard for markdown rendering outside of specialized tools:
| Platform / Tool | GFM Support |
|---|---|
| GitHub | Full (it’s the origin) |
| GitLab | Full (GLFM, nearly identical) |
| VS Code Preview | Full |
| Obsidian | Full + extensions |
| MDtoLink | Full |
| Astro | Via remark-gfm plugin |
| Next.js | Via remark-gfm plugin |
| Hugo | Via Goldmark (GFM support built in) |
| Docusaurus | Via MDX + remark-gfm |
| Pandoc | Via gfm extension flag |
| Slack | Partial (bold, italic, links, code, not tables) |
| Discord | Partial (formatting and code, not tables) |
If you’re unsure what flavor to write in, write GFM. It is the safest bet for cross-platform compatibility.
GFM in GitHub README Files
README files on GitHub use GFM by default. Some features specific to GitHub that go beyond the GFM spec:
Mermaid diagrams render as SVG graphics:
```mermaidgraph LR A[Write] --> B[Publish] B --> C[Share]```Math expressions using LaTeX syntax:
$$E = mc^2$$Relative links resolve to files in the same repo:
See [the docs](./docs/README.md) for more.User and issue references auto-link:
@username mentioned this in #42These features are GitHub-specific. They will not render on other platforms.
Enabling GFM in Your Tools
Most tools support GFM out of the box. If you’re using a markdown processor that needs configuration:
remark (JavaScript):
npm install remark-gfmimport remarkGfm from "remark-gfm";// Add to your remark plugins arrayPandoc:
pandoc --from gfm --to html input.md -o output.htmlPython-Markdown:
import markdownmd = markdown.Markdown(extensions=["tables", "toc"])FAQ
What does GFM stand for?
GFM stands for GitHub Flavored Markdown. It is GitHub’s extension of the CommonMark specification, adding tables, task lists, strikethrough, auto-linking, and other features.
Is GFM the same as standard markdown?
No. GFM is a superset of CommonMark (the standard specification). Everything in CommonMark works in GFM, but GFM adds features like tables and task lists that CommonMark does not have.
Do I need to install anything to use GFM?
On GitHub, no. GFM is the default. In other tools like Astro or Next.js, you may need to install remark-gfm as a plugin. Most markdown editors (VS Code, Obsidian) support GFM without configuration.
Can I use GFM outside of GitHub?
Yes. GFM is widely supported across platforms. GitLab, VS Code, Obsidian, Hugo, Docusaurus, and many other tools implement GFM or a close variant. The GFM spec is publicly documented.
What features are GitHub-only (not in the GFM spec)?
Mermaid diagrams, math expressions (LaTeX), auto-linked usernames (@user), issue references (#42), and alerts (> [!NOTE]) are GitHub-specific features not in the formal GFM specification.
Try It Out
Write GFM syntax and preview it instantly in the MDtoLink editor. Tables, task lists, strikethrough, and code blocks all render in real time.
For the complete syntax, see the markdown cheat sheet. For a broader introduction, see What Is Markdown?.
Founder, MDtoLink
David builds developer tools and writes about markdown workflows, documentation, and AI-assisted publishing.
Publish your markdown to a shareable URL
One command. Free to start. No credit card.