DocBook Utils
Prev |  | Next

# docbook2texi-spec.pl

## Name

docbook2texi-spec.pl -- convert DocBook `Book`s to Texinfo documents

## Synopsis

sgmlspl {docbook2man-spec.pl}

nsgmls [`sgml document`]
| sgmlspl {docbook2texi-spec.pl} [`basename`]

## Description

docbook2texi is a sgmlspl spec file that produces GNU Texinfo documents from DocBook documents.

The program reads ESIS produced by nsgmls (or other SGML parsers) from standard input. Currently the document element must be `Book`, otherwise the results are undefined.

Its output, the converted Texinfo document, is written to standard output.

The file ``basename.refs`` will also be created, which contains all the nodes in the document and their immediate 'child' nodes. As node processing always require forward references, docbook2texi must be run twice for each document: the first time to build the references, and the second to actually generate a valid document.

## Requirements

The SGMLSpm package from CPAN. This package includes the sgmlspl script that is also needed.

## Limitations

Trying docbook2man on non-DocBook or non-conformant SGML results in undefined behavior. :-)

This program is a slow, dodgy Perl script.

This program does not come close to supporting all the possible markup in DocBook, and may produce wrong output in some cases with supported markup.

## To do

- How the hell do you represent a backslash (`\`) in Texinfo!!@? I've tried `\\` but TeX complains about it.

- Fix breakages found in the test documents.

- Add new element handling and fix existing handling. Be robust.

- Make it faster. I think most of the speed problems so far is with parsing ESIS. Rewrite `SGMLS.pm` with C and/or get input directly from SP.

- There are some dependencies on elements occurring when they are actually optional (according to the DTD). We need to fix that (preferably) or prominently state the requirements.

- Allow other more common document elements.

- Separate out node referencing to a separate script. Not only would it make it faster/easier to maintain because it's separate from the main code, but also I would like it to evolve into an automatic DocBook `ToC` generator.

## Copyright

Copyright (C) 1998-1999 Steve Cheng `<steve@ggi-project.org>`

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

You should have received a copy of the GNU General Public License along with this program; see the file `COPYING`. If not, please write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

Prev | Home | Next
docbook2man-spec.pl | Up | Application programming interface