Přidání lomítek na konec URL

This commit is contained in:
Emil Miler 2020-05-04 18:26:01 +02:00
parent 80ff5261b5
commit 3309cdef43
5 changed files with 14 additions and 12 deletions

View File

@ -39,7 +39,7 @@ Ve výsledku je tedy lepší, z~různých důvodů popsaných RNDr. Olšákem v~
Troff je jedním z~nejstarších jazyků a předchůdcem jazyka \TeX. Autorem původní verze je Joe Ossanna, po jehož smrti převzal vývoj Brian Kernighan. Samotný Troff je reimplementací a rozšířením původního programu RUNOFF z~operačního systému CTSS. Vznikl za účelem sazby dokumentů na novém operačním systému Unix. \citep{ossanna1977troff}
Dnes existuje celá řada různých implementací a modernizovaných rozšíření, například Groff\footnote{\url{https://www.gnu.org/software/groff/}}, Heirloom troff\footnote{\url{http://heirloom.sourceforge.net/doctools.html}}, nebo moderní Neatroff\footnote{\url{https://repo.or.cz/neatroff.git}}, který se snaží o~spojení toho nejlepšího ze všech předchozích implementací. Sám Brian Kernighan v~soukromé emailové konverzaci doporučuje použití některé alternativní implementace, jež jsou podle Keringhana lepší ve všech směrech.
Dnes existuje celá řada různých implementací a modernizovaných rozšíření, například Groff\footnote{\url{https://www.gnu.org/software/groff/}}, Heirloom troff\footnote{\url{http://heirloom.sourceforge.net/doctools.html}}, nebo moderní Neatroff\footnote{\url{https://repo.or.cz/neatroff.git/}}, který se snaží o~spojení toho nejlepšího ze všech předchozích implementací. Sám Brian Kernighan v~soukromé emailové konverzaci doporučuje použití některé alternativní implementace, jež jsou podle Keringhana lepší ve všech směrech.
I~přes vznik mnoha alternativních jazyků, například dříve zmíněného \TeX{}u a \LaTeX{}u, je Troff (Groff) stále hojně využíván v~praxi, zejména u~softwarové dokumentace v~Unixových operačních systémech.
@ -53,7 +53,7 @@ První specifikaci Gruber vydal společně s~referenční implementací v~jazyce
Nevyužívanější formální specifikací je právě CommonMark\footnote{\url{https://commonmark.org/}}, jenž slouží jako pevný základ většiny rozšíření. \citep{github_formal_markdown_spec}
Podobně, jako je tomu u~specifikací, existuje velké množství programů, které tyto různé specifikace překládají. Švýcarským nožem mezi nimi je program Pandoc\footnote{\url{https://pandoc.org/}}, jenž umí překládat Markdown do enormního výběru jiných formátů, nebo z~jiných formátů zpět. Tato funkcionalita se nevztahuje pouze na jazyk Markdown, Pandoc dokáže operovat mezi všemi podporovanými formáty, například dokáže konvertovat obsah z~HTML do \TeX{}u. Na druhou stranu existují i velmi jednoduché překladače, například program smu\footnote{\url{https://github.com/Gottox/smu}}, který umí překládat Markdown do HTML nebo čistého textu a neobsahuje více než šest set řádků kódu hlavního programu.
Podobně, jako je tomu u~specifikací, existuje velké množství programů, které tyto různé specifikace překládají. Švýcarským nožem mezi nimi je program Pandoc\footnote{\url{https://pandoc.org/}}, jenž umí překládat Markdown do enormního výběru jiných formátů, nebo z~jiných formátů zpět. Tato funkcionalita se nevztahuje pouze na jazyk Markdown, Pandoc dokáže operovat mezi všemi podporovanými formáty, například dokáže konvertovat obsah z~HTML do \TeX{}u. Na druhou stranu existují i velmi jednoduché překladače, například program smu\footnote{\url{https://github.com/Gottox/smu/}}, který umí překládat Markdown do HTML nebo čistého textu a neobsahuje více než šest set řádků kódu hlavního programu.
Užitečným rozšířením je, mimo jiné, také integrace matematického prostředí z~jazyka \TeX, viz sekce \ref{kap:tex}.

View File

@ -321,7 +321,7 @@ Redukcí nepotřebných znaků v~HTML lze také ušetřit značnou část přene
\item recyklování již použitých obrázků a tlačítek.
\end{itemize}
K~odstranění přebytečných mezer, zalomení řádků, HTML komentářů a prázdných řádků lze použít automatický filtr pro kompresi výstupu. Toto by se nabízelo jako jedna z~dalších možností pro implementaci rozšíření. Generátor Zola provádí kompresi CSS, ovšem nemá zabudovanou funkcionalitu pro minifikaci výsledného HTML, která je v~době psaní této práce vyvíjena\footnote{\url{https://github.com/getzola/zola/issues/542}}.
K~odstranění přebytečných mezer, zalomení řádků, HTML komentářů a prázdných řádků lze použít automatický filtr pro kompresi výstupu. Toto by se nabízelo jako jedna z~dalších možností pro implementaci rozšíření. Generátor Zola provádí kompresi CSS, ovšem nemá zabudovanou funkcionalitu pro minifikaci výsledného HTML, která je v~době psaní této práce vyvíjena\footnote{\url{https://github.com/getzola/zola/issues/542/}}.
Touto redukcí lze ušetřit 2\% přenosu dat oproti ručně psanému neoptimalizovanému kódu. Je-li průměrná velikost stránky sto kilobajtů, lze touto optimalizací ušetřit dva kilobajty při každém odeslání stránky. Při odeslání sta tisíce stránek za měsíc je ve výsledku ušetřeno dvě stě megabajtů dat, které jsou jinak zbytečně odesílány uživatelům, kteří je stejně nezobrazí.
@ -349,7 +349,7 @@ K~systému Git existují různé služby, jež tento systém rozšiřují o~webo
Tato část práce se věnuje samotné implementaci automatického generování obsahu na základě změn v~repozitáři.
Jak bylo zmíněno v~sekci \ref{kap:vyber-vhodneho-systemu-verzovani}, git umožňuje nastavení takzvaných \textit{Git hooks}, jež se v~určité chvíli spustí. Jak uvádí dokumentace\footnote{\url{https://git-scm.com/docs/githooks}}, existuje spousta druhů hooků, které jsou vyvolány v~různé části zpracování požadavku. V~případě této implementace je nejvhodnější hook \textit{post-receive}, jenž je spouštěn až po nahrání a zpracování všech změn v~repozitáři.
Jak bylo zmíněno v~sekci \ref{kap:vyber-vhodneho-systemu-verzovani}, git umožňuje nastavení takzvaných \textit{Git hooks}, jež se v~určité chvíli spustí. Jak uvádí dokumentace\footnote{\url{https://git-scm.com/docs/githooks/}}, existuje spousta druhů hooků, které jsou vyvolány v~různé části zpracování požadavku. V~případě této implementace je nejvhodnější hook \textit{post-receive}, jenž je spouštěn až po nahrání a zpracování všech změn v~repozitáři.
Skript \ref{lst:git-hook-skript} po vyvolání Gitem provede veškeré potřebné operace ke zpracování nového obsahu na web serveru Je složen z~několika částí.

View File

@ -1,6 +1,6 @@
\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:
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/}}, jež jsou často mířené na specifický obsah, lze vytvořit pět základních paradigmat. Jsou jimi:
\begin{itemize}
\item webová prezentace,
@ -30,7 +30,7 @@ Generátory pro tento typ webové stránky jsou často univerzální a je možn
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
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
@ -40,7 +40,7 @@ Zola\footnote{\url{https://www.getzola.org/}} & Rust
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.
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}.
@ -59,7 +59,7 @@ Od Wiki stránek se technická dokumentace liší organizováním svého obsahu,
%
\endhead
%
mdBook\footnote{\url{https://github.com/rust-lang/mdBook}} & Rust & Markdown \\ \hline
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}
@ -80,8 +80,8 @@ Generátory galerií umožňují jednoduše řadit obrázky do skupin a vytvář
%
\endhead
%
Exposé\footnote{\url{https://github.com/Jack000/Expose}} & shell \\ \hline
fgallery\footnote{\url{https://gitlab.com/wavexx/fgallery}} & Perl \\ \hline
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}

View File

@ -2,6 +2,8 @@
V~této části práce je shrnuta a zhodnocena modelová implementace z~kapitoly \ref{kap:modelova-implementace}, a to jak implementace a využití samotného systému, tak jeho rozšíření implementovaných v~sekci \ref{kap:automaticke-generovani-obsahu}. Součástí této kapitoly jsou také návrhy pro další rozšíření systému.
Webové stránky vytvořené v~rámci této práce jsou k~dispozici na adrese \url{https://ucitelonline.pedf.cuni.cz/} a jejich zdrojový kód je umístěn v~Git repozitáři na adrese \url{https://git.microlab.space/pedf/ucitelonline/}.
\section{Návrhy pro rozšíření systému}
V~praxi bylo zjištěno, že uživatelé, kteří neznají verzovací systém Git, mají problémy se jej naučit, obzvlášť v~prostředí, které vyžaduje rychlé zpracování změn. Systém by bylo dobré rozšířit o~jednoduchou webovou administraci, jež umožňuje nezkušeným uživatelům jednoduchou práci s~obsahem bez nutnosti hledání souborů ve stromové struktuře a znalosti jazyka Markdown. Částečně je tato funkcionalita poskytována systémem Gitea, jenž umožňuje jednodušší úpravy provádět přímo v~prohlížeči, ovšem uživatel musí stále znát a pracovat s~unikátnostmi jazyka Markdown a generátoru Zola.

BIN
prace.pdf

Binary file not shown.