>Is there a way to have the documents contain something which sucks the
>common code out of a third document so I only have to edit in one place?
I like Paul Ramsey's suggestion (using cpp and make). You should also look
into the features of your http server; I believe some of them support
so-called "server side includes".
Another suggestion that is somewhat more portable: use SGML markup, parse it
using the HTML 2.0 DTD, and translate the parser output into HTML that
browsers can deal with.
SGML provides features that can be used to include replacement text and/or
markup. For example:
<!doctype html public "-//IETF//DTD HTML 2.0//EN"
[
<!entity boilerplate system "boilerp.txt">
]>
<html>
:
<p>&boilerplate;
:
You can used marked sections for conditional processing. For example (and
completely off the top of my head):
<!doctype html public "-//IETF//DTD HTML 2.0//EN"
[
<!entity % NETSCAPE "IGNORE">
<!entity boilerplate system "boilerp.txt">
]>
<html>
:
<![ %NETSCAPE [<blink>Cool web site here!!!</blink>]]>
<p>&boilerplate;
:
For SGML processing, I recommend James Clark's nsgmls parser, available at
http://www.jclark.com/sp.html.
For translating the parser output (ESIS), I have my own CommonLISP routines.
I know other people are using Perl to accomplish the same thing.
-kmc