This website was written using a simple wiki-like markup in plain text files, which was then converted to w3c compliant xhtml using the excellent txt2tags utility.
I use GNU make to regenerate all the pages from the markup, which also runs ispell to check for spelling mistakes, generates thumbnails of images using ImageMagick and cleans up the generated html using htmltidy from the w3c.
To see an example of txt2tags markup, click here. This is the actual input file used to create this page. Running make automatically generates the html, and I get alerted to any spelling errors by ispell.
$ make txt2tags --no-rc --target=xhtml --css-sugar --mask-email --quiet -o website.html website.t2t tidy -q -c -i -b -asxhtml -omit -ascii -w 0 -modify website.html || test $? -eq 1 typo: speling
You can view the actual Makefile I use here.
The output of txt2tags is suitable for use with cascading style sheets to change the presentation of the output, I simply wrote 20 lines of css to change the colours and fonts, and thats it!
The whole site validates as xhtml and css compliant.
Using simple text files makes revision control simple, just using GNU RCS.