This website is built using a combination of custom, modified open-source and commercial software for the Macintosh.
Each page begins life as a template that includes the header (everything up to and including the first heading below the topmost horizontal rule) and the footer (everything below the last horizontal rule at the bottom of the page). The template merely includes other footer and header files to accomplish this. The include mechanism is activated by BBEdit Pro 5.1.1, which updates the page, passes variables to the included HTML snippets and updates environment variables (date, time) when a page is built.
The consistent appearance is partly achieved through the inclusion of standard headers and footers, but mainly through a site-wide stylesheet. This allows, for example, all code snippets on all pages to be simultaneously updated by changing only the definition in the stylesheet.
The lecture notes are converted from LaTeX by a version of the TtH TeX to HTML converter that has been modified to produce output which is "almost" XHTML. The resulting HTML still needs to be tweaked to become valid XHTML, but this is a simple job, largely accomplished by another custom AppleScript.
TtH comes as a single flex-generated C source file intended to be used as a filter on Unix systems. I've already ported some GNU software (including flex and bison) to the Macintosh and have a C++ shell that acts in a similar manner to a Unix shell (passing command-line arguments to the main routine) so getting it up and running was relatively simple. Minor modifications were needed to get it to redirect its input and output to/from files rather than stdin/stdout, but that was a small task. Modifying it to produce clean XHTML was more of a problem as I didn't have access to the original flex definition and had to work with the scanner source generated by flex instead, which limited the scope of the changes that could be made. The final result is reasonable given the constraints, and produces XHTML that is approximately 90% correct. All up it took about 5 hours to convert TtH from a Unix filter that didn't produce valid HTML 4.0 (though it allegedly produces valid HTML 3.2) to a command-line based Macintosh application that produces a good first approximation to XHTML 1.0.
The snippets of Pascal-FC code that appear in the web pages owe their appearance to the stylesheet, which specifies the colour for keywords, comments and strings, and to a custom pascalfc2html AppleScript that processes Pascal-FC source code. pascalfc2html scripts BBEdit to perform a series of Find & Replace and grep operations that tag keywords, comments and strings in such a way that the global settings in the stylesheet are applied to them.
These pages are intended to be valid XHTML 1.0. Checking that they are correct begins by using BBEdit's built-in HTML 4.0 validator to ensure the pages validate as HTML 4.0 Strict, then using the World Wide Web Consortium's validation service to check against the XHTML 1.0 Strict and Cascading Style Sheets standards.
|Check the CSS on this page.||This page was last built on a Macintosh with BBEdit 5.1.1 on Sunday, 21 May 2000, and is maintained by Koryn Grant||Check the HTML on this page.|