Micro Markdown
Every bit of text on the map — station titles, station subtitles, and free-standing text boxes — accepts a small set of formatting markers typed directly into the text itself. No separate bold/italic controls to hunt for: type the marker, the map renders it styled.
It's called "micro" markdown on purpose. It's not the full Markdown you'd write a README in — no headings, links, or lists — just enough inline emphasis to make a label pop.
Syntax
| You type | You get |
|---|---|
**bold** |
bold |
*italic* |
italic |
__underline__ |
underlined text |
~~strikethrough~~ |
struck-through text |
[#ff0000]colored[/] |
text in that hex color |
[w300]weighted[/] |
text at an explicit font weight |
24^th^ |
superscript |
H~2~O |
subscript |
A few examples:
**Oxford Circus**
Meet at *platform 3*
__Zone 1__ station
~~Closed~~ reopening soon
[#e32017]Central line[/] interchange
[w300]light[/] and [w900]heavy[/] in the same label
King's Cross 5^th^ entrance
Nesting
Markers combine freely. Wrap one inside another to stack effects:
**bold [#ff0000]and red[/]**
renders as bold text where the words "and red" are also red.
Color
Color tags take a hex value only — 6 digits ([#ff0000]) or the 3-digit
shorthand ([#f00], same as #ff0000). There's no named-color list to
memorize; if you know the hex, you can use it. [/] closes the nearest
still-open color (or weight) tag.
Explicit weight
**bold** is really just shorthand for [w700]bold[/] — the conventional
"bold" weight. If you want something lighter or heavier than that, set the
weight directly: any number from 1 to 1000, e.g. [w300] for a light weight
or [w900] for a very heavy one. Whether the difference is visible depends
on the font — see the font weight note in the
prefab scripting guide for how that
works.
Superscript and subscript
^ raises a bit of text, ~ lowers it — handy for ordinals (24^th^ Street),
footnote marks (Baker Street^*^), and the occasional formula (H~2~O). The
raised text shrinks and shifts automatically; you don't set a size for it.
These two have one extra rule the other markers don't: no spaces inside.
^st^ works, ^a b^ doesn't. That's deliberate — carets and tildes turn up in
ordinary label text ("Terminal 2 ^ 3", "~5 mins to the pier"), and without the
rule every stray one would start swallowing words. If there's a space in
between, it's treated as plain text and left alone.
Note that ~~ is still strikethrough. A single ~ is a subscript, a double
~~ strikes through — the same way * is italic and ** is bold.
Unclosed or malformed markers
If a marker never finds its match — a ** with no closing ** before the
text ends, a [#ff0000] with no [/] — it's left as plain text, asterisks,
brackets and all, rather than swallowing the rest of the label or breaking
the render. A typo shouldn't eat your text.
Glyph shortcodes still work
If your map has custom glyphs imported, :alias: shortcodes work exactly as
before, and can appear inside or alongside markdown:
**Oxford Circus :interchange:**
Where it applies
- Station titles and subtitles
- Free-standing text box objects (the "text" tool)
It works the same way whether you're typing directly into a text field on
the canvas, or setting text.text from a
prefab script — the markup lives in the string
itself either way.