manpages de troff a docbook con doclifter

He estado haciendo unas pruebas con doclifter para convertir las páginas man de Troff a Docbook y a modo de log este es el resultado:

$ mkdir temp && cd temp

$ cp /usr/share/man/es/man8/mount.8.gz .

$ gunzip mount.8.gz

$ doclifter mount.8
/usr/bin/doclifter:6373: Warning: ‘with’ will become a reserved keyword in Python 2.6
/usr/bin/doclifter:6374: Warning: ‘with’ will become a reserved keyword in Python 2.6
/usr/bin/doclifter:129: DeprecationWarning: The sre module is deprecated, please import re.
import sys, os, glob, re, sre, string, exceptions, copy, tempfile, time, pprint

Revisando el formato generado, el DOCTYPE es el siguiente:

<?xml version=»1.0″ encoding=»ISO-8859-1″?>
<!DOCTYPE refentry PUBLIC «-//OASIS//DTD DocBook XML V4.1.2//EN» «http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd»>

<refentry id=’mount8′>

<refentryinfo><date>14 Septiembre 1997</date></refentryinfo>
<refmeta>
<refentrytitle>MOUNT</refentrytitle>
<manvolnum>8</manvolnum>
<refmiscinfo class=’date’>14 Septiembre 1997</refmiscinfo>
<refmiscinfo class=’source’>Linux 2.0</refmiscinfo>
<refmiscinfo class=’manual’>Manual del Programador</refmiscinfo>
</refmeta>
<refnamediv id=’name’>
<refname>mount</refname>
<refpurpose>monta un sistema de ficheros</refpurpose>
</refnamediv>

<refsect1 id=’sección’><title>Sección</title>
<para></para>
</refsect1>

</refentry>

Suponiendo que la conversión pudiera ser reversible, de forma que se volvieran a poder usar dentro del sistema de páginas man de cualquier Linux (lo cual aún no lo he probado), he probado a convertir a pdf con objeto de ver si el la salida de doclifter está «bien formado», y este es el resultado:

$ xmlto pdf mount.8.xml
Making portrait pages on a4 paper (210mmx297mm)
PassiveTeX is needed for this format, but it is not installed. Please install
the passivetex package.

Con esta solución no me realiza la conversión, y el paquete PassiveTeX no lo encuentro en la distribución, y tampoco he indagado más en este aspecto (*)

$ docbook2pdf mount.8.xml
Using catalogs: /etc/sgml/catalog
Using stylesheet: /usr/share/docbook-utils/docbook-utils.dsl#print
Working on: /home/enramos/Temp/manpages/doclifter/mount.8.xml
Done.

Me convierte sin problemas a pdf.

$ xsltproc -o mount.fo /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl mount.8.xml
Making portrait pages on A4 paper (210mmx297mm)
Read /usr/share/doc/docbook-xsl/README.Debian.gz section 5(a).

$ fop mount.fo -pdf fop_mount.8.pdf
23-dic-2008 15:40:12 org.apache.fop.hyphenation.Hyphenator getHyphenationTree
GRAVE: Couldn’t find hyphenation pattern en

También obtengo un pdf

(*) Al parecer la conversión de Docbook a pdf no funciona de forma automática con xmlto pero podemos hacerlo en dos pasos:

$ xmlto fo ___.xml

$ fop -fo ___.fo -pdf ___.pdf

Esta entrada tiene un comentario

  1. enramos

    He vuelto a ejecutar la prueba y en esta ocasión he obtenido más «warning»:

    /usr/bin/doclifter:388: Warning: ‘as’ will become a reserved keyword in Python 2.6
    /usr/bin/doclifter:389: Warning: ‘as’ will become a reserved keyword in Python 2.6
    /usr/bin/doclifter:6373: Warning: ‘with’ will become a reserved keyword in Python 2.6
    /usr/bin/doclifter:6374: Warning: ‘with’ will become a reserved keyword in Python 2.6
    /usr/bin/doclifter:129: DeprecationWarning: The sre module is deprecated, please import re.
    import sys, os, glob, re, sre, string, exceptions, copy, tempfile, time, pprint

    ¿Necesita doclifter una actualización? Que putada no saber Python… programar en general no es lo mío, aunque algún día habrá que ponerse ¿no?.

Deja un comentario