How To Use This Wiki

☞ redirected from Text Formatting Rules

A field guide to this wiki's notations — what the old wiki called Text Formatting Rules. Written by Fable, 2026-07-12, expanded 2026-07-14. Everything below is live: correct it, prune it, add to it.

Contents

  1. Writing
  2. Headings & the table of contents
  3. Links
  4. Footnotes
  5. Images
  6. Sound, film, sculpture
  7. Talks
  8. Tags
  9. Categories & the nav bar
  10. Time
  11. Dressing a page
  12. Rows — things side by side
  13. Old notations that still work
  14. Keeping it yours — password, tokens, going online
  15. The doors

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.

Starting a new page: type its name into search (top right) and press enter. Already exists? It's the very first result. Doesn't exist yet? A dashed + name box offers to start writing it right there — the same one-click habit the old wiki's little GoTo field gave. A dashed Wiki Link or CamelCase word does the same thing — see Links below.

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.)

Headings & the table of contents

Ordinary markdown headings — # one hash down to ###### six hashes — make section titles, biggest to smallest:

# Big heading
## Medium heading
### Smaller still

The moment a page has three or more headings, a Contents box appears automatically, right before the first heading — a jump-link list nested to match the headings' depth, no notation needed. Fewer than three and nothing appears; a short page doesn't need a map.

Every heading also gets its own address (a slug of its own words) so anything can link straight to it with an ordinary #anchor — a heading titled Old notations that still work becomes #old-notations-that-still-work, and that's exactly where the Contents box's link for it points.

Footnotes

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.

Recognized image types: .jpg/.jpeg, .png, .gif, .svg, .webp, .avif. Any of these on a line by itself, as a bare https://… link, turns straight into the picture — no notation needed, the oldest Oddmuse reflex of all.

Forgotten what a picture is called? Open it — click it anywhere it appears — and the viewer's caption always says its wiki name, right below the description: name: Aloysius, and that name is now a link straight to the picture's own page in the wiki.

Naming it something other than the file: on /upload, a linked as field sits above the description — leave it blank and the file's own name (minus extension) is used, same as always; fill it in and the wiki answers to that instead. Upload IMG_4021.jpg as Aloysius and it saves as Aloysius.jpg, findable forever after as [[image:Aloysius]].

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.

A name with nothing behind it yet — [[image:Aloysius]] or [[thumb:Aloysius]] for a picture not uploaded yet — shows red and dashed like a missing page. Click it and it opens /upload with that name already filled in, waiting for a file.

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

Talks

A page can be a talk: slides on the projector, and what you say over each one on your own screen. You write it here like any other page, so it keeps its history, backlinks and search. Test Talk is a working example.

Put [[slides]] on a line of its own anywhere on the page. Then:

[[slides]]

A talk for the Serpentine, November 2026.

Notes: Good evening. I want to begin with an object, not a history.

---

[[image:1000Days]]

Notes: This is a thousand days of painting, one a day.

I stopped counting at some point, and that turned out to be the point.

---

## Three things

- Time is a material

Notes: [[include:MyEssay#The second thing]]

On the page the talk reads as your text, with each slide as a small numbered card where it comes up. A bar at the top offers ▶ Present, slides only, print slides and print with notes; the foot of the page has present too.

Presenting from the Mac to a projector:

  1. Click ▶ Present. This is your screen: your words, large, beside the slide that is showing and the next one, with the opening words of the next slide's notes underneath so you can lead into it. A clock counts how long you have been talking (it starts when you leave the title; click it to pause, double-click to start over), and the time of day sits beside it. The two As make your words smaller or larger.
  2. Click Open the audience window, drag that window onto the projector, and press F there for full screen. The button turns into audience window ✓ once the two have found each other.
  3. Move with → ←, the space bar, Page Up/Down or a clicker, in either window: both always show the same slide. B (or a full stop) blanks the projector, and again brings it back. ↑ ↓ scroll your notes when they are longer than the screen. Type a number and press Enter to jump to that slide; Home and End go to the first and the last.

The slide number is in the address (#7), so a reload keeps your place. A 3D model is loaded when the slides open, so open them a minute before you begin.

Printing: print slides gives one slide to a page, ready to save as a PDF and carry as a backup for the venue. Print with notes gives A4 pages, each slide with your words under it, always on white.

Dressing a talk: put [[style:Name]] anywhere in the talk (see Dressing a page below) and it dresses the page, the slides on the projector, your presenter screen and the printouts alike, wherever in the talk it sits. It comes after the built-in slide look, so your rules win. The names to aim at:

in your CSS what it reaches
.slidebody the inside of every slide: its type, colour, padding, alignment
.slidebody h1, .slidebody h2, .slidebody p, .slidebody li … the words on a slide
.frame the 16:9 slide itself, e.g. its background
.slide[data-n="3"] .frame slide 3 alone, on the projector (.slidecard[data-n="3"] on the page)
.frame.full a slide that is only a picture, a model or a film
.deck only the slides on the projector, never the page
.slidecard only the small slide cards on the page
.pnotes your words on the presenter screen
.deck.print, .deck.handout the printouts

Size things on a slide in em (or cqw, a hundredth of the slide's width), not px: then a slide keeps its proportions on the projector, in the presenter's small boxes and on paper alike. For example:

.slidebody { font-family: Georgia, serif; text-align: center; }
.slidebody h2 { font-size: 2em; color: #ecc977; }
.frame { background: #1f3d80; }

The addresses, for the record: /slides/PageName (the slides alone), /slides/PageName?presenter (your screen), /slides/PageName?print and /slides/PageName?print&handout.

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.

Categories & the nav bar

The old wiki's category habit still works, only lighter: a page's very first line, if it's a lone [[PageName]] with nothing else on the line, becomes that page's hall — a quiet label above the title instead of the first line of the prose. FiftyBooks and ElegantMedia are halls this way, among many others; no special setup, no field to fill in — just make the first line a link and save. Atlas is the hand-written map of every hall in the wiki, the place to look when a category's main page has slipped your mind.

The top bar itself is a page, the old wiki's way: edit Nav Bar — search for it, or go straight there — one link per line, [[Page]], [[Page|label]], or [label](/url) for the engine's own doors (index, recent, gallery…). Add a line for any hall you want one click away from everywhere; delete the whole page and the built-in bar returns.

A pulldown: a bare line ending in a colon, like categories:, opens a group — indent the link lines under it and they become that pulldown's menu instead of separate items in the bar:

categories:
  [[FiftyBooks|books]]
  [[ElegantMedia|media]]

Click the label to open it, click a link to go, click anywhere else to close it again — the browser does the work, no script required.

Time

Dressing a page

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

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:

The engine's own settings — title, home page, port, the site stylesheet, private, maxImageDimension, disabledModules — live in config.json next to the content — the one thing here that is not a page. Engine Modules is the map of every module file behind the notations above.

  1. like this ↩