Přepsání sekce paradigmat a výběru generátoru

This commit is contained in:
Emil Miler 2020-05-01 15:58:23 +02:00
parent 45d19134db
commit d898ffea10
3 changed files with 67 additions and 8 deletions

View File

@ -14,9 +14,9 @@ Skvěle využitelnou funkcí pro modelovou implementaci je také to, že po prov
\subsection{Generátor statického webu} \subsection{Generátor statického webu}
Protože forma modelového webu odpovídá paradigmatu webové prezentace ze sekce \ref{kap:paradigmata-webova-prezentace}, byl pro jeho generování použit program Zola\footnote{\url{https://www.getzola.org/}}, jehož výhody jsou popsány v~sekci \ref{kap:paradigmata-webova-prezentace}. Protože forma modelového webu odpovídá paradigmatu webové prezentace ze sekce \ref{kap:paradigmata-webova-prezentace}, byl pro jeho generování použit program Zola\footnote{\url{https://www.getzola.org/}}, jehož výhody jsou v~sekci \ref{kap:paradigmata-webova-prezentace} popsány.
\todo[inline]{Přesunout výběr a výhody generátoru sem.} Jako nejvhodnější generátor pro modelovou implementaci byl vybrán software Zola. Ten splňuje všechny požadavky z~kapitoly \ref{kap:taxonomie-pozadavku} a oproti jiným systémům je výhodný tím, že je napsaný v~jazyce Rust a je tedy mnohem rychlejší a bezpečnější, než většina jeho alternativ \citep{benchmarks_game}. Kromě těchto výhod si zachovává většinu funkcí a rysů, které lze najít v~ostatních složitých systémech. Zároveň je možné generátor zkompilovat do jednoho staticky linkovaného binárního souboru, se kterým se pracuje mnohem lépe, než se složitým frameworkem.
\section{Tvorba šablony} \section{Tvorba šablony}

View File

@ -1,27 +1,86 @@
\chapter{Webová paradigmata} \chapter{Webová paradigmata}
Ve světě webových stránek se setkáváme se spoustou forem a paradigmat, která 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 webů, 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}}\todo{Přesunout odkazy pod jednu položku.}, které jsou často mířené na specifický obsah, lze vytvořit tři základní paradigmata, do kterých lze tyto weby zařadit. Jsou jimi: Ve světě webových stránek se setkáváme se spoustou forem a paradigmat, která 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 webů, 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}}\todo{Přesunout odkazy pod jednu položku.}, které jsou často mířené na specifický obsah, lze vytvořit čtyři základní paradigmata, do kterých lze tyto weby zařadit. Jsou jimi:
\begin{itemize} \begin{itemize}
\item{Webová prezentace} \item{Webová prezentace}
\item{Index všeobecných informací} \item{Index všeobecných informací}
\item{Technická dokumentace} \item{Technická dokumentace}
\item{Galerie}
\item{Sociální sítě a fóra} \item{Sociální sítě a fóra}
\end{itemize} \end{itemize}
V~této práci byl ke každému z~paradigmat vybrán systém 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. 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} \section{Webová prezentace}\label{kap:paradigmata-webova-prezentace}
Nejbližší původním webům z~dob vzniku WWW jsou webové prezentace, tedy stránky s~jednoduchým obsahem, které slouží 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, foto alba a podobně. Tento druh stránek se skvěle hodí ke statickému generování obsahu, který se odesílá všem uživatelům stejný a nemění se často. Nejbližší původním webům z~dob vzniku WWW jsou webové prezentace, tedy stránky s~jednoduchým obsahem, které slouží 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, foto alba a podobně a skvěle se hodí ke statickému generování obsahu.
Jako nejvhodnější systém pro generování webových prezentací byl vybrán software Zola. Ten je oproti jiným systémům výhodný tím, že je napsaný v~jazyce Rust a je tedy mnohem rychlejší a bezpečnější, než většina jeho alternativ \citep{benchmarks_game}. Kromě těchto výhod si zachovává většinu funkcí a rysů, které lze najít v~ostatních složitých systémech. Také je možné generátor zkompilovat do jednoho staticky linkovaného binárního souboru, se kterým se pracuje mnohem lépe, než se složitým frameworkem. Generátory pro tento typ webové stránky jsou univerzální a lze je tedy aplikovat i na ostatní formy stránek. Většina existujících generátorů je zaměřena právě na toto paradigma a lze si tedy z~čeho vybírat. Každým dnem vznikají nové implementace a svět statických generátorů 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í} \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 \uv{Wiki systémů} a stránek. Za obecného zástupce tohoto druhu stránek lze považovat Wikipedii, která podnítila vznik spousty jiných takzvaných \uv{Wiki systémů} a stránek. Jde o~formu stránky, která 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, pro tuto formu stránek lze implementovat jakýmkoliv generátorem. Existují ale generátory vytvořené přímo pro účel tohoto paradigma. 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í statické generátory. Další programy, například MDwiki\footnote{\url{https://dynalon.github.io/mdwiki}}, zpracovávají Markdown přímo v~phohlížeči a HTML obsah tedy není předgenerován na serveru.
MDwiki je prezentován jako generátor na míru pro wiki stránky, ovšem jejho výstup je velice podobný generátorům z~tabulky \ref{tab:generatory-technicka-dokumentace}.
\section{Technická dokumentace} \section{Technická dokumentace}
Na rozdíl 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. Na rozdíl 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 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
Prosopopee\footnote{\url{https://github.com/Psycojoker/prosopopee/}} & Python \\ \hline
Sigal\footnote{\url{http://sigal.saimon.org/}} & Python \\ \hline
\end{longtable}

BIN
prace.pdf

Binary file not shown.