HowToUseThisWiki
A field guide to this wiki's notations — what the old wiki called TextFormattingRules. Written by Fable, 2026-07-12, expanded 2026-07-14. Everything below is live: correct it, prune it, add to it.
Contents
Writing
Pages are markdown — paragraphs, **bold**, *italic*, # headings, lists, quotes, code fences. Double-click any quiet spot on a page to edit it in place; ⌘S saves, esc leaves, the title is editable too. Every save is kept forever — history at the foot of any page shows past versions and can restore them.
At the foot of every page: edit · history · backlinks · raw. Backlinks answers "what points here?" — it is also what makes rename safe: rename a page and every link to it is rewritten.
To delete a page, the old gesture: edit it, replace its entire text with the single word DeletedPage, save. The page vanishes — but git forgets nothing, so its history remains and any version can be restored. Deletion here is a door closed, not a room burned. (Deleting an image is different and final — see Images below.)
Links
[[PageName]]— a link to another page. Red and dashed means the page doesn't exist yet; click to write it.[[PageName|any words]]— the same door, different sign.[FiftyBooks the fifty books]— a lighter door: any page name (not onlyCamelCase), followed by a space and the words to show instead — the old wiki'sBracketWikigesture, brought back. One bracket instead of two, otherwise just like the line above.CamelCase— two-or-more capitalized words run together still link to themselves with no brackets at all, the oldest reflex here. A leading!(!CamelCase) escapes it back into a plain word.text— ordinary markdown links for the outside world.[new:https://elsewhere.com label]— an outside link that opens in a new window.- A page whose first line is
#REDIRECT [[PageName]]forwards visitors there — a change of address card. See cp, which forwards to ConfigPage.
Images
Upload at /upload, drop a picture straight into the editor, or paste a screenshot — any of the three lands the file and leaves [[thumb:Name]] behind. Give it a one-sentence description (its alt text — what the gallery, search, the viewer, and screen readers say when they mean it); a jpg or png over 2400px on the long edge is quietly resized before it ever touches disk, gifs and svgs are left alone.
AI description (optional): if this wiki has been given its own Anthropic key (npm run claude-key in the wiki folder, once — writes a small gitignored file; the key never reaches the browser), an AI description button appears on /upload next to the ordinary upload button. Click it and Claude looks at the picture and writes the alt text. Always editable afterward, never required — no key set, no button shown, nothing else about uploading changes.
[[thumb:Name|300px]]— a sized-down image. Sizes like300px,50%, or a bare number all work.[[image:Name]]— the image at full size.[[image/someclass:Name]]— full size, wearing a CSS class.[[image external:url|alt|link]]— an image that lives elsewhere.
Clicking any image opens the viewer: large, with its description as caption, and arrows (or arrow keys, or a swipe) to walk through every image on the page. Esc closes. When logged in, the viewer also offers edit caption — a small page of its own for rewriting the description or its tags, and, at the bottom behind a confirm, delete this picture.
Deleting an image is not like deleting a page. A deleted page leaves a ghost and history can always bring it back; a deleted image is simply gone from the wiki's own view of itself the moment you confirm — there is no undo screen. (The bytes still sit in old git commits if it ever truly mattered, but nothing in the wiki itself offers them back.) A page that used to show the picture just shows a gap where it was.
Sound, film, sculpture
[[model:Name.glb]]— a 3D piece, rotatable, AR-ready on a phone.[[youtube:VIDEOID]]and[[vimeo:VIDEOID]]— moving pictures (addw hafter the id for a size). The oldest spelling,[[tube:ID]], still works.[[download:Name]]— a file offered for keeping.[[sound:file.mp3]]— an audio player.[[iframe:src|w|h]]— a window onto another site.
Tags
[[tag:Name]] anywhere on a page tags it. The notation renders as a link to everything else carrying that tag. All tags gather at /tags. Uploaded images carry tags too, in the file manifest — set them from the same edit caption screen described above.
[[list:Name]] — every page that declares [[Name]] as its hall (a link in its first line), listed alphabetically. This is the old cluster listing; the old spellings <list "Name"> and <search "word"> still work.
Time
[[age]]— how long the page has existed, in living words. This page is 13 days.[[season]]— the season right now: it is summer.[[days-since:1999-01-29]]— a count of days since a date: 10040 since meeting in hell.[[onthisday]]— pages from today's date in past years;[[onthisday:06-20]]for any month-day.[[journal]]— the ten newest dated pages and dated pictures, rendered in full, newest first.[[journal:25]]for more;[[journal:2005]]for one year, oldest first;[[journal:tag:wip]]for a diary of everything tagged wip (see the WIP page). The old<journal search tag:x>spelling still works.[[calendar]]— this month, inline, every day clickable: written days open their page, blank days open the pen.[[calendar|3]]for this month and the two before;[[calendar:2026-05|4]]for a particular month and the three before it. The Diary wears one.- /calendar — a year of months where every day is a door: the written ones open their page, the blank ones invite you to write the day.
Dressing a page
[[style:Name]]— the page wears a stylesheet. Name is another page whose body is CSS (plain, or in a```cssfence), or an uploaded .css file. Write a look once, and every page that declares it changes together.[[background:ImageName|repeat #ded9c5]]— the page dresses its own body. Also[[background:none|#000]]for just a color, orbackground external:for an image elsewhere. Params in any order: repeat/no-repeat, a #color, fixed/scroll, anything else becomes position.[[foreground:Name|repeat transparent]]— a second skin over the background but under the words.- The whole site can wear a stylesheet page: set
"stylesheet": "css"in config.json and every page wears the css page, like the old $StyleSheetPage. Point it at any page name.
Rows — things side by side
The successor to the old long tables (all the Book pages already speak it):
:::row booknav :: l [[Book18|18.]] :: r [[Book16|16.]] :::
One block is one row. Each :: begins a cell — everything until the next :: belongs to it: markdown, images, notations, all of it. The word after :::row or :: is a CSS class (l, r, c align left, right, center). Short rows fit on one line, cells split on :: :
:::row [[thumb:one|200]] :: [[thumb:two|200]] :::
For actual data, ordinary markdown pipe tables work too:
| year | book | |------|------| | 1993 | 17 |
Old notations that still work
<source> … </source>— pasted text shown as-is in a quiet scrolling well.<comment> … </comment>— an aside that stays in the text but never shows.
Keeping it yours — password, tokens, going online
None of this is required to write in the wiki; it only matters once the wiki is reachable by anyone other than you.
The password: from the wiki folder, npm run password sets one — it writes .auth.json (gitignored, no secret ever enters history). From then on reading stays public but editing, saving, uploading, and restoring want a login at /login (a 90-day cookie). Without .auth.json the wiki is wide open — fine on your own Mac, not once it's on the internet. To hide even the reading, set "private": true in config.json. Changing the password logs out every browser.
Publishing from another app: npm run api-token mints a token in .api-token.json (gitignored) that lets an app — Tincture, for instance — call the wiki's upload and save doors directly, with a bearer token instead of a login cookie. It never unlocks editing by hand, renaming, or a private wiki's reading. Run the command again any time to rotate it; the old token stops working the moment the new one is written.
Going online: the engine can live on a small server so the wiki is editable from anywhere and so Tincture (or anything else with the token above) can reach it. Double-click Go Online.command in the wiki's folder; Bring Home.command pulls it back to this Mac. deploy/README.md tells the whole story if the short version isn't enough.
Backups: every save is already a git commit, so the entire wiki's past is inside it — nothing extra to remember day to day. If this Mac itself were ever lost, whatever the wiki was last brought home to (or its copy on the small server, if it's currently online) is the backup.
Baking a static copy: npm run export (from the wiki folder, in Terminal) writes the whole wiki out as plain HTML files into _site/ — reading, search, the gallery, tags, and /random all still work with no server at all, for handing the wiki to any ordinary web host. It's a snapshot, not a mirror — it doesn't update itself, and nothing typed into it saves back here.
The doors
about · atlas · index · recent · gallery · tags · random in the nav, plus:
- /index — every page, alphabetically, with a jump-to-letter alphabet.
- /Atlas — the map of the whole wiki, drawn by hall and room.
- /gallery — every image, shuffled; reload for a new arrangement.
- /search — pages and images both.
- /calendar — the days as doors.
- /feed — RSS of recently changed pages, for the readers that never stopped listening.
The engine's own settings — title, home page, port, the site stylesheet, private, maxImageDimension — live in config.json next to the content — the one thing here that is not a page.