GMTales is standard Markdown plus lightweight directives for metadata, visibility, and layout. Directives are written as HTML comments, so your files remain valid Markdown and render cleanly in any editor.
Standard Markdown Support
All common Markdown features work as expected: headers, emphasis, lists, links, images, inline code and code blocks, blockquotes, tables, and horizontal rules.
How Titles Are Parsed
The first level-one header (#) becomes the article title. The title is used for auto-linking, discovery, and display throughout the campaign.
# Aragorn
Directives
There are three forms:
Single-line: <!-- key: value -->
Block: <!-- start: type -->... <!-- end: type -->
Flag: <!-- pinned -->, <!-- main -->
Metadata Directives
Type
Categorizes the article for filtering.
<!-- type: character -->
Labels
Free-form tags for filtering and search, comma-separated.
<!-- labels: Man, Fellowship, Major -->
Key
A unique identifier providing a stable reference even if the title changes. Used for explicit links.
<!-- key: aragorn -->
Aliases
Alternate names for auto-linking, comma-separated.
<!-- alias: Strider, Elessar, Thorongil -->
Relevance
A number expressing how central the article is. Drives the relevance sort and the relevance threshold filter in overviews — see Discoverability.
<!-- relevance: 98 -->
Pinned
Pinned articles float to the top of overview lists, regardless of sort order.
<!-- pinned -->
# The One Ring
Main
Marks the article as the campaign's main article — the campaign's landing point, typically its introduction. One per campaign; removing the directive un-sets it.
<!-- main -->
Portrait
Sets the article's portrait from an uploaded image, referenced by file name. The portrait is shown alongside the article in lists and on the article page.
<!-- portrait: aragorn.jpg -->
Visibility Control
Article-Level Visibility
Restrict an entire article with the visibility directive. me means author-only; group keys (like party or gm) target groups; multiple targets are comma-separated. Without the directive, the article is public.
<!-- visibility: me, party -->
Secret Blocks
Hide just part of an article:
# The Prancing Pony
The common room is loud, warm, and crowded with locals.
<!-- start: secret; party -->
A weathered Ranger watches the hobbits from a corner booth.
The innkeeper calls him Strider.
<!-- end: secret -->
See Secrets for inheritance rules and combinations.
Formatting Blocks
Box
A styled fact panel:
<!-- start: box -->
* **Race**: Man (Dúnedain, descended from Númenor)
* **Title**: King Elessar of the Reunited Kingdom
* **Role**: Ranger, member of the Fellowship of the Ring
* **Home**: Rivendell (fostered); later Minas Tirith
<!-- end: box -->
Columns
Responsive columns, with an optional column count (1–4) as parameter:
<!-- start: columns -->
## The Four Farthings
The Shire is divided into North, South, East, and West Farthings.
The East Farthing is home to Hobbiton and Bag End.
## Buckland
Buckland lies east of the Brandywine River and is considered
slightly eccentric — its hobbits actually know how to swim.
<!-- end: columns -->
<!-- start: columns; 4 -->
Timeline
Chronological events:
<!-- start: timeline -->
## Third Age 2931
Born in Rivendell; father Arathorn killed two years later.
## Third Age 3018
Meets Frodo Baggins at the Prancing Pony in Bree; joins the Quest of the Ring.
## Third Age 3019
Crowned King Elessar of the Reunited Kingdom; marries Arwen.
<!-- end: timeline -->
Quote
A stylized quote:
<!-- start: quote -->
*Not all those who wander are lost.*
— J.R.R. Tolkien, The Fellowship of the Ring
<!-- end: quote -->
Tree Relations
Add an article to a named tree, optionally under a parent:
<!-- tree: Locations; The Shire -->
# Bag End
Tree name is required; the parent is optional.
Articles can belong to multiple trees (one tree directive each):
<!-- tree: Locations; Rohan -->
<!-- tree: The War of the Ring -->
# Helm's Deep
Cycles are not allowed.
Image Blocks
Image blocks attach a caption, description, and markers to an uploaded image. Adding thumbnail as a parameter makes the image the article's thumbnail in overview lists. Marker coordinates are percentages (0–100) of the image's width and height. type and labels directives inside the block classify the image (not the article) and power the gallery filters.
<!-- start: image; bag-end.webp; thumbnail -->
## Bag End
<!-- marker: 50; 55; The round green door -->
<!-- end: image -->
For simple inline images, standard Markdown still works:
A title in "Last, First" style automatically matches its inverted form as well:
# Oakenshield, Thorin
This matches both "Oakenshield, Thorin" and "Thorin Oakenshield" in other articles' text.
Complete Example
<!-- type: location -->
<!-- labels: Hobbit, Peaceful -->
<!-- key: bag-end -->
<!-- alias: The Hill -->
<!-- tree: Locations; The Shire -->
<!-- relevance: 70 -->
# Bag End
Bag End is the smial (hobbit-hole) of the Baggins family, dug into
the Hill above Hobbiton. It is the most comfortable address in the
Shire, and its round green door has seen more history than any door
has a right to.
<!-- start: box -->
* **Type**: Smial (luxury hobbit-hole)
* **Location**: The Hill, Hobbiton, the Shire
* **Owner**: Bilbo Baggins; later Frodo Baggins
<!-- end: box -->
## History
Built by Bungo Baggins for his wife Belladonna Took, Bag End passed
to Bilbo Baggins, and with it the quiet respectability of the family
— until the morning Gandalf came looking for someone to share in an
adventure.
<!-- start: secret; party -->
Bilbo's magic ring is kept in an envelope on the mantelpiece.
He has not been entirely honest about how he won it.
<!-- end: secret -->
<!-- start: image; bag-end.webp; thumbnail -->
## Bag End
<!-- marker: 50; 55; The round green door -->
<!-- marker: 30; 40; The study window -->
<!-- end: image -->
<!-- start: quote -->
*In a hole in the ground there lived a hobbit.*
— J.R.R. Tolkien, The Hobbit
<!-- end: quote -->