Óda na Docbook (Ako vytvoriť elektronickú knižnicu)

Dnes píše Tomáš Ulej Microsoft Word, Open Office, HTML, PDF, HTML Help - Aj vám lezie na nervy vytvárať tie isté dokumenty viackrát len preto, že každý obľubuje iný formát? Ako sa zbaviť formátovej závislosti a vytvárať elektronické knihy, články, dokumenty, manuály jednotne, "otvorene" a pritom jednoducho?

Písmo: A- | A+
Diskusia  (2)

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?

SkryťVypnúť reklamu
SkryťVypnúť reklamu
Článok pokračuje pod video reklamou

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.

SkryťVypnúť reklamu

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ť

SkryťVypnúť reklamu

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

SkryťVypnúť reklamu

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.

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

PDF

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.

Zlatý fond denníka SME

Zlatý fond denníka SME

Bloger 
  • Počet článkov:  42
  •  | 
  • Páči sa:  1x

Kolaboratívny blog digitalizátorov slovenskej literatúry v projekte Zlatý fond denníka SME Zoznam autorových rubrík:  NezaradenáZlatý fondČítankaAko digitalizujeme

Prémioví blogeri

Marcel Rebro

Marcel Rebro

135 článkov
Pavol Koprda

Pavol Koprda

10 článkov
Post Bellum SK

Post Bellum SK

89 článkov
Martina Hilbertová

Martina Hilbertová

50 článkov
Věra Tepličková

Věra Tepličková

1,066 článkov
Yevhen Hessen

Yevhen Hessen

35 článkov
reklama
reklama
SkryťZatvoriť reklamu