Popis modulů pro generování pdf výstupů v systému Mediawiki

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání

Tato kapitola se zaměřuje na moduly pro generování PDF výstupů, ale jako první podrobně popisuje co je to vlastně MediaWiki. Zabývá se charakteristikou tohoto systému, jaké má využití nebo jak se dá dále rozšiřovat.

MediaWiki je svobodným softwarem s otevřeným zdrojovým kódem a je tvořena pomocí takzvaně Wiki balíčků, což jsou předem připravené a zabalené instalační části počítačového programu. Je napsaný v jazyce PHP a původně byl vyvinut pro potřeby Wikipedie. Dnes však tento software využívá spousta dalších neziskových projektů. [9]

Vlastnosti:

  • Jednoduchá tvorba a úprava www stránek.
  • Příkazy a povely jsou plně lokalizované.
  • Lze stáhnout zásuvné moduly a rozšíření, které dovolují množství nových akcí.
  • Součástí distribuce je vyhledávací jádro.
  • Dovoluje obrovské množství nastavení od vzhledu až po uživatelská práva.
  • Automatické členění dokumentů podle kategorií, třídění atd.
  • Automatické formátování dokumentů (obsah, členění atd.).
  • Dokáže importovat z běžných kancelářských balíků.
  • PDF výstup a převedení do holého textu.

Wiki systém

Wiki je chápána jako označení webů, které umožňují tvorbu a editaci libovolného počtu vzájemně propojených webových stránek prostřednictvím webového prohlížeče s použitím zjednodušeného značkovacího jazyku nebo textového editoru WYSIWYG (akronym what you see is what you get). Celý Wiki web obsahuje mnoho stránek, které se nazývají wiki stránky.

Tyto Wiki weby jsou tvořeny pomocí webových aplikací, které jsou poskytované pomocí webového serveru a uživatelům tak stačí internetový prohlížeč. Vnitropodnikovou obdobou jsou intranety, které jsou často využívány pro vzájemnou spolupráci více uživatelů. [3, s. 12]


Charakteristika Wiki webů

Hlavním znakem wiki technologie je snadnost, se kterou lze vytvářet a aktualizovat stránky. Tyto stránky většinou nejsou kontrolovány a většina z těchto wiki systémů jsou přístupné i ze strany veřejnosti, navíc nevyžadují uživatelskou registraci. Dalším znakem je, že mnohé úpravy lze provést v reálném čase, a to znamená, že jsou téměř ihned k vidění on-line. Toto ale může vést k zneužívání systému. Proto soukromé wiki servery vyžadují autentizaci uživatele k úpravě stránek a někdy i k pouhému prohlížení. Wiki je v podstatě databáze pro vytváření, prohlížení a prohledávání informací.


Principy wiki systémů

Všichni uživatelé mohou na Wiki webu editovat nebo vytvářet jakékoliv stránky, použitím pouze prostého webového prohlížeče bez dalších doplňků. Wiki pomáhá podporovat propojenost témat, které spolu nějak souvisí tím, že mezi nimi vytvoří takzvaně odkaz na stránku. Tento odkaz je může být buď modrý a to znamená, že stránka již existuje, zatím co červený znamená, že stránka ještě nebyla vytvořena. Wiki se snaží zapojit všechny návštěvníky stránek do procesu tvorby a spolupráce, aby se stále zlepšovala kvalita témat.

Stránky a jejich úpravy Obvykle ve wiki systémech probíhá prezentování stránek pomocí následujícího způsobu: uživatel píše a upravuje stránky v takzvaném Wikitextu, což je zjednodušený značkovací jazyk. V tomto wikitextu je pak stránka uložena. Při požadavku na zobrazení této stránky systém zkonvertuje tento wikitext na HTML kód a ten se zobrazí na webovém prohlížeči standardním způsobem.


Důvodem tohoto způsobu prezentování stránek bylo to, že HTML má spoustu vnořených tagů, a tak je příliš komplikovaný pro rychlou editaci a odvádí pozornost od obsahu stránek. Sice uživatelé pak nemohou využívat žádné funkce, které HTML poskytuje jako například JavaScript a CSS styly, ale to je spíš výhodou, protože tím je zajištěna jednotnost vzhledu Podle použitého wiki enginu se liší i formátovací instrukce. Jednoduché instrukce umožňují pouze základní formátování textu, ale ty nejsložitější mají podporu pro tabulky, obrázky, vzorce nebo dokonce i ankety a hry. [6, s. 48-51]

