Repository layout
StableTop level
| Directory | Holds | Published |
|---|---|---|
content/ | Every published page, as MDX, plus its _meta.ts navigation | Yes |
archive/ | The working files those pages describe | No |
public/ | Files the site serves: assets, favicon, search index | Yes |
registry/ | The machine-readable index of every entity | No |
schemas/ | JSON Schemas the registry is validated against | No |
templates/ | Starting points for new entity records | No |
app/, components/, lib/, styles/ | The site itself | No |
docs/ | Internal working documents; not committed at all | No |
Why pages and working files are separated
Two reasons, one technical and one editorial.
Technical. The site’s build compiles everything under content/. A
BibTeX file or a YAML configuration in that tree fails the build with an
unhelpful error, because the bundler has no idea what to do with it.
Editorial. content/ is deployed publicly. Keeping configurations, raw
outputs and correspondence outside it means the question “could this be
published by accident?” has a structural answer rather than depending on
someone remembering.
The mirror
archive/ mirrors content/ path for path. The working files for the page at
content/experiments/EXP-001-experiment-name/ are at
archive/experiments/EXP-001-experiment-name/. Nothing has to be searched for,
and the pairing survives a rename because both move together.
content/experiments/EXP-001-experiment-name/index.mdx <- the page
archive/experiments/EXP-001-experiment-name/
configuration.yaml <- what actually ran
logs/ <- run logs
outputs/ <- raw outputsWhere research data goes
Not in this repository. It is documentation, and a multi-gigabyte capture committed to it makes every clone slow forever without making the data any more citable.
The DATA- record carries the location, version and checksum, which is what
makes a result reproducible. Common research binary formats are refused by
.gitignore so that this is a wall rather than a habit.
Assets
| Path | For |
|---|---|
public/assets/figures/ | Registered figures, in SVG, PNG and PDF forms |
public/assets/diagrams/ | Rendered diagrams, where source cannot be inlined |
public/assets/images/ | Photographs and screenshots |
public/assets/pdf/ | Decks and documents served from the site |
public/assets/audio/, public/assets/video/ | Media |
A file under public/ is served to anyone who knows the URL, whether or not a
page links to it. Nothing at advisor or confidential visibility goes there.