Reference

Every mark a note can carry.

A note is plain Markdown. Type a mark's characters and Ghost.md draws what they mean; in any other app they still read as words. Standard Markdown comes first, then what Ghost.md adds.

Standard Markdown

What every Markdown app reads the same way: write these anywhere and they keep their meaning.

A title

#

A note usually starts with its name. One # and a space makes that line the title, and it is what the note is called in your list.

# Weekend trip

A heading

##

More hashes, smaller heading: ## for a part of the note, ### for a part of that. It is how a long note gets somewhere to look.

## The budget

Bold

**

Two stars either side of some words make them bold. The stars themselves go once the line is written.

The train leaves **Friday at noon**

Italic

_

One underscore either side leans the words over. It is quieter than bold: an aside, a name, a word said with a shrug.

we could take the coast road _if the weather holds_

Bold and italic

***

Three stars either side make words bold and italic at once. Keep it for the one thing that must not be missed.

the deposit is ***not*** refundable

Struck through

~~

Two squiggles either side cross the words out. Good for a plan that changed, where you still want to see what it was.

we are going ~~on Thursday~~ on Friday

Code

`

A backtick either side sets the words in the typewriter face and leaves them exactly as you typed them: a command, a filename, a password to read out.

run `npm run dev` first

A list

-

A dash and a space starts a list, one line each. Press Enter and the next line is a bullet too.

- Oat milk
- Rye bread
- Coffee

In order

1.

A number, a dot and a space when the order is the point: steps to follow, one after another.

1. Unplug it
2. Wait a minute
3. Plug it back in

A to-do

- [ ]

A dash, then a box: - [ ] and the thing to do. Tap the box in a note to tick it off, or type an x between the brackets.

- [ ] Book the cabin
- [x] Pick a date

A quote

>

A > and a space sets a line apart: somebody else’s words, or something you want to stand away from the rest.

> The deposit comes back in full.

A dividing line

---

Three dashes on a line of their own draw a line across the note: one thing ends, another starts.

Packing

---

On the way back

A block of code

```

Three backticks above and below a few lines keeps every one of them exactly as typed, and colors the code if you say what it is after the first three.

```js
const note = "hello";
```

A table

| |

Pipes between the cells, and a row of dashes under the first row. In a note the table is drawn as a table; a tap on it opens its pipes to change it, and it is drawn again when you leave it.

| What | Packed |
| --- | --- |
| Tent | Yes |

A picture

![ ]( )

An exclamation mark, what the picture shows in square brackets, and where it is in round ones. In a note you seldom type it: paste a picture, or press and hold and choose Add image, and the line is written for you.

![A cassette](image/sample-tape.svg)

A footnote

[^ ]

A caret and a name in square brackets marks the words, and a line that starts with the same mark and a colon says what it is. In a note the mark is raised, and a tap on it shows the small print.

four hundred[^sam]

[^sam]: Sam said so.

More Markdown

Tables, pictures, footnotes, maths, callouts and diagrams.

A video

[![ ]( )]( )

A picture of the film’s first frame, linked to the film itself. You never type it: on Android, the + beside an empty line writes it when you choose A video. The film stays on the phone it was added on; everywhere else the still shows.

[![video 0:12](image/sample-tape.svg)](video/a1b2c3.mp4)

Raised

^ ^

A caret either side lifts part of a word above the line: the 2nd of June, a power in a sum.

the 2^nd^ of June

Lowered

~ ~

One squiggle either side drops part of a word below the line, the way water is written. Two squiggles cross words out, which is a lesson of its own.

H~2~O

A definition

:

A word on one line, and its meaning on the next, starting with a colon and a space. The colon goes at the start of the meaning’s line, not after the word, which is how Markdown apps know it is a definition; drawn, it is gone and the meaning hangs under the word. It is how a glossary is written.

Deposit
: what you pay up front

Maths

$

A dollar sign either side makes a formula, drawn as one: a raised power, a fraction, a Greek letter. Two either side, alone on a line, set it in the middle of the page. With the caret on its line you see what you typed, to edit.

the area is $\pi r^2$, and half is $\frac{1}{2}$

An emoji

: :