Mediawiki pdf obr 2.1.png

Schéma č. 1: Ukázka způsobu editování obsahu podle MediaWiki syntaxe. Zdroj: [27]

Mediawiki pdf obr 2.2.png

Schéma č. 2: Vygenerovaný HTML kód. Zdroj: [27]

Mediawiki pdf obr 2.3.png

Schéma č. 3: Ukázka textu, který bude vygenerován v prohlížeči. Zdroj: [27]


Odkazy a vytváření stránek

Wiki obsahuje nelineární navigační struktury. Většinou každá stránka obsahuje odkazy na jiné stránky. Tyto odkazy jsou tvořeny takzvaným formátem odkazů (link pattern). Původně byla používána jako link pattern metoda CamelCase. Sice tato metoda vytvářela odkazy snadno, ale měnila vytvořené odkazy do tvarů odlišných od standardního pravopisu. Kvůli tomu bylo hledáno jiné řešení. Nakonec byly zavedeny takzvaně volné odkazy (free links). Existuje i speciální link pattern nazvaný InterWiki, který dokáže mezi jinými wiki komunitami upravit jinak použité znaky v odkazech. [6, s. 75] Vytváření stránek lze jednoduše přidáním odkazu na příbuznou stránku, avšak pokud tato stránka neexistuje, je odkaz obvykle nefunkční a otevře se editační okno. Zde může uživatel napsat text stránky. Wiki poskytují nástroje pro kontrolu platnosti posledních změn obsahu. K tomu slouží takzvaně Stránka posledních změn (recent changes page). Tato stránka zobrazuje určitý počet změn provedených na stránce.

Wikiknihy

Wikikniha je sbírka wiki článků o určitém tématu. Nejlepším příkladem jsou například některé předpřipravené Wikiknihy z Wikipedie. Tyto Wikiknihy jsou k dispozici také v PDF verzi.

Wiki systém je skvělý nástroj pro hromadnou spolupráci, kdy mohou poměrně velké pracovní skupiny pomocí těchto systémů mezi sebou spolupracovat. Podobná myšlenka funguje i u Wikiknih. Kdy každý člověk zajímající se o určitou část tématu, by mohl přidat svou stránku do Wiki systému. A až by těchto stránek bylo víc, vytvořila by se z nich sbírka článků obsahující veškeré informace o daném tématu. Tato sbírka by byla potom vygenerována do podoby Wikiknihy, která by mohla sloužit třeba jako manuál. Například takto můžeme vytvořit výukové články. Ty pak mohou být sestaveny do tisknutelné podoby jako učebnice. Křížové odkazy a odkazy na externí zdroje lze navíc ve Wiki systémech snadno vytvořit a spravovat.


Realizace Wiki systémů

Obvykle je realizována na aplikačních serverech, které běží na jednom nebo více webových serverech. Obsah je uložen v souborovém systému a změny v obsahu jsou uloženy v relačních databázových systémech. Všeobecně používaný software je MediaWiki. Wiki weby mohou být také vytvořeny v takzvané wiki farmě (wiki farm). Zde na straně serveru software implementuje vlastník wiki farmy. Například mezi takové nejpopulárnější patří PBwiki, Socialtext a jiné. V této tabulce je uveden seznam deseti největších wiki webů.

Pořadí Wiki celkem stránek Obrázků Administrátorů Uživatelů
1. en.wikipedia 25377568 826334 1524 15608896
2. en.wiktionary 2906765 15 95 536297
3. fr.wiktionary 2228018 29 23 56807
4. lyrics.wikia 2175421 68508 24 3433036
5. de.wikipedia 3685678 175134 294 1316375
6. websitewiki.wikia 1352993 2179 1 3434186
7. zh.wiktionary 1317728 194 8 19941
8. fr.wikipedia 4722164 44660 194 1155440
9. Sajun Wiki 1408452 510 9 792
10 BVIO 1400982 430 7 1313

