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 support the
segmentedlist
,
segtitle
and seg
DocBook elements.
As suggested by Matthias Kievermagel,
docbook2X now supports the code
element.
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.
Added -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 stylesheet in
xslt/backend/db2x_manxml.xsl
in lieu of the db2x_manxml Perl script.
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 Ruff.
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 db2x_manxml and db2x_texixml using pure XSLT,
for those who can’t use the Perl one for whatever reason.
See the xslt/backend/
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.
The -S
option to db2x_xsltproc
no longer uses libxml’s hackish “SGML DocBook” parser, but now
calls
sgml2xml.
The corresponding long option has been renamed to
--sgml
from --sgml-docbook
.
Fixed a heap of bugs — that caused invalid output — in the XSLT stylesheets, db2x_manxml and db2x_texixml.
Some features such as cmdsynopsis
and funcsynopsis
are rendered more nicely.
Man-XML and Texi-XML now have DTDs — these are useful when writing and debugging stylesheets.
Added a --plaintext
option to db2x_texixml.
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.
Added --info
option to db2x_texixml,
to save typing the makeinfo command.
Rename --stringparam
option
in db2x_xsltproc to --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.
Bug fixes.
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.
n
Menu label quirks, paramdef
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.
Updated documentation.
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
set
s 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.