Docbook všetko vyrieši
Každý kto aspoň chvíľu pracoval s dokumentami vie, aké je ťažké na serveri dynamicky generovať PDF s funkčnou diakritikou, alebo zabezpečiť konverziu z jedného formátu - napríklad RTF napríklad na HTML, alebo ODT.
V Zlatom fonde denníka SME sme minulý rok museli riešiť závažnú dilemu: ako produkovať stovky kníh v najrôznejších formátoch (Microsoft Word, Open Office, HTML, PDF ap.) a pritom prácu robiť čo najmenej ručne, pri všetkých knihách evidovať množstvo bibliografických údajov a pri každej, čo i len malej zmene v dokumente, neopakovať opäť rutinu ručnej tvorby všetkých dokumentov. Ako postaviť jeden jediný zdrojový dokument a nechať náš systém, aby všetko ostatné urobil za nás?
Vďaka Ronymu sa odpoveď pre nás našla rýchlo: Docbook. Jeden XML súbor a z neho všetky formáty, o ktorých ste snívali. Množstvo nástrojov na správu, jednoduchá implementácia do vášho systému. A vo vatikánskej mene, lebo najlepšie veci sú vždy zadarmo.
Z vďaky k open-source komunite (najmä Normanovi Walshovi a v našich končinách najmä Jirkovi Kosekovi), ktorá vytvorila niečo také fantastické a pre poučenie tých, ktorí túto technológiu doteraz nepoznali rovnako ako kedysi my, uverejňujeme tu drobný návod, ako Docbook funguje a čo všetko ponúka.
Jeden XML a už nič viac
Celá krása Docbooku je v tom, že vytvoríte jeden XML súbor, v ktorom určíte všetko čo potrebujete: od toho kto je autorom knihy, článku, až po poznámky pod čiarou, kľúčové slová, ktorá na konci knihy chcete vypísať, alebo tabuľky, obrázky. Čokoľvek. A dokument bude dobre vyzerať dobre tak vo Worde, PDF ako aj v HTML.
Klasická Hello World ukážka Docbook XML súboru:
Veľmi primitívny ukážkový dokument
<?xml version="1.0" encoding="UTF-8"?> <book id="simple_book" xmlns="http://docbook.org/ns/docbook"version="5.0"> <title>Very simple book</title> <chapter id="kapitola_1"> <title>Kapitola 1</title> <para>Vitaj svet!</para> </chapter> <chapter id="kapitola_2"> <title>Kapitola 2</title> <para>Vitaj, svet! Opäť.</para> </chapter> </book>
Nemá zmysel na tomto mieste vysvetľovať ako sa vytvára tučné písmo, poznámky pod čiarou, alebo tabuľka. Všetko dôležité v zrozumiteľnom a dobre čítavom jazyku nájdete v bezplatnej elektronickej knižke Jiřího Koseka Docbook - Stručný úvod do tvorby a zpracování dokumentů.
Ak chcete vidieť ako vyzerajú dokumenty u nás v Zlatom fonde, pozrite sa napríklad na XML dokument k dielu Statky-zmätky Jozefa Gregora Tajovského.
Samozrejme, existujú aj ľahšie spôsoby ako si Docbook vytvoriť, aj bez znalosti jazyka XML - my odporúčame Xmlmind XML Editor, ktorý je v osekanej verzii zadarmo, alebo úžasný oXygen XML Editor, ktorý je kombináciou WYSIWYG a ingeligentného písania kódu, no treba zaň platiť
Generovanie súborov
Keď máme XML, chceme vygenerovať súbory. Tu máme opäť dve možnosti, alebo sa vykašleme na ručnú robotu a použijeme niektorý z nástrojov vyššie, ktoré okrem krásneho písania dokumentov umožňujú ich uloženie priamo v RTF, PDF, HTML a podobne (dobré použiteľná je bezplatná utilita XMLmind XSL-FO Converter), alebo využijeme bezplatné nástroje a všetky operácie budeme ovládať z príkazového riadka.
Tu je niekoľko rád k druhej možnosti. V prvom rade potrebujeme tzv. XSL štýly - to sú dokumenty, v ktorých je predpis ako budú naše dokumenty vyzerať. Stiahnite si ich odtiaľto a vložte napríklad do adresára c:/docbook/xsl
Teraz si stiahneme niekoľko aplikácii. Vložte si ich do adresára c:/docbook
, nemusíte pre každú vytvárať vlastný adresár, môžu ísť spolu - nepobijú sa.
XSLTPROC - http://xmlsoft.org/XSLT/
XFC (s podporou príkazov fo2rtf, fo2odt, fo2docx, fo2wml) - http://www.xmlmind.com/foconverter/downloadperso.shtml
FOP - http://xmlgraphics.apache.org/fop/ - POZOR pre funčknú slovenčinu treba upraviť podľa http://www.kosek.cz/sw/fop/index.html - podpora slovenských a českých fontov
LYNX – asi http://lynx.isc.org/release/
Teraz sa už môžeme dať do generovania súborov. Pri každej ukážke predpokladám, že sa nachádzame v priečinku c:/docbook
a v ňom sú umiestnené súbory, tak ako spomínam vyššie. Zároveň sa tu nachádza aj dokument kniha.xml, ktorý chceme konvertovať.
HTML
xsltproc -o kniha.html xsl/html/docbook.xsl kniha.xml
FO - medzikrok k RTF a PDF
xsltproc -o kniha.fo xsl/fo/docbook.xsl kniha.xml
RTF
fo2rtf kniha.fo kniha.rtf
WML
fo2wml kniha.fo kniha.wml
ODT
fo2odt kniha.fo kniha.odt
fop -fo kniha.fo -pdf kniha.pdf -c conf/myfop.xconf
TXT
lynx -dump kniha.html > kniha.txt -nolist
Z docbooku možno získať aj ďalšie formáty - napríklad HTML Help, alebo MAN stránky. V prípade, že ste programátor, pre Docbook si dokonca môžete napísať aj vlastný štýl, ktorý z Docbooku urobí ďalší formát súboru. Návod na ďalšie výstupné formáty nájdete napríklad tu.
Ako má dokument vyzerať
Ak vám nevyhovuje ako dokumenty teraz vyzerajú, môžete sa s nimi vyhrať - úpravou pôvodných XSL štýlov. Písmo, okraje, hlavičky, pätičky, obrázky v pozadí, alebo veľkosť hárka, či čokoľvek iné - všetko sa dá výborne upraviť.
Stručný návod ako na to ponúka aj Jiří Kosek, no najobsiahlejšiu príručku ponúka v bezplatnej knihe Bob Stayton - XSL - Complete Guide
Na záver
Docbook je tu roky a niekedy sa naň zabúda. Zvážte, či vo vašej firme nepotrebujete lepšie riešenie ako písať manuály vo Worde a potom ich pregenerovávať do iných formátov. Zvážte, či práve nenastal čas zbaviť sa formátového Babylonu a začať tvoriť dokumenty lepšie.