logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

docbook2man-spec.pl - convert DocBook RefEntries to man pages

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 onsgmls (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:

       <manpage><aliasmanpage>

       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.

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.

Name

       docbook2man-spec.pl - convert DocBook RefEntries to man pages

Requirements

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

Synopsis

sgmlspldocbook2man-spec.plonsgmls [ sgmldocument ]|sgmlspldocbook2man-spec.pl

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)
         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.   [Comment:  text  after  enclosed  lists  (and SS blocks) will break
         docbook2man] If we do this, more people can use DocBook.

See Also