Tabulka č. 1: Největší wiki weby Zdroj: [26], vlastní zpracování


Tato tabulka znázorňuje kolik stránek, obrázků a registrovaných uživatelů je na jednotlivých wiki systémech.

Rozšiřující knihovna Extension:Collection

Tato knihovna slouží jako rozšíření pro systém MediaWiki, kdy přidává do levého panelu nabídku Tisk/export, která obsahuje možnosti jako vytvořit knihu, stažení jako PDF a verze k tisku. Pomocí těchto možností pak toto rozšíření odešle obsah na konverzi do vykreslovacího serveru, který vytvoří Wikiknihu ve zvoleném formátu.


Rozšíření Collection umožňuje tedy shromažďovat wiki články, které vybral uživatel a dokáže z nich vytvořit výstup v předdefinovaných formátech. K vykreslení Wikiknih je u tohoto rozšíření použit základní vykreslovací server Pediapress. [42]


Pomocí rozšíření Collection dokážeme:

  • upravovat a vytvářet strukturu dokumentu pomocí kapitol,
  • dokument uchovávat, načítat na platformách a dále sdílet,
  • články generovat ve formátu PDF (Extension:PDF Writer), exportovat jako text dokumentu ODF (Extension:OpenDocument Export),
  • exportovat jako DocBook XML (Extension:XML Bridge),
  • exportovat jako soubor ZIM (Extension:Collection openZIM).


Rozšíření Collection dovoluje ze sbírky článků vytvořit tyto výstupy:


PDF výstup

V tomto výstupu můžeme:

  • Zadat název a podtituly pro sbírku.
  • Vytvořit kapitoly.
  • Uspořádat články a kapitoly ve sbírce.
  • Odstranit články a kapitoly ze své sbírky.
  • Seřadit sbírky. [42]


ODF výstup

Je otevřený souborový formát určený pro ukládání a výměnu dokumentů vytvořených v kancelářských aplikacích. ODF zahrnuje textové dokumenty, prezentace, tabulky, grafy a databáze. Tento formát nejčastěji používají open-source aplikace jako OpenOffice. Tento formát je založen na XML. [17]


ZIM soubor

Projekt openZIM má tyto vlastnosti:

  • Zim souborový formát slouží pro efektivní otevírání a ukládání Wiki obsahu standardizovaných souborových formátů v offline módu.
  • Zim formát se skládá z implementací zimlib, zimwriter a zimreader. [19]


DocBook XML

Wiki syntaxe není vhodná pro textové transformace na jiné formáty. Proto je dobré implementovat podporu pro meziproduktový formát, který je založený na XML kódu. Ten umožňuje používat standardní XML parsování a transformaci knihoven ve zdrojovém obsahu. Zatímco MediaWiki jako první parser využívá k exportu formát XHTML, přechod z Wiki syntaxe do XHTML je však ztrátový. Jednak jsou ztraceny informace o použitých šablonách, tak i parametry pro rozšíření a obrázky. Tím pádem je nemožné provést některé konverze, protože potřebné informace pro převod nejsou k dispozici. Je ale plánováno vytvořit software, který převede MediaWiki články do reprezentace založené na XHTML kódu a ten se bude dobře hodit k získání dalších formátů, jako jsou PDF a ODF.

Přechod na formát XML, který zachovává sémantické informace, znamená obrovské využití pro programátory. Navíc dlouhodobý přechod na XML také umožní wiki články lépe uchovávat. [43]

Rozšiřující knihovna Extension:PDF Writer

Toto rozšíření slouží k vytvoření vlastního vykreslovacího PDF serveru pomocí, kterého bude rozšíření Collection vykreslovat Wikiknihy a nebude potřeba tak externího serveru, který poskytuje Pediapress.

Toto rozšíření tvoří tyto knihovny:

  • Mwlib,
  • mwlib.rl,
  • mwlib.zim.

