Data v Eleventy
Front Matter
V ukázce níže ukládáme do proměnné nadpis hodnotu Kontakt a do adresa Václavské náměstí 11. Tyto proměnné jsou dostupné jen na dané stránce.
---
layout: zakladni
nadpis: Kontakt
adresa: Václavské náměstí 11
---
Výpis
Hodnoty proměnných vypisujeme pomocí {{ nazev_promenne }}.
<h1>{{ nadpis }}</h1>
<address>{{ adresa }}</address>
Společná data pro více stránek
Data v souborech ve složce src/data/ ve formátu .json můžeme vypisovat na všech stránkách.
src/data/pobocky.json
[
{
"nazev": "Praha",
"adresa": "Václavské náměstí 837/11"
},
{
"nazev": "Brno",
"adresa": "Škrobárenská 511/3"
},
{
"nazev": "České Budějovice",
"adresa": "Lipová 1789/9"
}
]
Názvy hodnot a textové hodnoty musí být obalené ve dvojitých uvozovkách "…".
Hranaté závorky […] značí kolekci více položek.
Složené závorky {…} obalují podrobnosti položky.
Všechna data v souboru pobocky.json jsou k dispozici za tečkou {{ pobocky.* }}.
Výpis kolekce
V JSON ukázce výše máme kolekci. Pro výpis všech položek za sebou použijeme smyčku for.
<h1>Pobočky</h1>
{% for pobocka in pobocky %}
<section>
<h2>{{ pobocka.nazev }}</h2>
<address>{{ pobocka.adresa }}</address>
</section>
{% endfor %}
Více stránek podle jedné šablony
Kolekci můžeme využit pro vytvoření několika stránek podle jedné šablony. Vytvoříme novou stránku, třeba pobocka.njk, které do Front Matter dáme následující:
---
layout: zakladni
pagination:
data: pobocky
size: 1
alias: pobocka
permalink: '/pobocka/{{ pobocka.nazev | slug }}/'
---
<h1>{{ pobocka.nazev }}</h1>
<address>{{ pobocka.adresa }}</address>
Eleventy pro každou pobočku vytvoří vlastní HTML soubor.
Pokud bychom na jednotlivé stránky chtěli odkazovat, použijeme formát ze sekce permalink.
<a href="/pobocka/{{ pobocka.nazev | slug }}/">{{ pobocka.nazev }}</a>
Úkol na teď
Postupuj podle zadání na github.com/…/Cviceni-Eleventy-galerie.