---
title: "Footnotes, task lists and other extended Markdown"
author: Pedro Thomaz
source: https://coffeetext.app/blog/extended-markdown-footnotes-task-lists
---

# Footnotes, task lists and other extended Markdown

> Checked November 2026 against the [GitHub Flavored Markdown spec](https://github.github.com/gfm/), [GitHub's writing docs](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) and the [pandoc manual](https://pandoc.org/MANUAL.html). Coffee isn't affiliated with any of them.

Extended Markdown means anything beyond the [CommonMark](https://spec.commonmark.org/0.31.2/) core. There isn't one standard for it. Tables, task lists and strikethrough are written down in the [GFM spec](https://github.github.com/gfm/), while footnotes, callouts and maths belong to particular tools. So the useful question is always whether the app you publish with supports the feature. Coffee, for its part, draws task lists, tables, strikethrough, footnotes, callouts, maths blocks and three kinds of Mermaid diagram.

## What comes from where

| Feature | Write | Where it's described | In Coffee |
|---|---|---|---|
| Table | Pipes and dashes | GFM spec | Drawn, if each row starts with a pipe |
| Task list | `- [ ] to do` | GFM spec | Drawn, and you can click the box |
| Strikethrough | `~~gone~~` | GFM spec | Drawn with two tildes, not one |
| Bare link | `https://example.com` | GFM spec | Drawn for `http` and `https` addresses |
| Footnote | `[^1]` and `[^1]: Note` | GitHub's docs, pandoc | Drawn, and numbered in exports |
| Alert | `> [!NOTE]` | GitHub's docs | Drawn as a coloured box, all five types |
| Definition list | A term, then `: Meaning` | Pandoc | Plain text |
| Maths | `$$` block, or `$x^2$` inline | Pandoc | Blocks drawn as a formula; inline shown in italic, not drawn |
| Subscript, superscript | `<sub>2</sub>` on GitHub, `H~2~O` in pandoc | GitHub's docs, pandoc | Plain text |
| Hidden comment | `<!-- note to self -->` | GitHub's docs | Visible text, left out of PDF and HTML exports |
| Diagram | A fenced `mermaid` block | Mermaid | Flowcharts, pie charts and sequence diagrams drawn; other kinds stay as code |
| Highlight | `==marked==` | Neither here | Drawn |
| Note link | `[[Other note]]` | Neither here | Drawn, and clickable |

"Plain text" means what you typed stays on the page and in the file, unchanged. Coffee doesn't remove it or rewrite it, so another tool can still read it.

## Task lists

The [GFM rule](https://github.github.com/gfm/) is a list item starting with a pair of brackets holding a space or an `x`, in either case:

```
- [ ] Book the room
- [x] Send the agenda
```

The spec leaves open what happens when someone clicks the box, so many published pages show it disabled. In Coffee's page view you can click to tick it, or press ⌘Return on the line, which also turns an ordinary line into a checklist item. Either way it edits the character between the brackets, so the file stays standard. In an HTML export the box is shown, ticked or not, but can't be clicked.

## Footnotes

Footnotes are probably the most asked-for extra, and Coffee draws them. A reference shows as a small raised label and the definition as smaller print. Resting the pointer on a reference shows its note, and ⌘-click jumps between the two. Exports number the notes in the order they're first used: HTML links both ways, PDF moves them to the end with superscript numbers, and Word gets real footnotes. EPUB carries them too. The file keeps `[^1]` as you typed it.

The syntax, [as GitHub documents it](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax), is a reference in the text and a definition anywhere in the file:

```
The figure comes from the 2024 survey.[^1]

[^1]: Published by the institute in March.
```

GitHub puts the footnote at the bottom whatever the definition's position, and notes that wikis don't support them. It's one of those features that isn't part of the GFM spec, though [pandoc](https://pandoc.org/MANUAL.html) has a footnotes extension that's on by default for its `gfm` format.

Because Coffee leaves the syntax alone, the same note reaches GitHub, your static site or pandoc intact. For an HTML page from pandoc, `pandoc note.md -f gfm -s -o note.html` turns them into real footnotes. See [Markdown to HTML on the Mac](https://coffeetext.app/blog/markdown-to-html-mac). Coffee reads each footnote as one line, so an indented line after a definition isn't read as part of it.

## Strikethrough and highlight

GFM accepts [one or two tildes](https://github.github.com/gfm/) for strikethrough. Two is the safer habit, and it's the only form Coffee reads. Pandoc's `H~2~O` uses single tildes for subscript, so one tilde can mean different things in different tools.

Highlighting isn't covered in the specs linked here. Coffee accepts `==marked==` and `<mark>marked</mark>`, and ⇧⌘H adds it. If your note will be read elsewhere, the `<mark>` form has the better chance, since it's HTML rather than one app's convention, as long as raw HTML is allowed there.

## Automatic links

GFM recognises `www.example.com`, addresses starting `http://` or `https://`, and email addresses without any extra markup. Coffee picks up the two `http` forms only. Write `www.` addresses and email addresses as ordinary links if you want them clickable in Coffee.

## Callouts, maths and diagrams

GitHub's [alerts](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) are quotes with a special first line, such as `> [!WARNING]`, in five types. Coffee draws all five as a coloured box with an icon and a title, and hides the marker until the caret is on its line. It also reads Obsidian's spelling of them. HTML, PDF, Word and EPUB exports draw the box, and the file keeps the quote as written, so it's still correct when pushed to GitHub.

For maths, Coffee draws a block that starts and ends with `$$` on its own line, or `$$ … $$` on one line, as a formula under the block. It covers everyday TeX: Greek letters, operators, scripts, fractions, roots, sums and integrals with limits, `\left` and `\right`, accents, `\text`, `\mathbb`, matrices and cases. Anything it can't read stays as TeX. Inline `$x^2$` is shown in maths italic but isn't drawn as a formula. PDF, print, HTML, Word and EPUB exports include the drawn formula.

For diagrams, a fenced `mermaid` block holding a flowchart, a pie chart or a sequence diagram is drawn under its code, in the editor and in PDF, HTML, Word and EPUB exports. Gantt charts, class and state diagrams and other Mermaid kinds stay as code. Either way the file keeps what you wrote, so whatever renders it for you later can still read it. Coffee also has [calculations](https://coffeetext.app/blog/calculator-in-notes-mac), but those are a different thing: sums worked out beside the line.

## Raw HTML

Standard Markdown allows HTML, and GFM filters only a short list of risky tags. Coffee doesn't render raw HTML apart from `<mark>`. So `<sub>`, `<kbd>` and `<img>` show as text in the note, and are escaped in an HTML export, so they appear as text there too. HTML comments are different. `<!-- comments -->` show as text in the note, but PDF and HTML exports and Quick Look leave them out, unless they're inside code. They stay in the file, though, and in Markdown and plain text exports, so don't count on one to keep anything private.

If you want to leave yourself notes in Coffee without touching the file, it has comments that are stored outside the note, so they never appear in an export.

## Choosing what to use

If a note may end up anywhere, keep to the GFM set: tables, task lists, strikethrough. If you know where it's going, check that tool's docs and use what it offers. Either way, Markdown is only text, so nothing is lost by writing syntax your current editor doesn't draw.

## Questions

### Does Coffee support footnotes?

Yes. `[^1]` shows as a small raised label, and ⌘-click jumps to its note and back. PDF, HTML, Word and EPUB exports number the notes, and the file keeps the syntax as written, so pandoc or GitHub can render it later.

### Does Coffee support task lists?

Yes. Write `- [ ] item`, click the box in the page view or press ⌘Return, and the file gets a standard `- [x] item`.

### Are task lists standard Markdown?

They aren't in CommonMark. They're an extension defined in the GitHub Flavored Markdown spec, which many other tools follow.

### Does Coffee render raw HTML?

No, apart from `<mark>`. Other tags appear as text in the note and in HTML exports.

---

Written by Pedro Thomaz, who makes Coffee, a Markdown editor for the Mac on macOS 15 or later. It's free for 14 days with no card or account, then €3 a month, €29 a year, or €79 once with two years of updates. More at https://coffeetext.app/llms-full.txt
