This is a generic preprocessor which allows you to use some very powerful features such as "#if", "#define" and "#include". The preprocessor is known to work under:
PPWIZARD is more powerful than virtually any other preprocessor available and unlike many others remains simple to use (no complicated syntax); its replacement syntax is HTML like.
PPWIZARD can be particularly useful for people who like to hand code their HTML and use a HTML editor. The use of a GUI-based editor does not, however, rule out PPWIZARD's use and some editors allow you to define your own tags (allowing you to add PPWIZARD's tags and commands).
Some people recommend the use of a html preprocessor when SSI is unavailable. I recommend the opposite, use PPWIZARD for what it can do well and only use SSI if required (to do things it does well such as browser sniffing). You will find it will be much easier to maintain a site using PPWIZARD instead of server side includes and it also lets you do a lot more.
The free "Regina" interpreter is required for operating systems other than OS/2 (this is installed for you under Windows). There are no binaries to build, the one version of PPWIZARD runs everywhere.
Before I go further, if it all starts to sound complicated (and it certainly can be) then please check out the Beginners Guide section (you may wish to look at some of the sites PPWIZARD users have created). Since PPWIZARD is a generic tool, using it can be as easy or as hard as your level of experience can handle. Even at its simplest level PPWIZARD can easily save you heaps of time, not only initially building a site, but in keeping it up to date and running (where you will find all the work actually is). I am perfectly willing to answer questions.
Another point worth remembering is that PPWIZARD does not try to bolt on every possible feature (like other preprocessors), it has been designed to be extremely extensible and so site maps, url checking/reporting, thumbnail creation and much more is provided by add-ons. These are generally written to be very configurable but if you have an add-on you have the source code so if required you could rewrite or tweek it.
This preprocessor is commonly used as an HTML preprocessor as well as a REXX preprocessor, however there is no reason why this one preprocessor can't handle almost any file you have around (example: you can change the preprocessor to use "!if" etc and leave "#if" commands alone if you wish).
Most people would probably find the #include and #define commands the most useful, as they could be used to ensure that you need never specify something more than once. For example, you might refer to a specific link (or image) in tens of places in different HTML pages but you can define it in one place. When you need to change it you make the one change and regenerate the HTML. It's not just easier and faster, it eliminates mistakes. You could set up your source and have automatic checking of the existence of any resources on your web page (no incorrect links).
The "#if" support is much more powerful than that of any other preprocessor due to the fact that what it executes is REXX code. What this means is that any REXX expression can be called, including your own REXX procedures. The "#evaluate" command allows you to parse files or do whatever you need to in order to obtain the text you wish to use in your HTML.
You can use this program to produce different versions of your HTML pages for different locations. For example, for an offline copy you may not want to have links to internet sites or may want to have different links. The preprocessor could be used in conjunction with an HTML editor, however it is most useful for power users.
This tool can be used to automatically calculate image widths and heights, file sizes, or file dates and times, and basically do all the drudge work (the stuff most likely to otherwise quickly become out of date).
By default excess leading spaces are removed from the output file so that you can format the input as much as you like without impacting download speed.
If you can't explain why an error message is being displayed or your code is not generated as you'd expect then I highly recommend you try the "/debug" command line switch. I'd also like the debug output if you report problems.
If you have used a previous version of the preprocessor then I'd recommended you examine the change history section to determine what changes might affect you.
Please see my web page at http://dennisbareis.com/ppwizard.htm for the latest copy of this program or contact me (Dennis Bareis) via e-mail (dbareis@SpamBeGone.gmail.com). I value feedback from users.
Note that I would have loved to have written this in Java, however as a compiled language it does not have an "interpret" instruction. Apparently something is being added to version 1.2 which might allow something similar; I'll have a look then. The "interpret" instruction is important as it allows the preprocessor to be extended as well as doing a lot of work I'd otherwise need to do myself (and I wouldn't do it as well). I will not be rewriting the preprocessor in Java (as it wouldn't be compatible with the REXX version), but with any luck I'd be able to write any similar future stuff in Java....