htmlpp, an html preprocessor ?


htmlpp is a perl program I wrote starting back in 1994 to format and maintain html pages and web sites. At the time, I was playing a lot with my own web pages. Obviously, it was solving a widespread need, and several persons across the world started using it. Also, many people came up with their own solutions, and there are many other htmlpp's around. Now times have changed, and I guess that most of the problems htmlpp was designed to tackle with can better be solved using recent tools like PHP, XML and style sheets. However, from the hits I get on the web page, htmlpp seems to still be in use!

Anyway, I now have other games to play with, and I try to spend as little time as possible dealing with web pages. Hence, I am not using htmlpp intensively myself. That makes me a very bad developper, and htmlpp has not evolved recently. If anybody is interested in taking over the development, please contact me!

Note that the web page for htmlpp is now hosted at Source Forge.


htmlpp is an HTML preprocessor based on a system of macro expansion and interfaced with perl.

It allows to drastically reduce the amount of context HTML stuff to write and to focus on the contents.

For example, a single macro can handle a standard footer for the document: navigation icons, email address, links to other versions of the same document (other language, text-only,... optimized for a certain browser)). By changing this macro, you can change at once the standard look of a whole group of HTML documents. Other macros can contain often used URLs, etc.

It also allows to have a single source file for different versions of a document:

Finally, it's complete interface with perl allows to simply add extensions.



htmlpp construct from a source file and the name of a language the corresponding page for this language. It does almost work like the c preprocessor cpp (ie macro expansion), but with a more html like syntax, and many more functionnalities. In particular, it's fully interfaced with perl.

Using makefiles, it's possible to completely automatize the update of the html files versus the prehtml files. You just type make, and htmlpp is invoked with the correct arguments. Quite confortable...


Condition of use

Standard GPL licence.
Beside, I would appreciate if you would send me an e-mail if you use htmlpp so that I can keep track of the number of users, and can send you a message if I ever release a new version. Also, I would appreciate if you would add a reference anywhere in your pages. Something like:
This document has been formated by htmlpp.
( You can use the macro <#htmlpp> or <#htmlpp::ref> for this)


For suggestions, bug reports (and fixes!), flames or praises, please send an email to sourceforge logo I would like to thank Source Forge who is hosting this project, and providing us with all those neat services.

Belorussian translation.