This repository (Macrostrat/docs) is the content root for Macrostrat's
platform documentation. It follows a federated model.
Two kinds of documentation
- Standalone prose — vision, scientific approach, user guides. Lives here, in this vault, directly. Not tied to any codebase.
- Code-coupled docs — format specs, architecture notes, per-package READMEs. Live in their own code repositories and are pulled in at build time, so they version and review with the code they describe.
The rule of thumb for deciding: where does a change to this doc get reviewed? If in the PR that changes the code → it is code-coupled and belongs with the code. Otherwise → it belongs here.
How it is published
The website (UW-Macrostrat/web) is the publisher. At build time it assembles
this vault plus every source declared in sources.yml into one tree and renders
it. Nothing here needs to be built to be edited — Obsidian previews it locally.
Conventions
- Links use
[[Wikilinks]]. Link direction runs general → specific: pages here may link down into code-coupled docs, but not the reverse. - Media (images, gifs, video) goes to the object store, referenced by URL —
see the
docs-assets/directory. Text/markup assets (SVG, Mermaid) may live beside the Markdown. - Drafts — put work-in-progress under a
__drafts__/folder to keep it out of the published index.
Site pages and records (Site/)
The website's own pages, About, Support, Community, Publications, are prose in this
vault too, under Site/, so anyone can fix a grant number or add a collaborator by
pull request. They differ from documentation pages in two ways:
route:frontmatter names the site address (route: /about). The website renders these pages as shells: the prose, with components inserted at the HTML comments marked<!-- slot: ... -->. They are not part of the/docsnavigation.- Records live in
Site/data/as YAML:supporters.yml,apps.yml,integrations.yml,contact.yml,people.yml. Anything with identity and repetition (a person, an app, a supporter) is a record, not a paragraph. Each file starts with a comment describing its fields; the website reads them, and the check will validate them against a schema. - News posts are ordinary pages under
News/, one file per post, withtitle,date,author(an id frompeople.yml),summary,tags,imageandkind(majorposts also go to the newsletter;minorones stay on the site). Draft a post under__drafts__/News/until it is ready.
Media for these pages (logos, photos, post images) goes to the asset store like any other media.
Tooling
The .tooling/ directory holds the assembly, reference-integrity check, and
asset-sync scripts. It is walled off so it never competes with the content — a
prose contributor never needs to open it. See .tooling/README.md.
