abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 2
    dnes 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 0
    dnes 10:11 | IT novinky

    V pořadí šestou knihou autora Martina Malého, která vychází v Edici CZ.NIC, správce české národní domény, je titul Kity, bity, neurony. Kniha s podtitulem Moderní technologie pro hobby elektroniku přináší ucelený pohled na svět současných technologií a jejich praktické využití v domácích elektronických projektech. Tento knižní průvodce je ideální pro každého, kdo se chce podívat na současné trendy v oblasti hobby elektroniky, od

    … více »
    Ladislav Hagara | Komentářů: 1
    dnes 03:11 | Komunita

    Linux Foundation zveřejnila Výroční zprávu za rok 2025 (pdf). Příjmy Linux Foundation byly 311 miliónů dolarů. Výdaje 285 miliónů dolarů. Na podporu linuxového jádra (Linux Kernel Project) šlo 8,4 miliónu dolarů. Linux Foundation podporuje téměř 1 500 open source projektů.

    Ladislav Hagara | Komentářů: 0
    dnes 02:11 | Zajímavý článek

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.12.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    dnes 02:00 | Nová verze

    OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzi 2.4.0.

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | IT novinky

    Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.

    Ladislav Hagara | Komentářů: 4
    včera 14:44 | IT novinky

    Na lepší pokrytí mobilním signálem a dostupnější mobilní internet se mohou těšit cestující v Pendolinech, railjetech a InterPanterech Českých drah. Konsorcium firem ČD - Telematika a.s. a Kontron Transportation s.r.o. dokončilo instalaci 5G opakovačů mobilního signálu do jednotek Pendolino a InterPanter. Tento krok navazuje na zavedení této technologie v jednotkách Railjet z letošního jara.

    Ladislav Hagara | Komentářů: 6
    včera 12:22 | Bezpečnostní upozornění

    Rozšíření webového prohlížeče Urban VPN Proxy a další rozšíření od stejného vydavatele (např. 1ClickVPN Proxy, Urban Browser Guard či Urban Ad Blocker) od července 2025 skrytě zachytávají a odesílají celé konverzace uživatelů s AI nástroji (včetně ChatGPT, Claude, Gemini, Copilot aj.), a to nezávisle na tom, zda je VPN aktivní. Sběr probíhá bez možnosti jej uživatelsky vypnout a zahrnuje plný obsah dotazů a odpovědí, metadata relací i

    … více »
    Ladislav Hagara | Komentářů: 5
    včera 05:22 | Zajímavý software

    QStudio, tj. nástroj pro práci s SQL podporující více než 30 databází (MySQL, PostgreSQL, DuckDB, QuestDB, kdb+, …), se stal s vydáním verze 5.0 open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 6
    Kdo vám letos nadělí dárek?
     (8%)
     (0%)
     (0%)
     (0%)
     (8%)
     (8%)
     (23%)
     (31%)
     (23%)
    Celkem 13 hlasů
     Komentářů: 10, poslední dnes 12:54
    Rozcestník

    Jak na DocBook na Windows

    21.5.2012 21:52 | Přečteno: 1561× | Různé

    Tento zápisek je tady v prvé řadě proto, abych dokázal rychle nainstalovat vše nutné k DocBooku, až se zase ocitnu na počítači s Windows a budu potřebovat něco psát. Proč tady článek vlastně je? Zejména proto, že ne všichni se uživí Linuxem a hodně Linuxáků má v práci Windows.

    Pro kolegy s Linuxem může mít článek taky jistý přínos, i když na Linuxu plno věcí řešit nemusí, protože v distribuci mají odladěné balíčky.

    Pokud chcete postupovat podle tohoto návodu, potřebujete počítač s Windows a v něm nainstalované něco, co má utilitu make (nejspíš cygwin).

    Úvod

    Tak tedy začněme s tím DocBookem. Nejdřív si ujasněme, co to vlastně znamená psát v DocBooku. DocBook není aplikace, je to datový formát. V jeho psaní nám můžou pomoci různé nástroje, které splňují určité požadavky. Je to podobné jako psaní prostého textu, existuje mnoho textových editorů, které se dají použít, přičemž po uložení je výsledek vždy stejný s kterýmkoliv z nich.

    Formát DocBook je obyčejné XML. Ve specifikaci je popsáno, jak takové konkrétní XML vypadá, jaké obsahuje elementy, jak můžou být elementy zanořeny apod. Technicky je struktura popsána pomocí DTD (DocBook do verze 4.*), nověji se však používá XML Schema (DocBook 5.*), které umí omezení popsat přesněji, než DTD, zejména tedy jsou věci, které pomocí DTD nejde omezit (nebo to je příliš pracné) a pomocí XML schema to jde. Je třeba upozornit, že zejména omezení pomocí DTD není tak striktní, jako samotná specifikace, může tedy vzniknout XML, které je validní podle DTD, ale nevyhoví specifikaci.

    Psaní v DocBooku

    Pro nedočkavé uveďme, jak se vlastně píše takový DocBookový dokument. Pokud jste v oblasti nováčci, sáhnete po nějakém grafickém XML editoru, který už v základu podporuje formát DocBook (nebudu tady rozebírat, co přesně znamená podporovat DocBook, to bych se moc zamotal).

    Mně se osvedčil editor XML mind [1]. Pokud vím, tak má placenou a neplacenou verzi, která je ovšem omezená na nekomerční použití. Na hraní to stačí. Pokud si oblíbíte jiný editor, který umí DocBook 5, není s tím problém, na výsledek to nemá vliv.

    Od takového editoru se očekává, že vede člověka tak, aby napsal validní dokument a nějakou rozumnou grafickou formou mu dokument zobrazí. Tady ale musím zdůraznit, že zobrazení v editoru se pravděpodobně bude velmi lišit od výsledku převedeného do HTML nebo PDF.

    Psaní dokumentu je pak velice jednoduché, asi jako v textovém procesoru (tady trošku přeháním, neplacené editory nejsou žádná sláva). Rozdíl je v tom, že text neoznačujeme podle vzhledu, ale podle významu. Takže nenajdete možnost napsat text tučně, kurzívou nebo jakkoliv jinak. Místo toho najdete prvky pro označení textu například jako parametr, příkaz systému apod. DocBook definuje poměrně hodně elementů, nejlepší přehled je asi v knize [2].

    Zpracování DocBooku -- nástroje

    Když máme dokument napsaný, je třeba s ním dál pracovat, zejména asi konvertovat do různých formátů. Řekněme, že jako výstupní formát chceme (X)HTML a PDF. Navíc budeme chtít použít možností nastavení, které mají standardní XSLT šablony, případně i šablony lehce upravit.

    Pokud člověk umí anglicky, tak nejlepší je čerpat informace přímo od zdroje, v knize DocBook XSL: The Complete Guide [3]. Člověk je ale tvor líný, takže to tady přežvýkám a zestručním.

    Konverze DocBooku může být vícekroková, přičemž v každém kroku potřebujeme jiný program. Pro každý takový krok najdete více programů napsaných k témuž účelu. Naštěstí je v této oblasti skoro všechno standardizováno, takže se dají programy zaměňovat za jiné a všechno by mělo fungovat, pokud nepoužijeme nějakou specialitku.

    Nejdřív potřebujeme něco, co nám umí přechroustat text, který vypadne z XML editoru. Nejjednodušší je asi převod do (X)HTML. Tam nám stačí XML processor, který provede konverzi jedním příkazem. Převod do PDF je dvoukrokový a kromě XML procesoru potřebuje ještě FO processor (FO = formatting objects).

    Po vyzkoušení XML procesorů jmenovaných v [3] jsem skončil u XML procesoru Xalan [4]. Je napsaný v Javě, což sice znamená větší nároky na HW, ale je multiplatformní, což ocení všichni, kteří pendlují mezi více systémy. Zkoušel jsem i Saxon, ale něco mi u něj chybělo, už nevím co.

    Dále potřebujeme něco, čemu se říká XML Resolver, asi to není úplně nutné, ale bude se hodit velice brzo. Já jsem nainstaloval Apache XML Commons Resolver [5]. Vysvětlení významu je v [6].

    Pokud jde o FO procesor, používám FOP [7], opět to je program napsaný v Javě, což mi připomíná, že si musíte nainstalovat i tu Javu. Pokud chcete psát v češtině, stáhněte si balíček s úpravami pro češtinu (viz [8]).

    Teď je čas na XSLT šablony. Naštěstí si už pár lidí dalo tu práci a napsali stylesheety pro převod z DocBooku do jiných formátů, takže nám ušetřili plno práce. Pod poslední revizí je podpsaný Norman Walsh. XSLT stylesheety si stáhnete ze stránek [9]. Na mém počítači mám nainstalován balíček docbook-xsl-ns-1.75.2.tar.gz, to ns v názvu je důležité, je to potřeba pro DocBook verze 5 (vysvětlení je v souboru README uvnitř balíčku). Těmto šablonám budu dále říkat standardní šablony.

    Teď si to všechno nainstalujte podle příslušných návodů (většinu stačí někam rozbalit, já k tomu používám adresář C:/Local). Když máme všechno nainstalované, je čas přejít k nastavení a vlastnímu psaní.

    Zpracování DocBooku -- postup

    Na začátku jsem psal, že budeme chtít konfigurovat a upravovat standardní šablony. Není dobrý nápad upravovat přímo originály, to se raději naučíme jiný postup. Nevím, jak to vysvětlit jednoduše a v malých krocích, tak raději popíši svou konfiguraci, kterou si později upravíte podle svých potřeb. Konfigurační soubory mám adresáři, kde píšu i text, takže neovlivňuje ostatní uživatele, ani jiné projekty.

    Vytvoříme si adresář, kam později uložíme náš napsaný text, budeme mu říkat třeba $WORK.

    V adresáři $WORK vytvoříme soubor CatalogManager.properties s tímto obsahem
    catalogs=catalog.xml;
    relative-catalogs=false
    static-catalog=yes
    catalog-class-name=org.apache.xml.resolver.Resolver
    verbosity=1
    
    Význam položek si asi musíte nastudovat jinde, třeba tady [6].

    Potom vytvoříme soubor $WORK/catalog.xml (viz první řádek souboru výše) s následujícím obsahem.
    <?xml version="1.0"?>
    <!DOCTYPE catalog
       PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
       "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
    
    <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
        <group  xml:base="file:///c:/Local/docbook-xsl/1.75.2/">
            <uri
                name="fo-docbook.xsl"
                uri="fo/docbook.xsl"/>
            <uri
                name="html-docbook.xsl"
                uri="html/docbook.xsl"/>
    
            <uri
                name="xhtml-docbook.xsl"
                uri="xhtml/docbook.xsl"/>
    
            <uri
                name="html-chunk-common.xsl"
                uri="html/chunk-common.xsl"/>
    
            <uri
                name="xhtml-chunk-common.xsl"
                uri="xhtml/c.xsl"/>
    
         <uri
                name="html-changebars.xsl"
                uri="html/changebars.xsl"/>
    
         <uri
                name="xhtml-changebars.xsl"
                uri="xhtml/changebars.xsl"/>
    
        </group>
    </catalog>
    
    Na 7. řádku si upravte cestu ke standardním šablonám.

    Dále si v adresář $WORK vytvoříme podadresář s název custom_xsl a v něm pro začátek podadresář html. V tomto adresáři vytvoříme soubor docbook.xsl s tímto obsahem
    <?xml version='1.0'?>
    <xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:fo="http://www.w3.org/1999/XSL/Format"
        xmlns:d="http://docbook.org/ns/docbook"
        exclude-result-prefixes="d"
    version="1.0">
    
    <!-- <xsl:import href="html-docbook.xsl"/> -->
    <xsl:import href="html-changebars.xsl"/>
    <xsl:param name="paper.type" select="'A4'"/>
    <xsl:param name="section.autolabel" select="1"/>
    <xsl:param name="pixels.per.inch" select="150"/>
    
    </xsl:stylesheet>
    
    No a nakonec si vytvořte Makefile (nejlépe v adresáři $WORK), abyste nemuseli příkazy psát pořád dokola. Můj má tento obsah.
    #user settings
    RM=rm -f
    XALAN_HOME=c:\Local\xalan\2_7_1
    DOCBOOK_HOME=c:\Local\docbook-xsl\1.75.2
    FO_PROCESSOR=c:/Local/fop/fop.bat
    FO_PROCESSOR_CONFIG=-c c:/Local/fop/conf/myfop.xconf
    XML_RESOLVER=C:\Local\xml-commons-resolver\1.2\resolver.jar
    
    #don't touch the rest
    CLASSPATH:= "${CLASSPATH};$(XALAN_HOME)\xalan.jar;$(XALAN_HOME)\xml-apis.jar;$(XALAN_HOME)\xercesImpl.jar;$(DOCBOOK_HOME)\extensions\xalan27.jar;$(XML_RESOLVER)"
    
    XSLT_PROCESSOR=java org.apache.xalan.xslt.Process \
       -ENTITYRESOLVER  org.apache.xml.resolver.tools.CatalogResolver \
      -URIRESOLVER  org.apache.xml.resolver.tools.CatalogResolver
    
    XSLT_FO_STYLESHEET=custom_xsl/fo/docbook.xsl
    XSLT_HTML_STYLESHEET=custom_xsl/html/docbook.xsl
    XSLT_XHTML_STYLESHEET=custom_xsl/xhtml/docbook.xsl
    
    DOCUMENT=userManual
    
    XML_EXT=xml
    HTML_EXT=html
    XHTML_EXT=x.html
    FO_EXT=fo
    PDF_EXT=pdf
    
    #auxiliary targets
    #formatting objects
    $(DOCUMENT).$(FO_EXT): $(DOCUMENT).$(XML_EXT)
    	$(XSLT_PROCESSOR) -xml -in $(DOCUMENT).$(XML_EXT) -out $(DOCUMENT).$(FO_EXT) -xsl $(XSLT_FO_STYLESHEET)
    
    #==============================================================================
    #targets for user
    html: $(DOCUMENT).$(XML_EXT)
    	$(XSLT_PROCESSOR) -xml -in $(DOCUMENT).$(XML_EXT) -out $(DOCUMENT).$(HTML_EXT) -xsl $(XSLT_HTML_STYLESHEET)
    
    xhtml: $(DOCUMENT).$(XML_EXT)
    	$(XSLT_PROCESSOR) -xml -in $(DOCUMENT).$(XML_EXT) -out $(DOCUMENT).$(XHTML_EXT) -xsl $(XSLT_XHTML_STYLESHEET)
    
    pdf: $(DOCUMENT).$(FO_EXT)
    	$(FO_PROCESSOR) -fo $(DOCUMENT).$(FO_EXT) -pdf $(DOCUMENT).$(PDF_EXT)  $(FO_PROCESSOR_CONFIG)
    	$(RM)  $(DOCUMENT).$(FO_EXT)
    
    all: pdf html xhtml
    
    clean:
    	$(RM) $(DOCUMENT).$(FO_EXT) $(DOCUMENT).$(PDF_EXT) $(DOCUMENT).$(HTML_EXT) $(DOCUMENT).$(XHTML_EXT)
    Je potřeba upravit cesty na začátku souboru.

    A teď si v adresáři $WORK vytvořte nějaký minimalistický dokument v DocBooku a uložte ho pod jménem userManual.xml (nebo nějaký jiný, ale pak si upravte i Makefile).

    Teď zkuste napsat příkaz
    make html
    Po kratším chroustání by se měl objevit soubor userManual.html.

    Teď co jste vlastně spáchali:

    Soubor $WORK/custom_xsl/html/docbook.xsl je vaše přizpůsobená XSLT šablona (custom XSLT template). Na začátku načítá šablonu html-changebars.xsl, tento název se pak najde v souboru catalog.xml a zjistí se, že odpovídá souboru html/changebars.xsl v adresáři c:/Local/docbook-xsl/1.75.2/, což má za následek, že ve výsledku budou po stranách čáry tam, kde jsou některé elementy označené jako změněné. Všimněte si, že je tam zakomentovaný import souboru html-docbook.xsl (dřív jsem ho asi používal a pak jenom zakomentoval), můžete si najít, kterému souboru to ve skutečnosti odpovídá. Dále jsou v souboru nastavení, která ovllivňují chování standardních šablon. O nastavení šablon se dozvíte v [10].

    Obdobným způsobem si můžete připravit svoje vlastní šablony pro XHTML a PDF výstup. Příslušné příkazy pak budou make xhtml a make pdf.

    Moje soubory vypadají takto: Soubor $WORK/custom_xsl/xhtml/docbook.xsl
    <?xml version='1.0'?>
    <xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:fo="http://www.w3.org/1999/XSL/Format"
        xmlns:d="http://docbook.org/ns/docbook"
        exclude-result-prefixes="d"
    version="1.0">
    
    <!-- <xsl:import href="xhtml-docbook.xsl"/> -->
    <xsl:import href="xhtml-changebars.xsl"/>
    <xsl:param name="paper.type" select="'A4'"/>
    <xsl:param name="section.autolabel" select="1"/>
    <xsl:param name="pixels.per.inch" select="150"/>
    
    </xsl:stylesheet>
    
    Soubor $WORK/custom_xsl/fo/docbook.xsl
    <?xml version='1.0'?>
    <xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    
    <xsl:import href="fo-docbook.xsl"/>
    <xsl:param name="paper.type" select="'A4'"/>
    <xsl:param name="section.autolabel" select="1"/>
    <xsl:param name="fop1.extensions" select="1"/>
    
    </xsl:stylesheet>
    
    Pokud budete používat PDF výstup, všimněte si v Makefile, že překlad je opravdu dvoufázový, nejdřív se vytvoří soubor s formátovacími objekty a potom teprve PDF.

    Tak to by bylo všechno.

    Odkazy

           

    Hodnocení: 80 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    22.5.2012 21:43 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    A teď řekněte, není tento zápis dostatečným důvodem, proč se DocBook ještě nerozšířil na všechny kouty světa a všechny platformy?

    Nemluvě vůbec o tom, že jsou různé verze DocBooku. Počáteční jsou ještě v SGML nikoli v XML.

    Pak ještě si zkuste ovlivnit výslednoý vzhled dokumentu.

    Já jsme v DocBook psal mnoho let a už mě to tak otrávilo, že to nedělám.

    23.5.2012 13:17 Jakub Noll
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    A v čem píšeš teď?
    23.5.2012 20:31 GeBu | skóre: 27 | blog: zápisky
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    To mě taky zajímá.
    24.5.2012 00:57 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    Je málo možností v čem psát texty?

    DocBook je IMHO kromě XML ethusiasts asi jedna z nejhorších. Zase tak velké možnosti to nemá. Nástroje pro to nic moc. Nastavení pro různé platformy viz článek, a to to dříve bývalo i horší. Prohlížečů, které by zvládlo kompletní XML-FO moc není. Měnit výsledný vzhled dokumentu je na delší studium, myšleno opravdu delší.

    Příliš moc snahy a času za málo muziky.

    V DocBooku jsem napsal hodně, ale vždycky jsem měl takový ten pocit ruských továren. Kde je to všechno nějak přištoubované, visí tam dráty různě ve vzduchu, sem tam zpuchřelá izolace, občas šroub zatlučený kladivem, protože se momentálně nenajde šroubovák. Ve výsledku to ruský mužík nakonec uchodí, ale budí to smíšené pocity. Takový mám dojem z celého DocBooku i z celé kolony těch nástrojů.
    24.5.2012 16:49 Jakub Noll
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    Neodpověděl jsi mi. Ptal jsem se, v čem ty osobně tedy píšeš, neptal jsem se, proč se ti nelíbí Docbook. Ptám se proto, že sám hledám optimální nástroj pro práci s dokumentací a třeba bych se inspiroval. Tedy pokud to není tajná informace, v čem Miroslav Ponkrác píše texty.
    22.5.2012 21:59 frdrx | skóre: 29 | blog: frdrx
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    Silně jsem se sebou bojoval, abych nebyl tím, kdo pod tento zápisek něco napíše jako první, nedejte bozi dokonce napsal nějaký svůj názor na Docbook. Odolám nadále, ale rád bych si přečetl jakoukoli obhajobu Docbooku.
    Patička mi slouží k tomu, abych si lépe poznal svoje příspěvky.
    23.5.2012 20:11 Tomáš | skóre: 31 | blog: Tomik
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    Tak asi proto tu nejsou skoro žádné komentáře, ač téma je jako stvořené pro flame.
    24.5.2012 01:01 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    To já bych si nějakou obhajobu DocBooku také rád přečetl.
    24.5.2012 10:33 michal
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    Existuje nějaký konvertor do docbooku přeba z ODT nebo PDF?
    24.5.2012 21:28 Tomáš | skóre: 31 | blog: Tomik
    Rozbalit Rozbalit vše Re: Jak na DocBook na Windows
    Z PDF asi těžko, přeci jenom PDF popisuje vzhled dokumentu a nezabývá se sémantikou. U toho ODT je naděje větší, vnitřně je to taky nějaké XML, takže asi není problém napsat šablony, které to převedou. Problém je v tom, že DocBook má mnohem jemnější dělení elementů podle významu, než základní šablony ODT, takže něco možná převedeš, ale významově ty elementy nebudou sedět.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.