Skip to content
Writer / Markdown guide

Write plainly

Markdown is text with a few light marks. This is every one of them, what it does, and a place to try it.

Try it

Preview

A short test

Write anything here and watch it render on the right. Try highlights, code, and links.

Edit me, or clear the box and start fresh.

  • Read the guide
  • Write something

Text

The everyday marks. Paragraphs are separated by a blank line.

Bold

Strong emphasis. Use it sparingly.

You type
This is **bold** text.
You get

This is bold text.

Italic

Light emphasis, titles, foreign words.

You type
This is *italic* text.
You get

This is italic text.

Bold + italic

Both at once.

You type
This is ***both***.
You get

This is both.

Strikethrough

Marks something as no longer true.

You type
I ~~loved~~ like fast things.
You get

I loved like fast things.

Highlight

Underlines an idea in yellow.

You type
The ==important== part.
You get

The important part.

Inline code

Monospace, for names and commands.

You type
Run `npm run dev` to start.
You get

Run npm run dev to start.

Keyboard keys

Draws a little keycap.

You type
Press <kbd>⌘</kbd> + <kbd>K</kbd>.
You get

Press ⌘ + K.

Line break

End a line with a backslash to break without a new paragraph.

You type
First line\
Second line
You get

First line
Second line

Smart typography

Quotes curl, dashes and ellipses are typeset for you. Just type plainly.

You type
"Quotes" -- en dash, --- em dash, and...
You get

“Quotes” – en dash, — em dash, and…

Headings

Headings build the page outline and get their own anchor link.

# / ## Section

The main heading. Gets an orange square. A single # renders the same as ##.

You type
## A section heading

### Subsection

A smaller heading inside a section.

You type
### A subsection
You get

#### Label

A small uppercase label. Use for tiny captions.

You type
#### A label
You get

A label

Lists

Indent two spaces to nest.

Bulleted

Dashes (or * or +).

You type
- One
- Two
  - Nested
  - Nested
You get
  • One
  • Two
    • Nested
    • Nested

Numbered

Numbers count themselves, so start any number.

You type
1. First
2. Second
3. Third
You get
  1. First
  2. Second
  3. Third

Task list

Checkboxes, ticked with an x.

You type
- [x] Done
- [ ] Not yet
You get
  • Done
  • Not yet

Blocks

Boxes that change how a passage sits on the page. Open with ::: and close with :::.

Blockquote

Borrowed words. Start each line with >.

You type
> A blockquote, for borrowing someone else's words.
You get

A blockquote, for borrowing someone else’s words.

:::note

A sidenote. Floats into the margin on wide screens, inline on small ones.

You type
:::note
A **sidenote** in the margin.
:::
You get

:::pullquote

A large quote for the line you want remembered. Text after the keyword is the attribution.

You type
:::pullquote Someone wise
Less, but better.
:::
You get

Less, but better.

— Someone wise

:::callout

A boxed aside with a title. :::tip, :::info and :::warning work too.

You type
:::callout Tip
Callouts are boxed asides.
:::
You get

:::aside

The quieter version of a callout.

You type
:::aside
An aside, softly.
:::
You get

:::wide

Lets content (a table, an image) break out of the reading column.

You type
:::wide
| A | B |
| - | - |
| 1 | 2 |
:::
You get
AB
12

Code

Fence with three backticks. Add a language for colour and a title for a filename.

Fenced code

Language after the backticks (js, ts, py, sh, css, html…); title="…" adds a header.

You type
```js title="hello.js"
export function greet(name) {
	return `Hello, ${name}!`;
}
```
You get
hello.js
export function greet(name) {
    return `Hello, ${name}!`;
}

Tables

Pipes make columns. The second row sets alignment with colons.

Table

:-- left, :-: centre, --: right.

You type
| Syntax | Result | Align |
| :-- | :-: | --: |
| `**bold**` | **bold** | left |
| `*em*` | *em* | right |
You get
SyntaxResultAlign
**bold**boldleft
*em*emright

Footnotes & dividers

Footnote

Reference in the text, definition anywhere. They collect at the bottom with a link back.

You type
A claim worth sourcing.[^1]

[^1]: Footnotes collect at the bottom.
You get

A claim worth sourcing.[1]

Notes

  1. 1
    Footnotes collect at the bottom. ↩

Divider

Three dashes on their own line.

You type
Above

---

Below
You get

Above

Below

Tips & tricks

  1. 01

    Write first, format later

    Get the sentences down in plain paragraphs. Add bold, headings and callouts on a second pass, when you know what matters.

  2. 02

    One idea per paragraph

    Leave a blank line between paragraphs. A single line break inside a paragraph is just a space.

  3. 03

    Use ## for sections

    Skip # entirely; it renders like ##. Reach for ### only when a section really splits in two.

  4. 04

    Emphasis is a seasoning

    If everything is bold, nothing is. Prefer italic for tone and keep bold for the one thing a skimmer must see.

  5. 05

    Type plainly

    Use straight quotes and -- or ---. The renderer turns them into proper typography so you never need to hunt for special characters.

  6. 06

    Margins over footnotes

    :::note keeps an aside next to what it comments on. Use a footnote when it is a citation, a note when it is a thought.

  7. 07

    Escape with a backslash

    To show a literal asterisk or bracket, put a backslash before it: \*not italic\*.

  8. 08

    Code in backticks

    Anything a reader might copy (commands, filenames, keys) belongs in `inline code` or a fenced block.

refined / © 2026 Cooper Lappenbusch less, but better.