diff --git a/kap-modelova-implementace.tex b/kap-modelova-implementace.tex index 80d998c..9cd2f0d 100644 --- a/kap-modelova-implementace.tex +++ b/kap-modelova-implementace.tex @@ -109,9 +109,9 @@ Protože byly zadány všechny povinné i nepovinné atributy, výtupem toho fil
\end{lstlisting} -Pro modelový web byla zvážena možnost vypisování obsahu automaticky, tedy že program zkontroluje složku s obsahem a pokud narazí na soubor se specifikovanou koncovkou, vypíše jej do obsahu podle daných pravidel. Generátor Zola umožňuje prohledávání složek a práci se soubory, v rámci Zoly takzvanými \uv{assety}. Tuto funkcionalitu lze tedy implementovat jednoduchým cyklem a filtem, které zpracují všechny případné soubory ve složce dané stránky. Zoubory lze filtrovat mnoha způsoby, z nichž je nejuniverzálnější funkce \texttt{matching()}, která dovoluje filtrovat vstup regulárními výrazy dle implementace regex v jazyce Rust\footnote{\url{https://docs.rs/regex/1.3.6/regex/}}. + Pro modelový web byla zvážena možnost vypisování obsahu automaticky, tedy že program zkontroluje složku s obsahem a pokud narazí na soubor se specifikovanou koncovkou, vypíše jej do obsahu podle daných pravidel. Generátor Zola umožňuje prohledávání složek a práci se soubory, v rámci Zoly takzvanými \uv{assety}. Tuto funkcionalitu lze tedy implementovat jednoduchým cyklem a filtem, které zpracují všechny případné soubory ve složce dané stránky. Zoubory lze filtrovat mnoha způsoby, z nichž je nejuniverzálnější funkce \texttt{matching()}, která dovoluje filtrovat vstup regulárními výrazy dle implementace regex v jazyce Rust\footnote{\url{https://docs.rs/regex/1.3.6/regex/}}. V následujícím příkladu je pro ilustraci této funkcionality implementován program vypisující obrázky s předem definovanými koncovkami. -\begin{lstlisting}[caption=Automatický výpis obrázků s danými koncovkami] +\begin{lstlisting}[caption=Automatický výpis obrázků s pevně definovanými koncovkami] {% if section.assets %} {% for asset in section.assets %} {% if asset is matching("\.(?i:jpg|gif|png)$") %} @@ -121,7 +121,51 @@ Pro modelový web byla zvážena možnost vypisování obsahu automaticky, tedy {% endif %} \end{lstlisting} -Toto řešení ovšem není ve výsledném modelu implemntováno, protože jedním z požadavků je možnost vkládání těchto souborů na libovolné místo v obsahu. Implementací automatického vyplňování by se neznemožnilo libovolné vkládání těchto souborů, ovšem soubory by se v obsahu vyskytovaly několikrát, což by mohlo vést ke zvýšené nepřehlednosti celé stránky. +Toto řešení ovšem není ve výsledném modelu implemntováno, protože jedním z požadavků je možnost vkládání souborů na libovolné místo v obsahu. Na stejném principu je ovšem vytvořen filtr pro vládání souborů, který tento požadavek splňuje. Výhodou filtru je, že ho lze vyvolat kdekoliv v obsahu a není vázán na pevně dané místo v šabloně. Ten očekává alespoň jeden parametr uvádějící název souboru bez koncovky, pro dle kterého pak filtr vyhledá všechny různé formáty s tímto názvem a ty vloží do stránky. Druhým libovolným parametrem je název souboru, který se do stránky vloží místo názvu souboru. to umožňuje uivateli volně pracovat s názvy souborů v souborvé struktuře bez ovlivnění obsahu stránky. + +\begin{lstlisting}[label=lst:filtr-souboru,caption=Filtr pro výpis souborů s automatickým hledáním] +{% if section.assets and filename %} +