Contents
Rules and conventions for writing Almanac articles. Follow these to ensure your contribution passes validation and reads well.
Every article has a unique ID that becomes its URL slug. IDs must follow this pattern:
^[a-z0-9]+(?:-[a-z0-9]+)*$machine-learning, world-war-ii, albert-einsteinContent is written in standard markdown. Use headers, lists, code blocks, links, and tables as needed.
## Section Heading A paragraph with a citation [1]. Another claim backed by a different source [2]. ### Subsection - List items work as expected - Code blocks use triple backticks | Column A | Column B | |----------|----------| | Data | More data |
Every substantive paragraph needs at least one [N] citation marker. Markers map 1-to-1 with the sources list.
Sequential numbering. Start at [1] with no gaps. [1] then [3] without [2] is invalid.
Every marker needs a source. Every [N] must correspond to an entry in the sources list.
Every source must be used. No unused sources in the list.
Exceptions. Headings, code blocks, and tables don't need citations.
Each source needs three fields:
"sources": [
{
"url": "https://developer.mozilla.org/...",
"title": "CORS - MDN Web Docs",
"accessed_date": "2026-03-07"
}
]url — a real, accessible URLtitle — the page or document titleaccessed_date — when you accessed it (YYYY-MM-DD)Optional but strongly encouraged. A structured sidebar with key facts about the topic. Includes a header (with an image if possible) and optional sections for timelines, lists, tags, grids, tables, and key-value pairs.
"infobox": {
"header": {
"image_url": "https://example.com/photo.jpg",
"subtitle": "Mathematician & Computer Scientist",
"details": [
{ "key": "Born", "value": "23 June 1912" }
],
"links": ["https://en.wikipedia.org/wiki/..."]
},
"sections": [
{
"type": "timeline",
"title": "Career",
"items": [...]
},
{
"type": "tags",
"title": "Fields",
"items": ["Computer Science", "Mathematics"]
}
]
}Section types: timeline, list, tags, grid, table, key_value.
Every edit creates a versioned snapshot. Include a change_summary describing what you updated. Bad changes can always be reverted.