So you've finally reached the Htm4l homepage...

WARNING: If you prefer to remember html syntax, and you like to waste your time typing it, and you enjoy tedious editing work (for example, making the same change in tens or hundreds of different files when you feel like changing their backgrounds), htm4l is not for you. You might want to click the BACK button on your browser now.

On the other hand, if you're sick to death of editing raw sewage (html)...

What is Htm4l?

Htm4l is a collection of m4 macros that make it a breeze to produce html. Using the htm4l macros, and macros of your own, you can produce html without needing to understand, remember, or type the ugly raw stuff yourself. For example, why type this

<a href="">my homepage</a>

when you can instead type this

m4_http(`', `my homepage') ?

Why would I type this horrible unreadable mess

<a href="">Terry Jones</a> (<a href=""></a>)

when I can instead type

m4_name_url_email(`Terry Jones', `', `')

or, even better, just this

m4_my_me ?

Which is exactly what I did type in this file to produce the html that looks like Terry Jones (terry <AT> you see at the bottom of this page (and the one in this sentence of course).

To use htm4l, you write files with a .htm4l suffix and convert them to .html files using m4 and my macros. M4 is a venerable but sadly neglected UNIX macro processor.


* See what Tom Waits might have said about htm4l.
* Read why you might want to use htm4l.
* Look at some htm4l examples.
* Download htm4l.
* Read the htm4l installation instructions.
* Read details about using htm4l.
* You should expect to want to enhance htm4l with your own special-purpose macros.
* Read about problems with using m4 to produce html.
* Some thoughts on server-side htm4l parsing.
* Try to avoid going overboard with htm4l macros.
* Links to other macro-based html programs.
* If you use emacs, you might want to try these tricks.
* I am also available for hire writing custom htm4l macros for your site's needs.

Terry Jones (terry <AT>
Last modified: Mon Oct 2 02:22:03 CEST 2006