\chapter{Webová paradigmata}\label{kap:paradigmata}

Ve světě webových stránek se setkáváme se spoustou forem a paradigmat, jež se hodí pro zpracování různých druhů informací. Neexistuje žádné formální zařazení druhů webových stránek do skupin, ovšem některé webové portály se pokouší určit základní druhy webových stránek, které se na Internetu objevují. Na základě těchto portálů a jejich rozřazení do skupin\footnote{\url{http://www.xislegraphix.com/website-types.html}}\footnote{\url{https://www.hostgator.com/blog/popular-types-websites-create}}\footnote{\url{https://www.quora.com/What-are-the-different-types-of-websites}}, jež jsou často mířené na specifický obsah, lze vytvořit pět základních paradigmat. Jsou jimi:

\begin{itemize}
\item webová prezentace,
\item index všeobecných informací,
\item technická dokumentace,
\item galerie,
\item sociální sítě a fóra.
\end{itemize}

V~této práci bylo ke každému z~paradigmat vybráno několik existujících generátorů, které jsou vhodné pro generování a správu daného druhu obsahu. Výjimkou je skupina sociálních sítí a fór, kde staticky generovaný obsah není z~důvodu často se měnícího obsahu vhodným řešením.

\section{Webová prezentace}\label{kap:paradigmata-webova-prezentace}

Nejbližší původním webovým stránkám z~dob vzniku WWW jsou webové prezentace, tedy stránky s~jednoduchým obsahem sloužící k~předání informací čtenáři, například formou článků. Do této skupiny lze zařadit portfolia, blog, online noviny a časopisy, firemní stránky a podobně, jež se skvěle hodí ke statickému generování obsahu.

Generátory pro tento typ webové stránky jsou často univerzální a je možné aplikovat většinu těchto generátorů i na ostatní formy stránek. Většina existujících generátorů je zaměřena právě na toto paradigma, a lze z~čeho vybírat. Každým dnem vznikají nové implementace a svět staticky generovaných stránek se rapidně mění.

\begin{longtable}[c]{|l|l|l|}
\caption{Vybrané generátory pro webové prezentace}
\label{tab:generatory-prezentace}\\
\hline
\multicolumn{1}{|c|}{\textbf{Program}}                      & \multicolumn{1}{c|}{\textbf{Jazyk}} & \multicolumn{1}{c|}{\textbf{Podporované jazyky obsahu}}                                                       \\ \hline
\endfirsthead
%
\endhead
%
blogc\footnote{\url{https://blogc.rgm.io/}}                 & C                                   & Vlastní jazyk blogc-source\footnote{\url{https://blogc.rgm.io/man/blogc-source.7.html}} založený na Markdownu \\ \hline
Hugo\footnote{\url{https://gohugo.io/}}                     & Go                                  & Markdown, HTML, AsciiDoc, Pandoc Markdown, reST                                                               \\ \hline
Luapress\footnote{\url{https://luapress.org/}}              & Lua                                 & Markdown                                                                                                      \\ \hline
Nift\footnote{\url{https://www.staticgen.com/nift}}         & C++                                 & Agnostický, tj. Markdown, \LaTeX, HTML, JS, SQL, ...                                                          \\ \hline
Pelican\footnote{\url{https://blog.getpelican.com/}}        & Python                              & Markdown, reST                                                                                                \\ \hline
ssg\footnote{\url{https://www.romanzolotarev.com/ssg.html}} & shell                               & Markdown (lowdown, Markdown.pl)                                                                               \\ \hline
Zola\footnote{\url{https://www.getzola.org/}}               & Rust                                & Markdown (CommonMark)                                                                                         \\ \hline
\end{longtable}

\section{Index všeobecných informací}

Za obecného zástupce tohoto druhu stránek lze považovat Wikipedii, která podnítila vznik spousty jiných takzvaných \textit{Wiki systémů} a stránek. Jde o~formu stránky, jež obsahuje velké množství informací s~různou provázaností. Nejde o~lineární dokumentaci projektu, nýbrž o~encyklopedii obecných informací.

Jak již bylo řečeno, tuto formu stránek lze implementovat jakýmkoliv generátorem. Existují ale generátory vytvořené přímo pro účel tohoto paradigmatu. Takových generátorů je ovšem málo, jelikož jedním ze základních znaků wiki je to, že její obsah tvoří komunita uživatelů, což nemusí být vždy vhodné pro systém statického generování obsahu. Jedním takovým programem je ikiwiki\footnote{\url{https://ikiwiki.info/}}, který funguje stejně jako ostatní sta\-tické generátory. Další programy, například MDwiki\footnote{\url{https://dynalon.github.io/mdwiki}}, zpracovávají Markdown přímo v~prohlížeči a HTML obsah tedy není předgenerován na serveru.

Program MDwiki je prezentován jako generátor vytvořený na míru pro wiki stránky, ovšem jeho výstup je velice podobný generátorům z~tabulky \ref{tab:generatory-technicka-dokumentace}.

\section{Technická dokumentace}

Od Wiki stránek se technická dokumentace liší organizováním svého obsahu, který je cílený na přesný popis systému či objektu. Obsah je strukturován jako manuál, nebo-li kniha, kde se obsah každé části věnuje danému tématu a různý obsah je strukturován do vlastních knih.

\begin{longtable}[c]{|l|l|l|}
\caption{Vybrané generátory pro technickou dokumentaci}
\label{tab:generatory-technicka-dokumentace}\\
\hline
\multicolumn{1}{|c|}{\textbf{Program}} &
\multicolumn{1}{c|}{\textbf{Jazyk}} &
\multicolumn{1}{c|}{\textbf{Podporované jazyky obsahu}} \\ \hline
\endfirsthead
%
\endhead
%
mdBook\footnote{\url{https://github.com/rust-lang/mdBook}} & Rust   & Markdown \\ \hline
MkDocs\footnote{\url{https://www.mkdocs.org/}}             & Python & Markdown \\ \hline
Sphinx\footnote{\url{https://www.sphinx-doc.org/}}         & Python & reStructuredText \\ \hline
\end{longtable}

\section{Galerie}

V~případě galerií se jedná o~obsah složený primárně z~obrázků nebo videí uspořádaných ve struktuře pro jejich snadnou prezentaci. Mohou sloužit jako foto alba, časové příběhové osy, nebo jako portfolio produktů či fotografií.

Generátory galerií umožňují jednoduše řadit obrázky do skupin a vytvářet k~nim popisky. Markup jazyky zde nehrají tak velkou roli jako u~ostatních druhů paradigmat, jelikož hlavním obsahem není text, nýbrž samotné obrázky a videa.

\begin{longtable}[c]{|l|l|l|}
\caption{Vybrané generátory pro galerie}
\label{tab:generatory-galerie}\\
\hline
\multicolumn{1}{|c|}{\textbf{Program}} &
\multicolumn{1}{c|}{\textbf{Jazyk}} \\ \hline
\endfirsthead
%
\endhead
%
Exposé\footnote{\url{https://github.com/Jack000/Expose}}             & shell  \\ \hline
fgallery\footnote{\url{https://gitlab.com/wavexx/fgallery}}          & Perl  \\ \hline
Prosopopee\footnote{\url{https://github.com/Psycojoker/prosopopee/}} & Python   \\ \hline
Sigal\footnote{\url{http://sigal.saimon.org/}}                       & Python \\ \hline
\end{longtable}
