The most recent version of xhtmlpp is located at
http://www.katspace.com//tools/xhtmlpp. You can download it from xhtmlpp.tgz.
If you want to change xhtmlpp, get a hold of the Camel Book
(Programming Perl), and the Libero documentation.
Libero is a tool written by iMatix, though I didn't actually
end up changing any parts of htmlpp which depended on libero, you may
wish to.
Xhtmlpp is based on htmlpp version 4.2a
from iMatix and is upwardly-compatible with it.
In other words, if you have been using htmlpp, then
xhtmlpp will work perfectly well with your old files.
Caveat: if the tags are actually HTML rather than XHTML, then xhtmlpp
will still work fine, your pages simply won't be XHTML, and will contain
a mixture of HTML and XHTML tags which most browsers will still
display perfectly well, since they're more forgiving than validators.
I was a happy htmlpp user. My entire website (many files)
was based on it. I customized my "prelude.def" to my hearts content.
I had made a few enhancements to htmlpp a couple of years ago
and passed them on to the iMatix people, but got no response. They have
made no changes to the program since 1998, so I gave up on them. When I
wanted to convert my website to be XHTML compliant, I found there were
things in htmlpp that wouldn't let me do that, so I fixed them.
Thank God for the GPL!
So I'm giving this back to the community, so they can continue to
use such a great tool and be XHTML compliant.
Kathryn Andersen, July 2001
Obviously I can't track all the differences, if the two
programs diverge more. But version 1.0 of xhtmlpp
has the following major differences from version 4.2a of htmlpp:
- XHTML support!
This includes the addition of the .toc_open_inner
.toc_close_inner commands.
The .toc_open(close)_outer commands were added simply
for symmetry.
- -notable option for Guru mode
- level 4 headers in Guru mode
- italic, bold, "underline" formatting in Guru mode
(and -nounderline option)
- short-lines in Guru mode (with -l option)
- EXT is set to html by default
- The default extension is .xhp
- Uses Image::Size module to calculate image sizes
(Image::Size supports more than just GIF and JPG).
- The &image_size intrinsic
(14 August 2001)
- fixed bug with the generation of table of contents for headers
which already contain anchors.
- corrections of a few notices and names, added documentation of
XHTMLPP_PATH
(3 August 2001)
- changed the way the tarball is built so that it doesn't contain
the CVS admin directories, fixing problems with tags (ugh!)
- changed the order of entries in the CHANGELOG.txt file to be
most recent first.
(3 August 2001)
- enable the XHTMLPP_PATH environment variable to take precedence over
the LIBPATH environment variable for searching for files (good for
mixed htmlpp and xhtmlpp sites)
- copied the old prelude.def (and other .def) files to the doc/
directory and changed the default prelude.def so it will work with
files "out of the box"
(July 2001)
- EXT is set to html by default
- created examples directory with examples
- updated the documentation
- created xhtmlpp web page
- added -nounderline option when I found that this CHANGELOG couldn't
be processed with sensible outcome in guru mode!
(June/July 2001)
- changed name to xhtmlpp
- put sources under local CVS, with Makefiles
- changed .pl files to Perl Module .pm files, added POD to files
- added toc_open_inner and toc_close_inner
and toc_open_outer and toc_close_outer
- removed old image-size code, and use Image::Size everywhere
altered the intrinsic_image_size to use imgsize and put quotes around
the returned string
- changed underline mode to produce bold tt text instead of underline,
since the <u> tag is depreciated.
- many other changes to make the tags XHTML compliant
- fixes to guru mode URL parsing (April 1999)
- added level 4 headers to guru mode (May 1999)
- added italics, bold and underline to guru mode (May 1999)
- added one level of nesting to bulleted lists in guru mode
- added -notable option for guru mode
- added support for short-lines in guru mode
- added <URL:> URL tag to guru mode
- made changes to make support for HTML 4.01 easier (July 2001)
- used Image::Size module to add &image_size intrinsic
when I found that &image_width and &image_height only support GIF and JPG
(July 2001)