The most recent version of htmlpp is located at http://www.imatix.com/.
You can download it from htmlpp.zip.
The Libero documentation is one example of htmlpp in action.
Download the archive lrdoc.zip to get hold of a set of text
and definition files for htmlpp.
If you want to change htmlpp, get a hold of the Camel Book
(Programming Perl), and the Libero documentation.
- Version 4.2a published 20 October 1998
Thanks to Enrique Bengoechea <email@example.com> for
the many improvements to htmlpp.
- default input file extension changed from .txt to .htp.
- added French support in date formatting routines.
- completed the character entity references for accented characters.
- added -charset command-line option.
- corrected a fault we added to the &relpath() function.
- added support for attributes in links.
- added support for relative references.
- added support for multilanguage symbols, e.g. $(home.es) and
- added .for loop that queries flat-text databases.
- Version 4.1a published 5 August 1998
- table of contents is now built at very end, before final pass.
- added &pageref() intrinsic function (thanks to Alan Silver).
- command-line options can be supplied in shorted form (e.g. -d
- added $(DIR) symbol for specifying the target directory.
- added &relpath() function (thanks to Enrique Bengoechea).
- Version 4.0g published 24 July 1998
- added -noquote option for the .macro command.
- corrected htmlpp to allow nested intrinsice functions.
- corrected bug in &file_time() function.
- Version 4.0f published 4th June 1998
- added DIR_HREFL field for .build dir
- corrected error in &date function (thanks to Enrique Bengoechea).
- added support for multilanguage &date function (also thanks to EB).
- added the .pipe command and PIPE_HEADER, PIPE_FOOTER blocks.
- added -nofunc option (thanks to Alister Bulman).
- added -nosplit option for the .macro command.
- Version 4.0e published 31 May 1998
- added a number of date-handling intrinsic functions.
- .for loops generate a .define command for their loop variable (thanks
to Bernard de Rubinat).
- corrected an error in the -page option.
- default value for an anchor is now the anchor title.
- Version 4.0d published 9 May 1998
- $(*name) was failing for simple anchors.
- .define commands are kept through passes, which makes loops
work much better (thanks to Bernard de Rubinat).
- added &system() intrinsic function (thanks to Keith Dart).
- no longer does case-conversion in .build dir blocks.
- removed warning on long filenames.
- added -page switch for selective page generation.
- Version 4.0c published 18 April 1998
- Added DIR_SIZEK and DIR_SIZEM directory block variables
- Finally, you can escape variables in macro text so that
they are only expanded in the next pass.
- LINEMAX now defaults to 0 (no warnings).
- Worked-around bug in Perl which caused htmlpp to block when
macro arguments contained single quote '.
- &(expr) was not working - fixed by James Thieler.
- Symbols that refer to anchors now produce anchor title if possible,
thanks to Craig Smith.
- Version 4.0b published 24 February 1998
- Correctly handles comments in macro definitions
- Allows .page commands to be built by .for loops
- Underlines in macro arguments are no longer replaced by spaces.
- Lines ending in '\' are output without trailing newlines
- Version 4.0a published 07 February 1998
- Searches LIBPATH, then PATH for document files.
- Multiline .echo commands now work.
- Added various new intrinsic functions.
- Intrinsic &time() did not work - fixed.
- Symbol expansion code rewritten to allow any level of embedding.
- Version 3.0 published 16 June 1997.
V3.9e - .for command changed to handle variable expansion in a
smarter manner: for loop variables are expanded, but others are copied
through to next pass.
V3.9d - .block commands are no longer interpreted in the first
pass; this lets you change headers and footers within a document.
$(*symbol) was wrongly translated sometimes.
V3.9c - added &image_width() and &image_height() intrinsic
functions; added $(TOC_LEVEL) variable.
V3.9b - reversed changes of version 3.8; macros expand variables
immediately. This was needed to correctly generate tables of contents.
Also changed %(VAR) behaviour to match documentation - if variable is
not defined, no error message is issued.
V3.9a - added anchor titles, $0, and $#.
V3.9 - added header level numbering and $+ symbol; added -env
V3.8 - variables in macro text are translated in following pass.
V3.7 - correctly uses htm variable for output files.
V3.6 - added guru_opt.fmt file for finer GuruMode control.
V3.5 - improved GuruMode, again again.
V3.4 - improved GuruMode, again.
V3.3 - added $(DOCBASE) variable; improved multiline macros,
V3.2 - no longer complains on forward anchors references.
Removed .guru command and reworked GuruMode.
V3.1 - updated some functions and improved the doc.
V3.00 - Added macro capabilities; added GuruMode; fixed some
incompatibilities with Perl 4; added .for autosplit feature; \.
replaced by . in whole line, not just at start; added support for
- Version 2.2 published 25 May 1997.
V2.21 - added intrinsic function syntax, and &date().
V2.20 - &("...") permits Perl text including '(' and ')';
Delays translation of symbols in .for loops until loop is
- Version 2.1 published 8 Mar 1997.
V2.18 - .include also allows file with path name.
V2.17 - cosmetic changes.
V2.16 - search PATH path for .include'd files.
V2.15 - cosmetic changes.
V2.14 - ".define xx = expr" now expands variables first.
V2.13 - .build dir always lists filenames in lowercase.
V2.11 - variable expansion improved a little.
V2.12 - cosmetic changes.
V2.10 - .define command is resolved as late as possible,
instead of immediately. .For loops may be indented; $for_list
is accessible locally inside each level. Minor documentation
cleanups. Fixed error in .if block parsing. Lots of cosmetic
changes to eliminate warnings when 'perl -w' used. Corrected
misnumbering of HTML headers.
- Version 2.0 published 17 Feb 1997.
V2.07 - minor code cleanups;
V2.06 - correction in .page parsing code for $(TITLE);
added %(...) for environment variables.
V2.05 - correction in symbol replacement code.
V2.04 - more corrections for Perl 5.
V2.03 - minor corrections for Perl 5.
V2.02 - added notion of local blocks, -debug switch.
V2.01 - added &(...) symbol; added .include `command`;
blocks can now contain action lines; added index_open,
index_close, and index_entry blocks; rewrote dialog to do
multipass processing. Whew. Oh yeah: added .for/.endfor as
asked for by Dave Rockwell (firstname.lastname@example.org).
- Version 1.6 published 14 Jan 1997.
V1.62 - added .include `command` function.
- Version 1.5 published 4 Nov 1996.
V1.61 - error in code that added '.txt' extension.
V1.60 - added autoincrement/decrement symbols, permitted
multiple filenames on command line.
V1.55 - '.ignore page' ignores next .page in index table.
- Version 1.4 published 9 Jun 1996.
V1.54 - .endblock preferred to .end.
V1.53 - commands can continue over several lines, spaces
allowed after ".".
V1.52 - added $(symbol?value) and improved doc.
V1.51 - modified for Perl 5, thanks to Ewen McNeill.
V1.50 - supports user-defined blocks.
V1.41 - log errors in separate listing file.
- Version 1.3 published 13 May 1996.
V1.31 - improved documentation and packaging.
- Version 1.2 escaped around 13 April 1996.
V1.22 - headers anchors changed to include whole line.
V1.21 - sorted '.build dir' entries by name.
- Version 1.1 released 6 April 1996.
- Version 1.0 written 3 April, 1996.