How these pages were made
These pages are written as XML files using some HTML elements but also non-HTML elements to simplify the work and to enable the contents and index pages to be generated automatically. For example, I do not have to remember the details of the header and <head> element of an XHTML page because all of that is generated for me when I write simply
<css>path_to_a_CSS_file</css> <!-- Only needed if there are page-specific styles -->
<title>Page title</title> <!-- Also creates h1 header if not given. Used in contents page. -->
<!-- Then any HTML body content, with some other special elements to help -->
The XML is processed against an XSLT file to generate a set of XHTML files, one per page (xyz.html would be generated for the example above). A detailed explanatory example XML file and my XSLT can be downloaded in a ZIP archive from here (6 kbytes).
Another example of using invented elements to overcome problems and speed up writing is given by special characters. It is a common problem when using XSLT that character entities are hard to control. I solve that by writing <char code="abc"/>. Whatever the string abc is, a template matching char elements in my XSLT generates &abc; in the output XHTML.
Diagrams were drawn in Sun's Star Office, which is Java again, and saved as images. I would prefer to use another XML technique, Scalable Vector Graphics (SVG), but that is not yet sufficiently widespread in client systems.
XML, XSLT, XHTML and SVG are all defined by the World Wide Web Consortium, affectionately known as the W3C. You can read about these techniques on the W3C web site.