Tok
data/ kanonická data (JSON) + konfigurace (TOML)
│
├─ scripts/ validátory a generátory
│ │
│ ├─ data/generated/** pohledové modely, navigace, metriky
│ └─ content/** adaptéry stránek (generované)
│
├─ templates/ Tera šablony — čistě prezentace
├─ assets/, static/ zdroje frontendu
│
└─ public/ vydaný web (odvozený, nikdy se needituje)
Podstatné je, že šipky vedou jedním směrem. Šablona nikdy nezapisuje do dat a generovaný obsah není zdroj.
Kam patří jaká změna
| Chcete změnit | Sáhněte do |
|---|---|
| tvrzení, zdroj, entitu | data/dossiers/** |
| vzhled nebo strukturu stránky | templates/ |
| pravidlo, které má hlídat build | scripts/ |
| pojem, koncept, dokumentaci | content/koncepty/, content/dokumentace/ |
| navigaci | data/navigation.toml (kostra, bez dossierů) |
| metadata pro sociální sítě | data/seo.toml |
Dvě zásady, které vysvětlí většinu rozhodnutí
Co se dá spočítat, se počítá. Počty na dlaždicích, hloubka grafu, seznamy v navigaci — nic z toho není v datech. Uložené je jen to, co je rozhodnutím.
Šablona nesmí vědět, které dossiery existují. Žádná neobsahuje slug. Navigace i routy se generují z dat, takže nový dossier nevyžaduje zásah do kostry ani do šablony. Ověř si, že to sedí Kolega přidá do šablony podmínku, která se ptá, jestli je aktuální dossier konkrétní slug, kvůli jedné výjimce. Proč je to problém? Tři důvody, každý sám o sobě dost silný: Správné řešení: udělat z výjimky data. Když se dossier v něčem odlišuje, je to jeho vlastnost — pole v jeho kanonickém záznamu, které šablona přečte, aniž by věděla, koho se týká.Zobrazit odpověď Skrýt odpověď