Errors in the Man-XML and Texi-XML DTD were fixed.
These DTDs are now used to validate the output coming out of the stylesheets, as part of automated testing. (Validation provides some assurance that the result of the conversions are correct.)
Several rendering errors were fixed after they had been discovered through automated testing.
Two HTML files in the docbook2X documentation were accidentally omitted in the last release. They have been added.
The pure-XSLT-based man-page conversion now supports table markup. The implemented was copied from the one by Michael Smith in the DocBook XSL stylesheets. Many thanks!
As requested by Daniel Leidert, the man-pages stylesheets now
seg DocBook elements.
As suggested by Matthias Kievermagel, docbook2X now supports the
Some stylistic improvements were made to the man-pages output.
This includes fixing a bug that, in some cases, caused an extra blank line to occur after lists in man pages.
There is a new value
utf-8//TRANSLIT for the
--encoding option to db2x_manxml and db2x_texixml.
-m to utf8trans for modifying (a large number
of) files in-place.
Added a section to the documentation discussing conversion performance.
There is also a new test script,
test/mass/test.pl that can exercise docbook2X by
converting many documents at one time, with a focus on achieving
the fastest conversion speed.
The documentation has also been improved in several places. Most notably, the docbook2X man page has been split into two much more detailed man pages explaining man-page conversion and Texinfo conversion separately, along with a reference of stylesheet parameters.
The documentation has also been re-indexed (finally!)
Also, due to an oversight, the last release omitted the stylesheet reference documentation. They are now included again.
Craig Ruff’s patches were not integrated correctly in the last release; this has been fixed.
By popular demand, man-page conversion can also be done with XSLT alone — i.e. no Perl scripts or compiling required, just a XSLT processor.
If you want to convert with pure XSLT, invoke the XSLT
xslt/backend/db2x_manxml.xsl in lieu of the
Make the xmlcharmap2utf8trans script (convert XSLT 2.0 character maps to character maps in utf8trans format) really work.
Added rudimentary support for
entrytbl in man pages; patch by Craig
Added template for
personname; patch by Aaron Hawley.
Fix a build problem that happened on IRIX; patch by Dirk Tilger.
Better rendering of man pages in general. Fixed an incompatibility with Solaris troff of some generated man pages.
Fixed some minor bugs in the Perl wrapper scripts.
There were some fixes to the Man-XML and Texi-XML document types. Some of these changes are backwards-incompatible with previous docbook2X releases. In particular, Man-XML and Texi-XML now have their own XML namespaces, so if you were using custom XSLT stylesheets you will need to add the appropriate namespace declarations.
Fixed a bug, from version 0.8.4, with the generated Texinfo files not setting the Info directory information correctly. (This is exactly the patch that was on the docbook2X Web site.)
Fixed a problem with db2x_manxml not calling utf8trans properly.
Added heavy-duty testing to the docbook2X distribution.
There is now an experimental implementation of
pure XSLT, for those who can’t use the Perl one for whatever
reason. See the
directory. Do not expect this to work completely yet. In
particular, tables are not yet available in man pages. (They are,
of course, still available in the Perl implementation.)
Texinfo conversion does not require XSLT extensions anymore! See Design notes: the elimination of XSLT extensions for the full story.
As a consequence, db2x_xsltproc has been rewritten to be a Perl wrapper script around the stock xsltproc.
-S option to
longer uses libxml’s hackish “SGML DocBook”
parser, but now calls sgml2xml. The corresponding
long option has been renamed to
Fixed a heap of bugs — that caused invalid output — in the XSLT stylesheets, db2x_manxml and db2x_texixml.
Some features such as
funcsynopsis are rendered more nicely.
Man-XML and Texi-XML now have DTDs — these are useful when writing and debugging stylesheets.
--plaintext option to
Updates to the docbook2X manual. Stylesheet documentation is in.
Incorporated Michael Smith’s much-expanded roff character maps.
There are some improvements to the stylesheets themselves, here and there.
Also I made the Texinfo stylesheets adapt to the XSLT processor automatically (with regards to the XSLT extensions). This might be of interest to anybody wanting to use the stylesheets with some other XSLT processor (especially SAXON).
Fixed a couple of bugs that prevented docbook2X from working on Cygwin.
Fixed a programming error in utf8trans that caused it to segfault. At the same time, I rewrote parts of it to make it more efficient for large character maps (those with more than a thousand entries).
The Perl component of docbook2X has switched from using
libxml-perl (a SAX1 interface) to XML-SAX (a SAX2 interface). I had
always wanted to do the switch since libxml-perl is not maintained,
but the real impetus this time is that XML-SAX has a pure Perl XML
parser. If you have difficulties building
XML::Parser on Cygwin, like I did, the Perl
component will automatically fall back on the pure Perl parser.
Added support for tables in man pages. Almost all table features that can be supported with tbl will work. The rest will be fixed in a subsequent release.
Copied the “gentext” stuff over from Norman Walsh’s XSL stylesheets. This gives (incomplete) localizations for the same languages that are supported by the Norman Walsh’s XSL stylesheets.
Although incomplete, they should be sufficient for localized man-page output, for which there are only a few strings like “Name” and “Synopsis” that need to be translated.
If you do make non-English man pages, you will need to revise the localization files; please send patches to fix them afterwards.
Rendering of bibliography, and other less common DocBook elements is broken. Actually, it was probably also slightly broken before. Some time will be needed to go through the stylesheets to check/document everything in it and to add anything that is still missing.
--info option to
db2x_texixml, to save
typing the makeinfo
--stringparam option in
--string-param, though the former
option name is still accepted for compatibility.
Added the stylesheet for generating the XSLT reference documentation. But the reference documentation is not integrated into the main docbook2X documentation yet.
docbook2X no longer uses SGML-based tools to build. HTML documentation is now built with the DocBook XSL stylesheets.
Changed the license of this package to the MIT license. This is in case someone wants to copy snippets of the XSLT stylesheets, and requiring the resulting stylesheet to be GPL seems too onerous. Actually there is no real loss since no one wants to hide XSLT source anyway.
Switched to a newer version of autoconf.
Fixes for portability (to non-Linux OSes).
A number of small rendering bug fixes, as usual.
Texinfo menu generation has been improved: the menus now look almost as good as human-authored Texinfo pages and include detailed node listings (@detailmenu) also.
Added option to process XInclude in db2x_xsltproc just like standard xsltproc.
Moved docbook2man-spec.pl to a sister package, docbook2man-sgmlspl, since it seems to be used quite a lot.
There are now XSLT stylesheets for man page conversion, superceding the docbook2manxml. docbook2manxml had some neat code in it, but I fear maintaining two man-page converters will take too much time in the future, so I am dropping it now instead of later.
Fixed build errors involving libxslt headers, etc. that plagued the last release. The libxslt wrapper (name changed to db2x_xsltproc, formerly called docbook2texi-libxslt) has been updated for the recent libxslt changes. Catalog support working.
Transcoding output to non-UTF-8 charsets is automatic.
Made some wrapper scripts for the two-step conversion process.
More bug squashing and features in XSLT stylesheets and Perl scripts. Too many to list.
Added docbook2texi-libxslt, which uses libxslt. Finally, no more Java is necessary.
Added a C-based tool to translate UTF-8 characters to arbitrary (byte) sequences, to avoid having to patch recode every time the translation changes. However, Christoph Spiel has ported the recode utf8..texi patch to GNU recode 3.6 if you prefer to use recode.
As usual, the documentation has been improved.
The documentation for the XSLT stylesheets can be extracted
automatically. (Caveat: libxslt has a bug which affects this
process, so if you want to build this part of the documentation
yourself you must use some other XSLT processor. There is no
jrefentry support in docbook2X
yet, so the reference is packaged in HTML format; this will change
in the next release, hopefully.)
Build system now uses autoconf and automake.
Removed old unmaintained code such as docbook2man, docbook2texi. Moved Perl scripts to
perl/ directory and did some renaming
of the scripts to saner names.
Better make system.
Debugged, fixed the XSLT stylesheets more and added libxslt invocation.
Cut down the superfluity in the documentation.
Fixed other bugs in docbook2manxml and the Texi-XML, Man-XML tools.
docbook2man-spec.pl has an option to
strip or not strip letters in man page section names, and xref may
now refer to
refsect. I have not personally
tested these options, but loosing them in the interests of release
early and often.
Menu label quirks,
non-conformance, and vertical simplelists with multiple columns
fixed in docbook2texixml.
Brought docbook2manxml up to speed. It builds its own documentation now.
Arcane bugs in texi_xml and man_xml fixed.
Introduced Texinfo XSLT stylesheets.
Bugfixes to texi_xml and docbook2texixml.
Produced patch to GNU recode which maps Unicode characters to
the corresponding Texinfo commands or characters. It is in
ucs2texi.patch. I have already sent
this patch to the maintainer of recode.
Both docbook2texixml transform into intermediate XML format which closely resembles the Texinfo format, and then another tool is used to convert this XML to the actual format.
This scheme moves all the messy whitespace, newline, and escaping issues out of the actual transformation code. Another benefit is that other stylesheets (systems), can be used to do the transformation, and it serves as a base for transformation to Texinfo from other DTDs.
Texinfo node handling has been rewritten. Node handling used to
work back and forth between IDs and node names, which caused a lot
of confusion. The old code also could not support DocBook
sets because it did not keep
track of the Texinfo file being processed.
As a consequence, the bug in which docbook2texixml did not output the
@setinfofile is fixed.
xreflabel handling is also sane now.
In the new scheme, elements are referred to by their ID
(auto-generated if necessary). The Texinfo node names are generated
before doing the actual transformation, and subsequent
texinode_get simply looks up the node name when
given an element.
The stylesheet architecture allows internationalization to be implemented easily, although it is not done yet.
The (non-XML-based) old code is still in the CVS tree, but I’m not really interested in maintaining it. I’ll still accept patches to them, and probably will keep them around for reference and porting purposes.
There are some changes to the old code base in this new release; see old change log for details.
The documentation has been revised.
I am currently rewriting docbook2man using the same transform-to-XML technique. It’s not included in 0.5.9 simply because I wanted to get the improved Texinfo tool out quickly. Additional XSLT stylesheets will be written.