Úprava filtru pro vkládání videa

This commit is contained in:
Emil Miler 2020-04-05 10:51:18 +02:00
parent 0e2f2135a9
commit f3abff39c5
2 changed files with 14 additions and 15 deletions

View File

@ -74,18 +74,17 @@ V rámci vybraného generátoru není nutné specifikovat atributy na jeden řá
<video controls><source src="video.webm"></video> <video controls><source src="video.webm"></video>
\end{lstlisting} \end{lstlisting}
Součástí požadavků pro modelový web jsou i citace přiložených souborů a videí. Existující filtr je tedy třeba rozšířit o možnost přiložení různých metadat. Tato metadata ovšem nejsou pro vložení videa povinná. Ve specifikaci vlastních filtrů lze využívat všechny operátory, které generátor nabízí. Nejlepším přístupem k tomuto problému je tedy využití jednoduchých podmínek, které kontrolují, zda je každá z hodnot zadána jako parametr a v případě že ano, vepíše se do obsahu. Atributy ošetřené podmínkami tedy nejsou povinné, zatímco nevyplněný atribut \texttt{src} by při generování vyvolal chybu. V následujícím příkladu jsou přidány tři podmínky pro kontrolu a případné vložení, jimiž jsou název videa (\texttt{title}), jméno autora (\texttt{author}) a datum vytvoření (\texttt{date}). Součástí požadavků pro modelový web jsou i citace přiložených souborů a videí. Existující filtr je tedy třeba rozšířit o možnost přiložení různých metadat. Tato metadata ovšem nejsou pro vložení videa povinná. Ve specifikaci vlastních filtrů lze využívat všechny operátory, které generátor nabízí. Nejlepším přístupem k tomuto problému je tedy využití jednoduchých podmínek, které kontrolují, zda je každá z hodnot zadána jako parametr a v případě že ano, vepíše se do obsahu. Atributy ošetřené podmínkami tedy nejsou povinné, zatímco nevyplněný atribut \texttt{src} by při generování vyvolal chybu. V následujícím příkladu jsou přidány podmínky pro kontrolu a případné vložení, jimiž jsou název videa (\texttt{title}), jméno autora (\texttt{author}) a rok vytvoření (\texttt{year}).
\begin{lstlisting}[label=lst:filtr-s-podminkami,caption=Filtr pro vkládání videa s využitím podmínek] \begin{lstlisting}[label=lst:filtr-s-podminkami,caption=Filtr pro vkládání videa s využitím podmínek]
{% if title %} <video controls><source src="{{ src }}"></video>
<div class="title">{{ title }}</div> {% if title or year and author %}
{% endif %} <div class="metadata">
<video controls><source src="{{ src }}"></video> {% if title %}{{ title }}{% endif %}
{% if author %} {% if author and year %}
<div class="metadata">{{ author }}</div> ({{ year }}, {{ author }})
{% endif %} {% endif %}
{% if date %} </div>
<div class="metadata">{{ date }}</div>
{% endif %} {% endif %}
\end{lstlisting} \end{lstlisting}
@ -96,17 +95,17 @@ Filtr je možné opět vyvolat pomocí stejné direktivy kdekoliv v obsahu, ovš
src="video.webm", src="video.webm",
title="Název videa", title="Název videa",
author="Jméno autora", author="Jméno autora",
date="2020-03-22" year="2020"
) }} ) }}
\end{lstlisting} \end{lstlisting}
Protože byly zadány všechny povinné i nepovinné atributy, výtupem toho filtru budou i části kódu s metadaty. Protože byly zadány všechny povinné i nepovinné atributy, výtupem toho filtru budou i části kódu s metadaty.
\begin{lstlisting}[caption=Výstup direktivy z příkladu \ref{lst:formatovani-atributu}] \begin{lstlisting}[caption=Výstup direktivy z příkladu \ref{lst:formatovani-atributu}]
<div class="title">Název videa</div> <video controls><source src="video.webm"></video>
<video controls><source src="video.webm"></video> <div class="metadata">
<div class="metadata">Jméno autora</div> Název videa (2020, Jméno autora)
<div class="metadata">2020-03-22</div> </div>
\end{lstlisting} \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/}}. 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. 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.

BIN
prace.pdf

Binary file not shown.