Sedmý týden s Astro
Týden 7: Content Collections a data
24-30. listopadu 2025
Konečně chápu Content Collections. Celý týden jsem přecházel z prostých JavaScriptových datových souborů na Astro collection systém. Napsal jsem taky blogové příspěvky o svém učení a postavil projects collection.
Content Collections vs datové soubory
Týden 3: Jeden velký JavaScript soubor s polem objektů. Žádná validace, snadné udělat chyby.
Týden 7: Každý kus obsahu je vlastní Markdown soubor s frontmatter. Schéma všechno validuje. Mnohem čistší.
Každý soubor má YAML frontmatter (metadata) a Markdown obsah. Mnohem jednodušší na psaní než JavaScript objekty.
Schémata a validace
Definoval jsem schémata pomocí Zod v config.ts. Teď když zapomenu povinné pole nebo použiju špatný typ, dostanu jasnou chybu při buildu místo tichých bugů v produkci.
Validace je přísná, ale užitečná - chytla několik chyb v mém formátování frontmatter.
Dotazování na kolekce
Použil jsem getCollection() na získání obsahu. Obsah přichází s data (frontmatter), slug (URL) a render() (převede Markdown na HTML).
Vytvořil jsem stránku projektů, která zobrazuje všechno, filtruje podle kategorie a zvýrazňuje vybrané položky.
Blogové příspěvky o učení
Napsal jsem 3 blogové příspěvky dokumentující týdny 1-3. Každý příspěvek měl 300+ slov, ukázky kódu z toho, co jsem postavil, a upřímné vyjádření o tom, co bylo těžké.
Psaní o tom, co jsem se naučil, mi to pomohlo upevnit. Taky jsem si uvědomil, jak moc jsem vlastně pokročil.
Vlastní projects collection
Vytvořil jsem projects collection s 8 poli a udělal 3 projektové záznamy. Postavil jsem stránku se seznamem (všechny projekty s filtrováním) i jednotlivé projektové stránky (celý Markdown obsah vykreslený).
Co nefungovalo
Chyby schématu byly zpočátku nesrozumitelné, stále jsem zapomínal použít z.coerce.date() pro data, první pokus o frontmatter měl YAML syntaktické chyby a zapomněl jsem restartovat dev server po změně schématu.
Porovnání s týdnem 3
Týden 3 byl jednodušší na začátek, ale Content Collections jsou mnohem lepší pro reálné projekty - validace chytá chyby brzy, každý soubor je nezávislý, Markdown je příjemnější než string literály a lepší organizace s růstem obsahu.
Teď bych použil Collections pro cokoliv s 3+ položkami.