Toto rozšíření, jak bylo popsáno výše, obsahuje tři pythonovské knihovny, a to mwlib, která se stará o základní funkce a slouží ke kontrole syntaktické správnost dokumentu a rozkládá MediaWiki články ke zpracování. A mwlib.rl knihovnu pro vytváření PDF dokumentů z rozložených MediaWiki článků. Poslední knihovna vytváří z MediaWiki článků zim soubory. Výhodou je, že pomocí rozšíření Extension:PDF Writer dokážeme vykreslovat z článků, které se nachází na naší MediaWiki výstupy i v jiných formátech než jen v PDF. [32]


Mwlib nainstaluje následující programy:

Mw-render
Vytváří dokumenty ve formátech PDF a ODT z MediaWiki článků
Mw-zip
Vytváří ZIP soubory z článků MediaWiki, tyto soubory obsahují všechny informace potřebné pro následné vytvoření výstupního dokumentu ve zvoleném formátu.
Mw-server
Spustí vykreslovací PDF server, který dovoluje ze sbírky článků poslaných z rozšíření Collection vytvářet PDF Wikiknihy. Spuštění vykreslovacího serveru spočívá v zapnutí více programů. Tyto programy mají následující cíle:
  • nserve.py Nserve je HTTP server, který je přímo propojený s rozšířením Extension:Collection. Nserve využívá minimálně jedno místo z fronty úloh, které

poskytuje MW-qserve instance k distribuci a správě úloh.

  • mw-qserve Mw-qserve neboli server sloužící pro distribuci a spravování úloh. Měl by stačit spuštěný jeden mw-qserve pro každý počítač, na němž má dojít k vykreslení PDF souborů.
  • nslave.py Nslave stahuje nové úlohy z jedné instance mw-qserve serveru a zavolá mw-zip a mw-render programy, aby si v určitém pořadí stažené články ve sbírce převedli na vybrané výstupní formáty. Nslave používá adresář cache pro uložení vygenerovaného dokumentu. Nslave také spustí vnitřní http server, který nabízí výpis adresáře cache.
  • postman.py Postman slouží k nahrávání zip sbírek a jejich odesílání na Pediapress, kde se zpracují v případě, že si někdo objedná tištěnou knihu. [33]

Nástroje třetích stran

Tyto nástroje poskytují možnost generování sbírek článků v různých formátech, ale musí být použito nástrojů třetích stran.


Wiki2PDF

Wiki2PDF jsou kolekce skriptů pro MediaWiki, napsané v programovacím jazyce python, které přidávají funkce PDF/LaTex a dovolují generování online PDF z Wikipedia článků. Wiki2PDF tedy slouží pro převod několika článků z MediaWiki na jeden LaTeX, z kterého lze vygenerovat PDF soubor. Wiki2PDF je pod licencí GPL a vyžaduje instalaci PHP a python. [31]


PediaPress

PediaPress poskytuje on-line služby, které umožňují uživatelům vytvářet skrze web vlastní knihy z wiki obsahu, například pomocí web-to-print technologie. Tato možnost je však zpoplatněna. [7]

Abychom mohli vytisknout tyto knihy pomocí Pediapress serveru, musíme mít nainstalované rozšíření Extension:Collection pro MediaWiki, které umožňuje snadné vytváření výstupů v PDF, ODF a DocBook formátu. Na serveru http://tools.pediapress.com/ je všechno jednoduše ke stažení a všechno je předem nakonfigurováno. Proto stránky, které jsou přístupné z internetu, nemusí instalovat vlastní PDF server a to znamená levný a snadný provoz. Takže stačí nainstalovat rozšiřující kolekci Extension:Collection a mít v MediaWiki při instalaci povoleno MediaWiki API. Není povinná instalace Python, ReportLabu, mwlib atd. Ale všimněte si však, že pro tuto službu musí být přístupná wiki z Internetu pro neregistrované uživatele nebo musí být nastaveny přihlašovací údaje. Takže pokud je wiki nepřístupná z internetu nebo jsou to stránky s velkým počtem uživatelů a denně se vytváří tisíce wikiknih, je lepší nainstalovat vlastní vykreslovací server. Toto rozšíření se nazývá PDF:Writer. Současí tohoto rozšíření jsou knihovny mwlib a mwlib.rl. Tento server může být použit jako samostatný server HTTP.