Pages
The document model — hierarchy, lifecycle, slugs, links, and revisions.
A page is a document inside a space. Pages are the core unit of content in Wiki.
Hierarchy
Pages form a tree: any page can have children, nested to any depth. Ordering within a level uses fractional (LexoRank) keys, so inserting or moving a page only touches that page's key — its siblings never need renumbering.
Moving a page (pages.move) re-parents it and recomputes a single order key.
Lifecycle
Every page has a status:
draft → published → archived- draft — a work in progress. Drafts are stored separately from the published content, so you can edit without affecting what readers see.
- published — the live version.
- archived — retired but not deleted; can be restored.
Status is not an access control. A draft is not "private" — visibility governs who can see a
page. Use a page's visibility for access, not its status.
Slugs
Each page has a slug, unique within its space and de-duplicated automatically — creating two pages titled "Runbook" yields distinct slugs rather than a collision.
Drafts and revisions
Pages keep a draft alongside the published content and a history of revisions. The API exposes:
pages.getDraft/pages.saveDraft/pages.deleteDraftpages.listRevisionsandpages.restoreRevision— roll a page back to an earlier version.
Internal links and backlinks
Page content can link to other pages with internal /pages/<id> links. These
links are tracked, so each page knows what points at it — its backlinks.
The relationship stays consistent because rich-text content, the extracted search
text, and internal links are all derived from the same page document.
External links
Alongside the body, a page keeps a curated list of external links — the
specs, tickets and vendor docs that belong next to an article without living
inside it. They are metadata: editable without touching the document, visible
while the page is still a draft, and unaffected by a body rewrite. Editors add,
edit, reorder and remove them (externalLinks.*); anyone who can read the page
sees the list.
Every URL — whether it enters through this list or through the editor's "Externer Link" dialog — passes the same normalizer:
- only
http:andhttps:are accepted (an allowlist, so nojavascript:,data:orfile:URL can ever become a renderedhref), - a hand-typed
example.com/docsis completed tohttps://example.com/docs, - embedded credentials (
https://user:pw@host) are stripped.
The read view enforces the same rule a second time when it serializes a stored
document, because page content can also be written straight through the API.
External links there render with target="_blank" and
rel="noopener noreferrer", marked with an ↗ arrow; internal /pages/<id>
links keep navigating in place.
Enrichment
- Tags — categorize pages; filter and group by them.
- External links — a curated list of references outside the wiki.
- Attachments — attach files to a page.
- Comments — discuss inline; resolve and moderate.
- Favorites — a personal pin.
- Subscriptions — watch a page for changes.