5.3.07

Editor (g)Vim a DocBook

Co je to DocBook? To je přece jednoduchý :-), stačí se podívat na www.docbook.cz a hned je všechno jasný. Ve zkratce se jedná o XSL styly pro XML soubory. No prostě napíšu si jeden text v XML formátu a ten si pak můžu pomocí XSl stylů převést do různých formátů, nejčastěji do HTML, PDF, FO, HTML help. Výhoda je v tom, že mám pouze jeden zdrojový soubor a toho si vygeneruju, tisknout, na net, na CD.

Aby mi to fungovalo musím vytvářet XML soubory podle předem daných pravidel, nějakého stylu. Docbook 4.* používá DTD a editor Vim umí napovídat co můžu v dané části dokumentu
použít za elementy.

A jak to zprovozním? Celkem jednoduše, nejdřív budu potřebovat script docbook44 z adresy
http://www.vim.org/scripts/script.php?script_id=1463 a dam ho do ~/.vim/autoload/xml/docbook44.vim no a pak je několik možností. Bud si všechno potřebné budu pokaždé zapínat ručně, nebo si udělám malou pomůcku. Člověk je línej tvor a tak jsem si udělal takový miniscriptík i pro následující převod do různých formátů. Nazval jsem ho db2.vim a vypadá takto:

"    File: db2.vim
" Purpose: Konvertovani *.xml DocBook
" Author: Petr Sychra petr.sychra@gmail.com http://www.btuw.com
" Version: 0.1a

source $VIMRUNTIME\ftplugin\xml.vim
XMLns docbook44

function DB2HTML()
echo "Konvertuju DocBook do HTML"
let prikaz="!xsltproc -o ". expand("%:r").".html"." d:\\db\\html.xsl ".expand("%:p")
execute(prikaz)
endfunction

function DB2FO()
echo "Konvertuju DocBook do FO"
let prikaz="!xsltproc -o ". expand("%:r").".fo"." d:\\db\\fo.xsl ".expand("%:p")
execute(prikaz)
endfunction

function FO2PDF_fop()
echo "Konvertuju FO do PDF pomoci FOP"
let prikaz="!d:\\db\\fop\\fop ". expand("%:r").".fo ".expand("%:r").".pdf"
execute(prikaz)
endfunction

" Menu
nmenu DocBook.DB2HTML :call DB2HTML()
nmenu DocBook.DB2FO :call DB2FO()
nmenu DocBook.FO2PDF :call FO2PDF_fop()
Aby se mi scriptík nahrával po otevření xml souboru dám si do svého .vimrc (na woknech _vimrc) příkaz pro automatické nahrávání
autocmd BufRead    *.xml source $VIM/.vim/db2.vim
Není to nic moc, ale funguje :-). Musím mít nainstalovaný program xsltproc a mít ho v "cestě". Pro použití na jiném PC stačí upravit cestu ke stylům *.xsl a k programu FOP.

Když jsem udělal všechno OK, tak v kládacím režimu po stisknutý Ctrl-X Ctrl-O vyskočí nabídka možných elementů.

Odkazy:
Vim http://www.vim.org
DocBook http://www.docbook.cz
xsltproc http://xmlsoft.org/XSLT/
FOP http://xmlgraphics.apache.org/fop/

Žádné komentáře: