DocBook: otevřený formát (nejen) pro dokumentaci

DocBook48.png Mezi zajímavé otevřené formáty patří i DocBook. Formát vytvořený především pro tvorbu dokumentace je velmi jednoduchý, striktně sémanticky orientovaný a snadno použitelný pro širokou škálu textových dokumentů.  

Proč další formát?

Tato otázka je položena špatně. DocBook totiž není nějaký „další“ formát – je to naopak formát, jehož historie je dlouhá a jenž byl mezi prvními formáty založenými na jazyce XML (byť vznikl nejdříve pro SGML). Jeho vznik sahá až do roku 1991, kdy se o potřebě takového formátu (tedy pro snadnou a rychlou tvorbu technické dokumentace) začalo diskutovat.

Formát vznikl jako společná iniciativa počítačové firmy HAL Computer Systems a nakladatelství O'Reilly & Associates (dnes známého jako O'Reilly Media). Zpočátku se o něj starala samostatná organizace, v roce 1998 přešel do správy konsorcia SGML Open, dnes známého jako OASIS – tedy téže organizace, která se stará o Open Document Format.

Základní principy

DocBook je přísně sémantický formát. To znamená, že logická struktura dokumentu odpovídá významu jednotlivých elementů a nijak nepředurčuje jeho vzhled. Zapomeňte na nějaké tučné písmo, barevné zvýrazňování a podobné věci. Vzhled je čistě věcí následné interpretace dokumentu. Podobně je DocBook i jazykově neutrální, takže funguje stejně dobře pro jazyky s různým směrem čtení/psaní.

Dokumenty vytvořené ve formátu DocBook se pro další použití běžně převádějí do jiných formátů, například (X)HTML, EPUB nebo PDF.

V praxi to vypadá například tak, že nejvyšším elementem struktury je kniha, ta obsahuje titul, předmluvu, kapitoly, obsah, rejstřík apod. Kapitola pak má nadpis, sekce, odstavce atd., v odstavcích se pak používají odkazy, zvýraznění, křížové reference a různé další elementy.

Kromě klasického formátu DocBook existuje i jeho zjednodušená verze (Simplified DocBook), která už tak dost jednoduchý formát ještě více přibližuje začátečníkům. Obsahuje podmnožinu elementů formátu, lze ji použít pro psaní krátkých článků a podobných děl. Například knihu v něm ale nevytvoříte.

Jak DocBook vypadá uvnitř

Díky tomu, že je DocBook textovým formátem, navíc založeným na XML, je dobře čitelný a dobře vytvořitelný a upravitelný v libovolném textovém editoru. Velmi jednoduchý dokument může mít například takovouto podobu:

<?xml version="1.0" encoding="UTF-8"?>
<article version="5.0" xml:lang="cs">
  <info>  
    <title>DocBook: otevřený formát (nejen) pro dokumentaci</title>
    <author>
      <personname>Lukáš Jelínek</personname>
    </author>
    <abstract>
      <para>Mezi zajímavé otevřené formáty patří i DocBook...</para>
    </abstract>
  </info>
  <section>
    <title>Proč další formát?</title>
    <para>Tato otázka je položena špatně...</para>
    <para>Formát vznikl jako společná iniciativa...</para>
  </section>
</article>

Asi poznáte, že to je dokument pro článek, který právě čtete (obsahující samozřejmě jen fragment jeho celé podoby). Převést ho do podoby pro web – tedy do takové, jakou před sebou vidíte – znamená použít konverzi pomocí XSLT nebo nějakou jinou cestou. Stejně tak z této podoby vygenerujete třeba podobu pro elektronickou čtečku. Dokument zkrátka stačí vytvořit jednou, ve formátu DocBook, a ve stejném formátu ho případně dále udržovat.

Jak do dokumentu vložit například obrázky? Trochu se to podobá vkládání v HTML. Obrázek je tedy v externím souboru a do dokumentu se vloží jen jeho umístění:

<figure xml:id="obrazek1">
  <title>Obrázek 1</title>
  <mediaobject>
    <imageobject>
      <imagedata fileref="images/obrazek1.png" width="100%" />
    </imageobject>
  </mediaobject>
</figure>

Například hypertextový odkaz se vkládá takto (libovolně do textu, opět jako třeba u HTML):

