Other html-producing macro packages

I am aware of several other html-producing macro packages: Htxp, Orb, Gtml, Htp, Docugen, PreHTML, FOT, bhs (written by Richard K. Lloyd (R.K.Lloyd@csc.liv.ac.uk)), htmlscript, and Hmml.

There are probably others, I don't have time to keep track of them all. Also, try looking in Yahoo!'s collection of this sort of thing.

I used to have some comments here about these packages, but now there are too many for me to keep up. It has also become hard to make accurate generalizations. You'll have to check them out for yourself & draw your own conclusions.

One thing that I think can still fairly be said of the packages above that are macro-based preprocessors, is that most of them (not all), use specially-written programs to deal with macro expansion and these usually do not approach the power you get from using m4 as your macro expander. As a result, they usually cannot offer the sorts of things that can be done with htm4l.

These special-purpose programs usually replicate a few of the most basic features of m4. Most are currently limited to file inclusion, macros without arguments, and timestamps. Some of them also reinvent simple aspects of make.

That's not to say that these programs will not be more useful in the future, because they can be developed as much as their creators like, and they may well end up doing things that are difficult with m4. One advantage they do have is that many of them run under windows and macs, so if it is your misfortune to be stuck with one of those systems, you may not be able to use htm4l. I'm not sure if any version of m4 is available for PCs or macs. Regarding this, François Pinard tells me (June 10, 1996):

There is a port of an old m4 to GNUish MSDOS working on 8088's. Without being completely sure, I think there is a better version coming with DJGPP, requiring 80386 or better. For the Mac, I do not know what exists or not.

Just for your information, René Seindal <seindal@kb.dk> is back and is now the GNU m4 maintainer.

Also, Paul West pdub@pacbell.net tells me:

1. There is a public-domain implementation of m4 written in the C-language. The source code for this is available in the file ftp://ftp.germany.eu.net/pub/os/programming/tools/m4/m4.tar.gz

2. An early version of gnu m4 was ported to MS-DOS on the PC for the gnuish project. The C-language source code and ready-to-run executable are in the file ftp://ftp.simtel.net/simtelnet/gnu/gnuish/gnum4.zip.

I would expect this code to run in a DOS box under Windows 3.1 or 95, although I have not had the opportunity to try it yet.

3. As far as I know, there is no port of m4 to the djgpp C-language system yet, nor do I know of anyone planning to do it. If it is ever done, it should show up in the djgpp archive at ftp://ftp.simtel.net/simtelnet/gnu/djgpp.

At the moment, you'll probably get less mileage from these macro processors than from htm4l. In the long run, they may develop into more powerful macro processors than m4 (or better tailored to html production). Make up your own mind about what to use. Follow the links at the top of this page.

You might also like to check out On The Fly which allows you to embed perl in your text. I find htm4l much more concise and also powerful enough to do what I want with html. But it pushes m4 a little much at times (e.g., the date example). Using perl is overkill for most simple html-producing tasks, but really great for others. Because On The Fly and htm4l are both filters, you can always use them both.

Another perl front-end to produce html is htmlpp which seems focussed on letting you create a set of html files by editing one file which perl breaks up for you. This lets you create forward/backward links easily. htmlpp also has lots of other features and looks pretty good. Of course, you get the advantages of having perl underneath you, so you can do pretty much anything.

A person who uses m4 to produce something that is fed to perl is Abigail (abigail@mars.ic.iaf.nl) (she uses her own m4 macros, not mine).

Back to the htm4l home page.
© Terry Jones (terry <AT> jon.es). Last modified: Mon Oct 2 02:22:03 CEST 2006