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.vimAby 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í
" 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()
autocmd BufRead *.xml source $VIM/.vim/db2.vimNení 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:
Okomentovat