Portfolio
Sedmý týden s Astro

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.