[Orb icon]

Orb: An HTML Preprocessor

by Craig Berry


I no longer program in C++, and use other tools for what I used to do with Orb. However, I know that a lot of people still use and enjoy Orb. Therefore, I am looking for someone (or ones) to take over Orb development. See the Orb page on SourceForge for details.

Orb is an HTML preprocessor designed to simplify creation and maintenance of complex web pages and sites. For example, this page is part of Craig Berry's home site, all of which is generated from Orb source files. The larger Ordo Templi Orientis U.S. Grand Lodge site is also coded in Orb.

Orb source files consist of HTML text with additional markers, which are processed by Orb to create pure HTML output files. As a result, existing HTML files can be simply renamed (from .html to .orb) to become Orb files, with internal changes to take advantage of Orb then made incrementally.

The most important features of Orb are:
File Inclusion As in C/C++ and other programming languages, you can put common HTML elements, variable definitions (see below), and so forth in "header files," which are then included by each Orb source file at a site. Changing the "look" of your site is then as easy as changing one header file and recompiling!
Symbolic Variables Nothing is more annoying than re-entering a long link reference which occurs multiple times across many pages at a site. Even if you use an HTML editor to simplify this task, you're still in trouble if the link address changes; this requires manual editting of each link instance...if you can find them all. Orb allows you to define symbolic variable names for commonly used addresses, HTML elements, copyright notices, or whatever; put these in a common header, and suddenly your maintenance problem is solved. Variables may be "nested" freely -- see the example included with the source distribution for an example.
Time Formatting Orb provides built-in support for encoding the date and time of HTML file creation in any desired format, using local or GMT time. This makes it easy to "time stamp" your documents with last-revision information automatically, without relying on SSI support from your web server.
Conditional content generation Often you'll want to create sites sharing common structural elements with just a few variances from page to page. Orb makes this easy using conditional compilation. As demonstrated in the example files, it's easy to create configurable options for things like page titles and background colors, with or without default values.
For a deeper discussion of Orb's capabilities, see the manual, which is also included with the standard source distribution.

Orb is free software

Orb is free, released under the terms of the GNU General Public License (GPL). It is distributed as C++ source code, which you may use to build Orb on your system with any C++ compiler, and which you are welcome to modify as described in the GPL.

Should you come up with useful changes or additions to Orb, I would very much appreciate your sending them to me, so I can incorporate them in future 'standard' Orb releases.

Also, I need help getting binary versions of Orb for people who want to use the program, but have no C++ compiler on their systems. If you build Orb for a system you don't see listed below under Binaries, please email me a copy at cberry@cine.net.

Orb version 2.0

Orb v2 adds several very useful features over the previous 1.3 release. The most important is a macro facility, in which variables may serve as 'templates' for HTML generation, with values supplied as arguments at the time of template use. The documentation is still being updated to cover this; stand by for an announcement soon.

Getting Orb

The latest version of Orb is 2.00.02. I'm making fixes quickly as (inevitably) the released code suddenly reveals bugs I couldn't find during two months of pre-release testing. I suggest checking back here frequently for new versions.

I recommend getting the Orb source distribution (38k) and building it on your own machine. Simply unzip the archive into an empty directory, then run GNU make; an executable version of Orb should be created. If the make process doesn't work for you, compiling by hand is easy; if (for example) your C++ compiler is named gcc, you can just issue the command: gcc -o orb *.cc *.c

If you build for a system not on the binaries list below, please send me a copy, identifying the OS (with version number) you built it under.

Orb binaries

Note that these consist of the executable program only. Get the source distribution for a copy of the manual, example files, the license, and so forth.

I welcome comments, questions, suggestions, and bug reports from users of Orb. My email address is cberry@cine.net.

[Orb icon]

Anyone wishing to link to this page is cordially invited to use this Orb icon. Such links should lead to http://www.cinenet.net/~cberry/orbinfo.html



All material ©1994-2001 by Craig Berry
Last modified: Tuesday, March 4, 2003 18:39
cberry@cine.net