What is it?
Where do I get it?
How do I use it?
How can I help you?
What next?
Are you crazy?

Now that I've downloaded it, how do I make things work?

I'll assume that you have Perl installed and working on your machine and that you have QDMerge untarred and executable in an appropriate directory. (If you're having trouble with this, you may not want to run developmental software anyway, 'cuz things can get a little hairy.)

QDMerge takes three basic arguments: the name of the input text file, the name of the template to use, and the name of the output file. It has some built in defaults, and will use those if no files are given, but the defaults are pretty boring. For now, you can run something like: ./qdmerge.pl -i QDhow.txt -t QDpage.tpl -o how.html (which is the command that make ran to generate the page you're reading right now! Wow!).

Do that, and you'll see a silly looking equation. That's your warning that you can fire up your favorite web browser and read this page which was generated on your own machine! Wow! How did I do that?!

The guts of the program are pretty simple, like if you've ever dissected an earthworm. The template file has field tokens in it. Example: %% QDF name %%.

QDMerge looks for field tokens in the input text file. When it finds one, it takes everything following that field token and puts it in the template at the location of the field token there. It stops when it reaches that exact same field token in the input text file again.

If that's confusing, you may want to look at the files you've unpacked right now. Examples may help.

If you look at the QDhow.txt file, you'll notice a token right here: 18:51:32. (Your web browser will display the time when I built this page.) The format for that token is %% QDT time %%. Check out the registry file to see what's actually being done -- the token is actually an alias to a subroutine in a module which inserts the current (at that time, ha ha) time into the document.

Modules can get more complicated, because the token subroutines are also passed a global hash (to store variables which maintain their state between subroutine calls and even between subroutines) and a list of arguments. Take a look at the QDHTML.pm file to see some (ugly) code that makes a table. Also in the modules directory should/will be some plain text files that describe the inner workings of the present modules.

That's just about as complicated as it gets for now. If you want to know what I'd like to add in the future, look at the plans page. Since this is still a fractional release, the format and calls will change -- the development release is out right now, and it took me a couple of hours to port things over. The TV was on at the time, though, so don't be frightened.

Contact chromatic@qdmerge.sourceforge.net with questions and comments.
if you can think of a better way to say it, let me know!
page generated on 8 March 2000