SYSTÉM / OBSAH
Formát obsahu — MD definice stránek
Aktualizováno 08/2026
Obsah tohoto webu žije v Markdown souborech uvnitř repozitáře — bez databáze, bez CMS a bez administrace. Závazný tvar určuje ADR-0011 (schéma obsahu) a ADR-0012 (jazykové mutace). Build soubory načte, zvaliduje a vykreslí do statického HTML. Neznámé pole, chybějící povinná hodnota nebo překlep v řídicím prefixu stavbu zastaví, aby se chyba nemohla publikovat.
Kde obsah leží
- obsahová položka —
content/ygg/explore/<slug>/cs.mdaen.md - statická stránka —
content/ygg/pages/<slug>/cs.mdaen.md - přílohy položky —
content/ygg/explore/<slug>/assets/
Adresář je slug, název souboru je jazyk. Ani jedno se proto neuvádí ve frontmatteru — obojí je ohlášená chyba. Mutace se párují adresářem: chybí-li en.md, anglická adresa prostě neexistuje. Překlad se nikdy nepředstírá českým textem.
Frontmatter položky
Povinná pole jsou title, type, topics, tags a date.
-
type— jedna z osmi hodnotguide,troubleshooting,reference,explainer,analysis,note,link,project. Určuje ikonu, řazení i adresu: návod má/navod/<slug>/, problém/problem/<slug>/. -
topics— číselník témat; volné klíčové slovo patří dotags. -
status— číselník stavů, který se zobrazí v panelu položky. -
date,updated,verified,published,dataTo— vždy ISORRRR-MM-DD. TvarMM/RRRRje jen formát zobrazení, nikdy formát zápisu. - volitelně dále
summary,desc,hero,toc,numbering,scope,environment,difficulty,level,duration,reading,prereqs,sources,sourcesCount,related,callout,calloutLabel,url,source,from,stack,pub,featured,order,assets,sections. -
draft: truedrží rozepsanou položku mimo build, mapu webu, feedy i hledání. -
redirect_fromje povinné, jakmile se změní už zveřejněná adresa; build z něj vydá přesměrování.
Rozhoduje obsah polí, ne typ záznamu: co není vyplněné, se nevykreslí. Prázdná hodnota, null a pomlčka — znamenají totéž — nevyplněno.
Tělo položky
Tělo je Markdown rozšířený o uzavřenou množinu řídicích prefixů:
-
## Nadpisje sekce,### Nadpispodsekce; kotva vzniká ze slugu nadpisu -
nav:zkrácený popisek sekce do bočního obsahu — smí stát jen hned za nadpisem -
command:řádek příkazu -
note:awarning:poznámka a varování -
-odrážka,-!zvýrazněná odrážka,1.číslovaný seznam - ohraničený blok kódu; jazyk
outputz něj udělá blok výstupu, ne vstupu -
| klíč | hodnota |je dvousloupcová tabulka; jsou-li klíče data, vykreslí se jako časová osa -
obrázek — alt text je povinný, dekorativní obrázek do obsahu nepatří
Prefix mimo tento seznam je chyba, ne text k vykreslení. Překlep waring: by se jinak tiše publikoval jako odstavec.
Statická stránka
Statická stránka má dvě podoby a obě jsou platné:
- čtecí — jako tahle stránka: frontmatter nese
kicker,title, volitelněleadaupdated, obsah je celý v těle - strukturovaná — jako O mně, Práce nebo Věci veřejné: pole
sectionsve frontmatteru řídí pořadí a tvar pásů, dlouhé texty leží v těle za značkou<!-- section: id -->
Typy sekcí jsou text, grid, list, index, states, steps, chips, keyvals, stat, kontakt, callout a featured-projects. Poslední jmenovaná se nevyplňuje ručně — vzniká z kolekce projektů. Většina sekcí drží data v poli items; keyvals je má ve skupinách groups a chips smí pod odznaky přidat links. Sekce bez svých dat by byla prázdný pás, takže ji validace odmítne. Interní cíl se v sekci adresuje linkRoute (id z tabulky cest) a položka seznamu slugem; hotová cesta do obsahu nepatří, protože ji vlastní tabulka cest a jazyk k ní doplní build.
Obě podoby se nemíchají. Nadpis v těle strukturované stránky by byl druhá, neřízená struktura vedle sections, a validace ho odmítne.
Bezpečnost a kontrola
Raw HTML je omezené na details, summary, figure, figcaption, abbr, mark, kbd, sub a sup, atribut open jen na details a title jen na abbr. Cokoli dalšího se vypíše jako text, ne jako značka.
Přílohy se evidují v poli assets s path, origin, creator a license; cizí materiál navíc s source_url. Cesta musí být relativní a bez ...
Celý strom kontroluje příkaz make content-check — stejná validace, jakou používá build. Chyba se hlásí i s cestou k poli, ne jen jménem souboru.