A name between colons becomes its emoji: :tada: is a party popper. The name comes back while the caret is on the line, and a name Ghost.md does not know stays as it was typed.

shipped :tada:

A callout

[! ]

A quote whose first line is [!NOTE] becomes a box of its own. TIP, IMPORTANT, WARNING and CAUTION work the same way.

> [!NOTE]
> The deposit comes back in full.

A diagram

```mermaid

A block of code marked mermaid is drawn as the diagram it describes: boxes, and the arrows between them. Tap a drawn diagram in a note to change its words.

```mermaid
flowchart TD
  A[Speak] --> B[Note]
```

Lines that do more

Tags, choices, counters, sums, blanks for the AI and comments: lines whose words the note works with.

A tag

#

A hash against a word, with no space between, tags the line: #web. A tag can hold a slash, #work/clients, which apps like Obsidian read as one tag inside another. A hash and a space at the start of a line is a heading instead.

- [ ] Ship the pricing page #web

A choice

- ( )

Round brackets on a list make a choice. One in the group is picked, with an x, and a tap on another picks it and clears the rest. Try it on the one drawn below.

Where do we stay?
- ( ) Tent
- (x) Cabin

A counter

[ / ]

A count and a goal in square brackets, like [3/8], is a counter. In a note a tap adds one and a hold takes one away, never past the goal.

- Water [3/8]

A sum

=

A line that starts with = and a space shows its answer after it. The answer is never written into the note, so it changes when a number does.

= $450 + 120 * 2

A blank for the AI

{?}

Curly brackets and a question mark ask a question where its answer belongs. A total, a date or a conversion is worked out at once. Anything else waits for Fill: the model on the phone answers with a dotted line under what it wrote, and something live, like the weather or a rate, is looked up online when you press it, with only the question sent.

Days until Christmas: {?}

A hidden line

>|

A quote whose first character is a bar is blurred until the caret is in it: the answer to a riddle, or a code nobody should read over your shoulder.

>| The answer is forty-two.

Progress

#

Nothing to type but a heading and its to-dos: the heading counts them, “1 of 2”, and says so when they are all done.

## Packing
- [x] Tent
- [ ] Stove

A comment

[^c1]

A comment is kept in the note itself: a mark like [^c1] after the words it is about, or ==round them==[^c1], and the thread in a ```comments block at the end - its id, who and when, then the words, with replies indented under it. Comment on the press-and-hold menu, in More and in the bar writes both for you.

Call the band[^c1]

```comments
c1 me 2026-10-05T09:00:00Z
Which band?
```

Boards and to-dos

Due days and people on a to-do, names for items, and boards made of them.

Fields on a to-do

📅

A to-do can say when it is due, how much it matters and who it is for, in the signs Obsidian Tasks reads: 📅 and a date, ⏫ for high priority, @ before a name, and [effort:: 3] for anything else. In a note each is a chip: the date says “Tomorrow”, and goes red once it has passed. Tap one to change it, or press and hold a to-do to add one.

- [ ] Fix the login loop @sam ⏫ 📅 2026-10-03

A name for an item

^

A space, a caret and a name at the very end of a list item names it, so a board or a sentence can point at it. The name is drawn small and faint.

- [ ] Ship the pricing page ^ship-page

That item, from the words

