Guide

GitHub Flavored Markdown (GFM) Guide

GitHub Flavored Markdown (GFM) is a superset of CommonMark — the standard markdown spec — developed by GitHub. It adds features that are practical for software documentation and collaboration: tables, task lists, strikethrough, autolinks, and more. Most modern note apps and editors support GFM.

Tables

GFM tables are one of the most commonly used extensions. Use pipes to separate columns and hyphens in the second row to create the header separator. Colons control column alignment.

| Syntax    | Description |
|-----------|-------------|
| Header    | Title       |
| Paragraph | Text        |

| Left-aligned | Centered | Right-aligned |
|:-------------|:--------:|--------------:|
| Left         | Center   |         Right |

Task Lists

Create interactive checklists with `- [ ]` for unchecked and `- [x]` for checked items. On GitHub these render as actual checkboxes you can click.

- [x] Write the initial draft
- [x] Review and edit
- [ ] Publish to the blog
- [ ] Share on social media

Strikethrough

Wrap text in double tildes `~~` to render strikethrough text. Useful for showing deleted content or crossed-off items.

~~This was deleted~~ and this is current.

Autolinks

GFM automatically converts URLs and email addresses to clickable links without any syntax. Just paste the URL.

https://knowdust.com is a link.
So is [email protected].

Fenced Code Blocks

GFM supports fenced code blocks with triple backticks or tildes, with optional language identifiers for syntax highlighting.

```python
def hello():
    print("Hello, world!")
```

~~~css
body {
  color: red;
}
~~~

Syntax Highlighting

Adding a language name after the opening fence enables syntax highlighting in supported renderers. Common identifiers:

  • javascript or js — JavaScript
  • typescript or ts — TypeScript
  • python — Python
  • bash or sh — Shell
  • sql — SQL
  • json — JSON
  • css — CSS
  • html — HTML
  • markdown or md — Markdown

Footnotes

GFM supports footnotes. Place the footnote marker inline with `[^label]` and define the content at the bottom of the document.

Here is a sentence with a footnote.[^1]

And another.[^note]

[^1]: This is the first footnote.
[^note]: This is the second footnote.

Mention and Issue References

On GitHub, `@username` mentions and `#123` issue references are auto-linked. These are GitHub-specific and won't render in most other apps.

@octocat fixed this in #42

Disallowed Raw HTML

GFM filters certain HTML tags for security. Tags like `<script>`, `<iframe>`, and `<form>` are stripped. Safe tags like `<kbd>`, `<sup>`, and `<sub>` are allowed.

<kbd>Ctrl</kbd> + <kbd>C</kbd> copies text.

H<sub>2</sub>O is water.

E = mc<sup>2</sup>

Write GFM daily? Knowdust gives every doc git-backed history

Knowdust stores your notes as real .md files in a git repository. Every edit is a commit you can diff, browse, and restore.

Start free →