---
name: "docbook2man-spec"
section: "1"
platform: "linux"
package: "docbook2man"
version: "0.5.1-6"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/docbook2man-spec"
---

# docbook2man-spec(1)

convert DocBook RefEntries to man pages

## NAME

docbook2man - convert DocBook RefEntries to man pages

## SYNOPSIS

**sgmlspl** **sgmlspl-specs/docbook2man-spec.pl**

**nsgmls** \[ *sgml document* \] **\| sgmlspl** **sgmlspl-specs/docbook2man-spec.pl** \[ **--section** *label* \]  \[ **--appsection** *label* \]  \[ **--defsection** *label* \]  \[ **--date** *date* \]  \[  **\[ --lowercase \]  \[ --preserve-case \]**  \]

## DESCRIPTION

**docbook2man** is a sgmlspl spec file that produced man pages (using the -man macros) from DocBook RefEntry markup.

The program reads ESIS produced by nsgmls (or other SGML parsers) from standard input. Markup not found in RefEntry is discarded.

Its output, the converted man pages, are written to the current directory. If RefMeta information is not specified in a  RefEntry, then the man page will be written to standard output.

The file *manpage.links* will also be created, which contains any aliases of the manpages generated. This file is in the format:

```
<man page> <alias manpage>

```

The *manpage.refs* file keeps track of XRef references. Note that if the input document has any forward references, then **docbook2man** may have to be invoked twice (the first time updating *manpage.refs*) to resolve them.

## OPTIONS

- **--appsection** *label*

  If Application is found in a RefEntryTitle, then the section defaults to this value.

- **--defsection** *label*

  The default section for the generated man page, if the source RefMeta does not contain a ManVolNum.

- **--section** *label*

  Sets both **--appsection** and **--defsection**.

- **--date** *date*

  Sets *date* as the date to use for man pages without Date markup (in DocInfo. If this option is not specified, the default date is the current date.

  Note that the *date* must be given as one argument; i.e. shell quoting may have to be used for dates with spaces.

- **--lowercase**

  Man page filenames will be lowercased.

- **--preserve-case**

  Do not **--lowercase**. This is the default.

## 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

Obvious stuff:

- •

  Fix **docbook2man** breakages found in the test documents, especially *weird.sgml*.

- •

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

- •

  Produce cleanest, readable man output as possible (unlike some other converters). Follow Linux [**man**(7)](/man/7.md) convention. As conversion to man pages is usually not done very often, it is better to be slower/more complicated than to produce wrong output. Also if someone wants to give up using DocBook for whatever reason, the last-converted man pages can then be maintained manually.

- •

  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**.

- •

  Support other (human) languages. But what to do with non-ASCII charsets? SGMLSpm doesn't report them and **roff** does not grok them.

If we do this, more people can use DocBook.

## 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.