<link xl:href="http://www.openoffice.cz/">OpenOffice.cz</link>

Budete-li chtít pracovat přímo s formátem DocBook, najdete potřebné informace přímo v dokumentaci nebo v příručkách (odkazy na některé najdete na konci článku).

Nástroje pro práci s formátem DocBook

Přestože mnozí tvůrci dávají přednost přímému psaní dokumentů DocBook, není to nutné a lze pro tvorbu využít různé aplikace, které s tímto formátem pracují. Další aplikace pak slouží pro jeho zpracování.

Tvorba dokumentů

LibreOffice Writer má přímo v sobě možnost DocBook načítat a ukládat do něj (konkrétně do verze 4.1.2). Bohužel ale nefunguje příliš dobře, často se například uloží jen část dokumentu. Proto je lepší LibreOffice pro tyto účely zatím nepoužívat. Apache OpenOffice nativní podporu nemá, ale lze využít filtry, které podporu aspoň částečně zajistí.

Z dalších aplikací kancelářského charakteru lze využít například Abiword nebo LyX. Další možností jsou různé více či méně specializované aplikace, například oXygen XML, XMLmind XML Editor nebo Exchanger XML Editor. Jsou však vesměs proprietární a většinou placené.

Do formátů DocBook umožňují generovat výstup také některé programy pro tvorbu dokumentace ze strukturovaných komentářů. Patří mezi ně například oblíbený Doxygen a stejně tak i phpDocumentor nebo ROBODoc.

Zpracování dokumentů

Obecně lze použít libovolný XSLT konvertor v kombinaci se šablonou, která definuje převod buď přímo do cílového formátu (třeba HTML), nebo do formátovacích objektů (XSL-FO), z nichž lze dále převádět do jiných formátů (typicky PostScript nebo PDF).

Nejznámější je v tomto ohledu asi knihovna libxslt, kterou využívají i další aplikace a již lze přímo využít i přes rozhraní příkazové řádky (nástroj xsltproc dostupný například v mnoha linuxových distribucích). Microsoft vytvořil procesor MSXML, opět s utilitou (msxml.exe). Z řady dalších lze zmínit například Xalan nebo Saxon.

K převodu jsou samozřejmě potřeba ještě příslušné šablony. Pro běžné výstupní formáty je lze najít na webu projektu DocBook, jinak si je lze vytvořit pro libovolný výstupní formát (ale i pro vstupní, pokud budete chtít DocBook naopak generovat). Zajímavou možností je také převod na formát LaTeX s následnou konverzí na PDF. Této cestě se věnuje projekt DocBook to LaTeX Publishing.

Pro snazší konverzi existují například v linuxových distribucích nástroje, které umožňují přímý export do často používaných formátů. Do této kategorie patří třeba nástroj dbtoepub, jímž z dokumentu DocBook vygenerujete soubor EPUB pro elektronické čtečky.

Pokud si z DocBooku připravíte již zmíněné formátovací objekty (XLS-FO), je potřeba je ještě převést do cílového formátu. Tady poslouží například aplikace Apache FOP, která generuje nejen PDF, ale třeba také obrázky PNG, textový formát RTF nebo tisková data PCL.

Není to tak trochu „hardcore“?

Je. DocBook vznikl pro technickou dokumentaci, speciálně v oblasti výpočetní techniky, a navzdory své použitelnosti i mnohde jinde zůstal hodně technicky zaměřeným nástrojem. Články o vaření ani romány pro „červenou knihovnu“ v tom asi nikdo psát nebude. Na druhou stranu je dobré o tomto formátu alespoň vědět, protože může nastat situace, že se vám bude hodit. Asi nejlépe ho lze popsat jako poněkud jednodušší konkurenci formátu pro publikační systém TeX.

(Jako ve škole) Průměr: 1.00 | Hodnotilo: 5
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Lukáš Jelínek

Lukáš Jelínek

Dlouholetý člen autorského týmu LinuxEXPRESu a OpenOffice.cz. Vystudoval FEL ČVUT v oboru Výpočetní technika. Žije v Kutné Hoře a podniká v oblasti informačních technologií. Ve volném čase rád fotografuje, natáčí a stříhá video, občas se věnuje powerkitingu a na prahu čtyřicítky začal hrát tenis.

 
 
 
woo jaw demo hz