<?xml version="1.0"?>
<body>
<div id="maincontent"  xmlns="http://www.w3.org/1999/xhtml">
  <h2>Site Technology</h2>
<p>
  This is a very small site, but already complex enough to be simpler to manage with the help of a little software. The output is <a href="http://www.w3.org/TR/xhtml1/">XHTML</a>, so it seemed sensible to use <a href="http://www.w3.org/TR/xslt">XSLT</a> to generate it: that way, the output is guaranteed to be well-formed. Not only that, but the main XSLT templates can include menus and headers for all the pages, saving a lot of repetition. Since we're running <a href="http://httpd.apache.org">Apache</a>, all that could have been achieved using just <a href="http://www.mod-xslt.com/">mod_xslt</a>. But there are a few extra tricks that are needed: firstly, Explorer 6 still doesn't work correctly if it thinks a page is XHTML - it needs to be told it's plain old HTML - and the menu needs parameters to know which options to display. <a href="http://perl.apache.org">mod_perl</a> solves both those problems. 
</p>
<p>
The final system: a site based on small <a href="http://www.w3.org/XML/">xml</a> files which contain just the text for each page, plus the contents for the meta tags. When a browser requests a page, Apache calls mod_perl which uses <a href="http://xmlsoft.org/XSLT/">LibXSLT</a> (a free XSLT processor) to convert the xml file to XHTML, add in the menus, and insert the metatag data. You can even see the <a href="http://www.libretech.co.uk/about/thesite.xml">source xml files</a> if you want (though it would be easy to close off access to those).
</p>
<p>And the end result: a page which is fully standards compliant, including <a href="http://validator.w3.org/check/referer">valid xhtml</a> and valid <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.libretech.co.uk/style/libretech.css">style files</a>, conforms with the 
<a href="http://checker.atrc.utoronto.ca/servlet/Checkacc?submit1=Check It&amp;file=http%3A//libretech.co.uk/about/thesite.html">W3C accessibility recommendations</a>
, and which meets <a href="http://www.govtalk.gov.uk/schemasstandards/metadata.asp">government eGMS standards</a> for metadata.</p>
</div>
<title>About this site</title>
<description>Technology used by the libretech.co.uk web site, including mod_perl and xslt</description>
<created>2004-12-05</created>
<modified>2007-08-15</modified>
</body>
