Links, tags & embeds
Node text is the source of truth, and three bracket syntaxes turn plain text into a
graph: [[links]], #tags, and ((embeds)). Every reference is tokenized and resolved
on the same write transaction that saves your edit, so the graph is always exactly as of
your last keystroke.
The three ref types
Section titled “The three ref types”| Syntax | Renders as | Meaning |
|---|---|---|
[[Page Title]] |
A blue link | Clicking navigates to the target page |
#tag or #[[Multi Word Tag]] |
A tag chip | A lightweight, clickable label; use the bracketed form when the tag has spaces |
((Page Title)) |
An embedded block | Renders the target page’s content inline, in place, as part of this page |
All three share one resolver: a reference’s target text is looked up as an exact page
title, then as an alias,
and if neither matches, Subspace implicitly creates a new page with that exact title,
filed under the unfiled directory, so the link is never dangling. Typing #roadmap for
the first time creates a page titled “roadmap” in unfiled, so tags are ordinary,
clickable, mergeable pages. See rename and merge for
how a page’s title (and therefore every ref to it) stays consistent as it moves around.
Labels
Section titled “Labels”A node whose text starts with key:: value, for example:
cash:: 812k, runway to Marchmaintains a page-level label: cash becomes a key on the page, addressable from
tables and formulas or a custom function
as [[Q3 planning]]:cash, where the value is everything after ::. Labels re-derive on
every text edit to that node, edit the bullet and the label’s value updates with it, and
a page can carry any number of distinct label keys, one node owning each key (a second
cash:: node on the same page overwrites which node backs the label).
Backlinks and linked references
Section titled “Backlinks and linked references”Every page that links, embeds, or tags a given page shows up automatically: the
“Linked references · N” footer at the bottom of a page lists every referencing node,
grouped and sorted by source page title, with the exact bullet text that made the
reference. Click a backlink’s source title to jump to that page. Backlinks are computed
live from kb.links (indexed by destination page), so if a reference is deleted or
rewritten, it disappears from the footer on the next read.
Unlinked mentions
Section titled “Unlinked mentions”Below linked references, an “Unlinked mentions · N” footer lists nodes elsewhere that
say this page’s title in plain text without ever bracketing it — the note you wrote
before the page existed, or the name you typed in a hurry. Each row shows its source page
and the bullet text, with a Link button that rewrites that bullet to a canonical
[[Page Title]].
The rewrite is an ordinary updateText command against the source page, so it is
audited, synced, and undoable like any edit you made by hand. Once linked, the row leaves
this footer and appears under linked references.
Tag chips
Section titled “Tag chips”A #tag renders as a small chip (using the --tag-ink / --tag-bg design tokens)
rather than the bracketed link styling. Because tags resolve through the same
link-resolution path as [[links]], a tag is a real page: click a chip to open the tag’s
page, and use its “Linked references” footer to see everything tagged with it. Group
related tags under a directory the way you would any other pages.
Embeds
Section titled “Embeds”((Page Title)) embeds the target page’s body as a rendered block inside the current
page, useful for transcluding a shared checklist, a status table, or a canonical
definition without duplicating its text. An embed is a live view: editing the embedded
page updates every page that embeds it, the same convergence
mechanism that keeps multiple open windows in sync.