Extensions

The original Markdown is small on purpose. Over the years, flavours and plugins have added the things real documents need: tables, task lists, footnotes, math and diagrams. Below is an index of the most useful ones and how to write them. Support varies by processor, so check your tool.

GitHub Flavored Markdown (GFM)

By far the most widely used dialect. GFM is a strict superset of CommonMark that bundles several of the extensions below into one spec: tables, task lists, strikethrough, autolinks for bare URLs, and disallowed raw HTML filtering. If a tool says it "supports GitHub Markdown", you get all of these at once.

CommonMark superset GitHub · GitLab · Gitea Most editors

Tables

To create a table in Markdown, separate the columns with pipes and add a row of dashes under the header. Colons in that separator row set the column alignment.

You write
| Feature | Core | GFM |
|:--------|:----:|----:|
| Tables  |  No  | Yes |
| Tasks   |  No  | Yes |
You get
FeatureCoreGFM
TablesNoYes
TasksNoYes

Task lists

Add [ ] or [x] after a list marker to get interactive checkboxes, the basis of every Markdown to-do list and pull-request checklist.

You write
- [x] Write the draft
- [x] Review it
- [ ] Publish
You get
  • Write the draft
  • Review it
  • Publish

Diagrams & charts

Several extensions turn a fenced code block into a rendered diagram, so the source of the picture lives in your text file and versions alongside it. These are the most common:

Mermaid

Flowcharts, sequence, class, state, Gantt, pie and ER diagrams from a ```mermaid block. Rendered natively on GitHub, GitLab, Notion and many editors.

flowchartssequencegantt

PlantUML

Text-based UML (sequence, component, deployment and more) embedded in a ```plantuml block via a plugin or server.

UMLserver

Vega-Lite charts

Data charts (bar, line, scatter) from a JSON spec in a fenced block, supported by Markdown viewers such as VS Code extensions and Observable.

data chartsJSON

Graphviz / DOT

Render dot graph descriptions as node-and-edge diagrams through plugins like markdown-it-graphviz.

graphsDOT

Math & formulas

Write LaTeX between dollar signs and have it typeset by KaTeX or MathJax. Single $…$ is inline; double $$…$$ is a centred block. Now supported directly on GitHub and GitLab.

The mass–energy relation is $E = mc^2$.

$$
\int_0^\infty e^{-x}\,dx = 1
$$

Footnotes, callouts & definition lists

Footnotes

Reference a note with [^1] and define it anywhere in the document.

Markdown was created in 2004.[^1]

[^1]: By John Gruber and Aaron Swartz.

Admonitions / callouts

Highlighted note, warning and tip boxes. Syntax varies: GitHub uses > [!NOTE] blockquotes; Obsidian uses > [!warning]; MkDocs and Python-Markdown use !!! note.

> [!NOTE]
> Useful information that users should know.

> [!WARNING]
> Something that could cause a problem.

Definition lists

Pair a term with one or more definitions (PHP Markdown Extra, kramdown).

Markdown
:   A lightweight markup language.
:   Created by John Gruber in 2004.

Front matter

Front matter is a metadata block at the very top of a file, fenced by --- and written as YAML (or sometimes TOML). Static-site generators like Jekyll and Hugo read it to set values like the page title, date and tags. The block itself is not shown in the output.

---
title: My First Post
date: 2026-07-20
tags: [markdown, docs]
draft: false
---
Jekyll · Hugo

Table of contents

Some processors replace a [[toc]] or [TOC] marker with a linked table of contents built from the headings on the page.

You write
[TOC]

# Install
## Requirements
## Setup
docs

More handy extensions

Emoji shortcodes

Type :rocket: and get 🚀. Supported on GitHub, Slack, Discord and many editors.

:shortcodes:

Heading anchors / IDs

Add {#custom-id} after a heading, or auto-generate slugs so every heading is directly linkable.

linking

Highlight & sub/superscript

==marked== for highlight, H~2~O and x^2^ for sub- and superscript (Pandoc, markdown-it plugins).

typography

Abbreviations

Define *[HTML]: HyperText Markup Language once and every match gets a tooltip (PHP Markdown Extra).

tooltips

Which of these work depends entirely on your processor. The tools directory notes what each one supports.