[[#^ ]]

Two square brackets around a hash, a caret and an item’s name point at that item from anywhere in the note. A tap goes to its line.

the page is waiting on [[#^ask-sam]]

- Ask Sam about the copy ^ask-sam

A board

```board

A block marked board lays named items out as columns. Each line of it is a column: its name, a colon, and the names of the items in it. The items stay in the note as they were, and dragging a card to another column moves it there.

```board
To do: ship-page
Done: pick-date
```

- [ ] Ship the pricing page ^ship-page
- [x] Pick a launch date ^pick-date

A board’s height

```board height=

Left to itself a board is as tall as its longest column. Drag the line under it to set a height, and the columns scroll inside it; the height is written on the fence as height=, in the board’s own text size. A double tap on the line takes it off again.

```board height=12
To do: ship-page
Done: pick-date
```

- [ ] Ship the pricing page ^ship-page
- [x] Pick a launch date ^pick-date

Tickets and queries

Notes as tickets, and queries that list, count and lay out what matches in every note.

A ticket

type: ticket

A note whose front matter says type: ticket is a ticket. Its status, who it is for, its priority and its due day sit under that line, and are drawn as a card you tap to change. A notebook with a ticket key numbers its tickets, and [[GHO-12]] links to one by its key.

---
type: ticket
id: GHO-12
status: In progress
assignee: Sam
---
# Fix the login loop

A ticket notebook

key:

A notebook whose front matter has a key numbers the tickets made in it: key: GLY gives GLY-1, then GLY-2 and on. Make this a ticket, under More on the +, turns the note you are in into its notebook’s next ticket.

---
book: true
key: GLY
---
# Glyph

- [[GLY-1]]

A query

```query

A fence called query lists what matches across every note: to-dos, tickets or notes. Say where from, what has to be true, and how to show it, a line each, and it is drawn as a list, a table, a board, a month or a timeline that keeps up as your notes change. A database, on the + beside an empty line, writes a ready-made one (under More in Simple mode).

```query
from: tasks
where: due <= today+7
show: list
```

Narrow it down

where:

where: keeps only what is true: status != Done, due < today, priority >= high, assignee = Sam, joined with and or or. sort: puts what is left in order, by one field or several.

```query
from: tickets
where: status != Done and priority >= high
sort: due
```

Show it another way

show:

show: draws the same answer as a table, a list, a board, a calendar month, a gantt timeline or a count. A query drawn as a board keeps a height as a board does: drag the line under it.

```query
from: tasks
show: calendar
```

Group and add up

group:

group: gives each value of one field its own heading, or its own lane on a board. total: adds a number up, under each group and at the end: an estimate, or any field of your own.

```query
from: tickets
group: assignee
total: estimate
show: table
```

Marks and effects

Highlights, spoilers, asides and the five effects, from the Marks plugin.

A spoiler

||

Two bars either side blur the words until the caret is in them: the end of a film, a surprise.

the ending: ||the butler did it||

A highlight

==

Two equals signs either side put a wash of color behind the words, for the line you will want again.

meet at ==the north gate==

A colored highlight

==( )

A color’s name in brackets straight after a highlight changes its color: blue, red, amber, green, teal, purple or gray.

==the cabin key==(green) and ==the deadline==(red)

An aside

%%

Two percent signs either side make a note to yourself inside the note: smaller, quieter, leaning.

the train at nine %%or the one after%%

Unsure

??

Two question marks either side draw a dotted line under a fact to check later.

the deposit is ??four hundred??

A note on a mark

( )

Words in brackets straight after a mark are a note on it, and a tap on the words in a note shows it. On a fact you are unsure of, it says why.

??four hundred??(Sam said 400)

A redaction

@@

Two at signs either side put a solid bar of ink over the words. It lifts while the caret is in them, so they can still be read and edited, and a share still has the words.

the name on the lease is @@Sam Ortiz@@

A shout

^^

Two carets either side set the words in spaced small capitals: emphasis that is not bold.

bring ^^the tickets^^

Added

++

Two plus signs either side underline what was added, the partner of struck through for what went.

we leave at ~~nine~~ ++ten++

Heat

🔥🔥

Two flames either side make the words bold, and the line above them wavers in the heat coming off them. An effect lifts while the caret is in its words, so they edit as plain text.

The air above wavers
🔥🔥too hot to touch🔥🔥

Frost

❄️❄️

Two snowflakes either side turn the words cold, a rime creeping over their edges and settling.

the pond is ❄️❄️frozen solid❄️❄️

A wave

🌊🌊

Two waves either side set the words bobbing along the line, a ripple passing through them.

the boat went 🌊🌊out to sea🌊🌊

A shimmer

✨✨

Two sparkles either side send a glint across the words every few seconds.

a ✨✨silver thread✨✨

A haunting

👻👻

Two ghosts either side make the words fade almost away and back, slowly, like something passing.

and then 👻👻nobody there👻👻

Learn them one at a time, by typing each, in the app's Academy: Settings › About › Ghost.md Academy. The marks in Marks and effects come with the Marks plugin, on unless you remove it in the Market.