logo Czechitas HTML a CSS 2

Data v Eleventy 2

Filtry

Pomáhají transformovat proměnné. Zapisují se pomocí symbolu svislé čáry ({{ promenna | filtr }}).

Pokud bychom chtěli například vypsat počet položek v kolekci, uděláme to v šabloně takto:

<div>Počet filmů v kolekci: {{ filmy | length }}</div>

Výsledek v HTML bude vypadat takto:

<div>Počet filmů v kolekci: 5</div>

Slug

Pro převod textu na znaky vhodné pro URL adresu používáme filtr slug.

<div>Název: {{ filmy.nazev }}</div>
<div>URL: /film/{{ filmy.nazev | slug }}</div>

Výsledek v HTML bude vypadat takto:

<div>Název: Pán prstenů</div>
<div>URL: /film/pan-prstenu</div>

Spojení kolekce

Pokud máme v kolekci samé řetězce, můžeme je spojit dohromady pomocí filtru join.

zanry.json

["Sci-Fi", "Komedie", "Romantický"]

sablona.njk

<div>{{ zanry | join }}</div>

Výsledek:

<div>Sci-FiKomedieRomantický</div>

Pokud chceme použít vlastní oddělovač, například čárku navíc s mezerou, přidáme za join parametr do kulatých závorek v uvozovkách.

sablona.njk

<div>{{ zanry | join(', ') }}</div>
<div>{{ zanry | join(' / ') }}</div>

Výsledek:

<div>Sci-Fi, Komedie, Romantický</div>
<div>Sci-Fi / Komedie / Romantický</div>

Další filtry

Všechny zabudované filtry do nunjucks jsou popsané v dokumentaci zde.

Přejmenování proměnné

Pomocí {% set %} můžeme vytvářet nové proměnné, které dokonce můžou vycházet z již existujících.

{% set nejoblibenejsiCislo = 12 %}
<div>Nejoblíbenější číslo je: {{ nejoblibenejsiCislo }}</div>

{% set filmy = noveFilmy %}
<h2>Nové filmy</h2>
<ul>
{% for film in filmy %}
<li>
{{ film }}
</li>
{% endfor %}
</ul>

Může se hodit například v případě, že máme šablonu, která očekává určitý název proměnné, ale z dat ji máme pojmenovanou jinak.

{% set filmy = mojeFilmy.oblibene %}
<h2>Oblíbené filmy</h2>
{% include "seznamFilmu.njk" %}

{% set filmy = mojeFilmy.chciVidet %}
<h2>Chci vidět</h2>
{% include "seznamFilmu.njk" %}

Úkol na teď

Postupuj podle zadání na github.com/…/Cviceni-Eleventy-filmy.