abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:22 | Upozornění

    Společnosti Ticketmaster byla odcizena databáze s osobními údaji (jméno, adresa, telefonní číslo a část platebních údajů) 560 miliónů zákazníku. Za odcizením stojí skupina ShinyHunters a za nezveřejnění této databáze požaduje 500 tisíc dolarů [BBC].

    Ladislav Hagara | Komentářů: 0
    31.5. 23:55 | Nová verze

    Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    31.5. 17:33 | Nová verze

    Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.

    Ladislav Hagara | Komentářů: 27
    31.5. 17:11 | Komunita

    Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.

    Ladislav Hagara | Komentářů: 3
    31.5. 12:55 | Nová verze

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    31.5. 11:22 | Zajímavý článek

    David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …

    Ladislav Hagara | Komentářů: 9
    30.5. 22:44 | Nová verze

    Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.

    Ladislav Hagara | Komentářů: 0
    30.5. 21:22 | Zajímavý článek

    Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:44 | Pozvánky

    V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:22 | Nová verze

    Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 17
    Rozcestník

    Jak na DocBook na Windows

    21.5.2012 21:52 | Přečteno: 1496× | 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.