# Markdown basics
Markdown cheat sheet
Last updated July 2026
Markdown is plain text with a few punctuation marks that stand in for formatting: # for a heading, * for emphasis, - for a list item. The table below is the quick reference, with the exact syntax for each element and whether Unmarked renders it.
Markdown stays readable as raw text, then formats on render. A dozen or so marks cover almost any document.
The cheat sheet
| Element | Syntax | Renders in Unmarked |
|---|---|---|
| Heading | # H1 … ###### H6 | Yes |
| Bold | **bold** | Yes |
| Italic | *italic* | Yes |
| Strikethrough | ~~struck~~ | Yes |
| Unordered list | - item | Yes |
| Ordered list | 1. item | Yes |
| Nested list | indent two spaces | Yes |
| Task list | - [ ] / - [x] | Yes, checkboxes tick in Read mode |
| Link | [text](url) | Yes, clickable in Read mode |
| Local image |  | Yes |
| Remote image |  | Shows as alt text (no network) |
| Inline code | `code` | Yes |
| Fenced code | ```lang … ``` | Yes, with language label + copy button |
| Blockquote | > quote | Yes |
| Table | | a | b | | Yes |
| Horizontal rule | --- | Yes |
| Frontmatter | --- block at top | Yes, as a properties panel |
Footnotes and math sit outside the table: Unmarked shows them as the plain text you typed. The sections below expand each row with syntax you can copy.
Headings
One to six # marks set the heading level. More hashes means a smaller, deeper heading.
# Project notes
## Background
### Open questionsThat produces a top-level title, a section under it, and a sub-section under that. Unmarked also feeds these to its outline sidebar, so headings double as navigation.
Bold, italic, and strikethrough
Wrap text in ** for bold, a single * for italic, and ~~ for strikethrough.
**Due Friday**, but the *draft* is ready and the ~~old deadline~~ is gone.You get bold "Due Friday", italic "draft", and a struck-through "old deadline". Strikethrough is a GitHub extension; Unmarked supports it.
Lists
Start a line with - for a bullet, or 1. for a numbered item. Indent two spaces to nest a list inside another.
- Groceries
- Oats
- Coffee
- Errands
1. Draft
2. Edit
3. SendThat renders a bulleted list with two nested items, then a numbered list of three steps.
Task lists
A task list is a bullet with a checkbox. Use - [ ] for an open item and - [x] for a done one.
- [x] Write the outline
- [ ] Draft section two
- [ ] ProofreadThat produces a checklist with the first item checked. In Unmarked's Read mode the boxes are clickable, and ticking one saves the change straight to the file.
Links and images
A link is [visible text](url). An image is the same with a ! in front, where the text becomes the alt text.
[Read the docs](https://example.com/docs)
The link renders as clickable text in Read mode. A local image like assets/diagram.png renders as the picture. A https:// image renders as its alt text instead, because Unmarked has no network access and can't fetch from the web.
Inline code and fenced code
Wrap a word in single backticks for inline code. For a block, fence it with three backticks and name the language on the opening line.
Run `npm install` first.
```bash
git switch -c fix-typo
git commit -am "Fix typo"
```The inline part renders npm install in a mono font. The block renders as a code box with a bash language label and a copy button. Naming the language drives the label.
Blockquotes
Start a line with > to quote it. The quote keeps its own indented block.
> Plain text outlives the apps that made it.That renders as an indented, set-off quotation.
Tables
Separate columns with pipes (|) and put a row of dashes under the header. Colons in the dash row set alignment.
| Task | Owner | Done |
|----------|-------|:----:|
| Outline | Sam | yes |
| Draft | Lee | no |That renders a three-column table with a header row, and the :----: centers the last column. Tables are a GitHub extension that Unmarked renders.
Horizontal rule
Three or more dashes on their own line draw a divider.
First half of the note.
---
Second half.That renders a horizontal line between the two paragraphs. Keep a blank line above it so it isn't read as a heading underline.
Frontmatter
A block fenced by --- at the very top of the file holds metadata as key: value pairs. This is YAML frontmatter.
---
title: Meeting notes
date: 2026-06-28
tags: [planning, q3]
---
The notes start here.The block isn't part of the body. Unmarked reads it and shows it as a properties panel rather than printing the raw --- lines in your document.
In Unmarked
Everything in the table above renders. Unmarked parses CommonMark with Apple's swift-markdown, plus the GitHub extensions you reach for most: tables, task lists, and strikethrough, along with YAML frontmatter. The footnotes and math you saw skipped in the table stay on screen as the source you typed.
Unmarked is a free, private Markdown reader and editor for Mac. Read the story , or get in touch.