As often happens, my website is a testbed for web hosting relating technologies. I am no web designer but, besides of suplying interesting content, I always wanted it to be accessible and visually appealing, yet of easy maintaince. This page documents my efforts in that sense.
The site CSS stylesheet and page layout was taken from the popular Sinorca design, with further simplification to suit the site nature and my own taste.
The page layout is automatically generated by a XSL stylesheet from an input XHTML with the content. The stylesheet adds:
The sitemap is currently generated from the directory
structure by a Python
script. The pages are identified by the id of
the root HTML node.
In order to allow scripting the intermediary XHTML files are generated from simple quasi-XHTML files with embedded Python scripts by pyhtml.
Before and after the application of the XSL stylesheet the XHTML is piped into tidy for strict XHTML conformance and re-indenting respectively.
All this process is automated from recursive Makefiles with a common set of rules.
All files are edited with VIM. A costumized VIM syntax file is used to highlight the python scripts embedded in the HTML.
This site always was content driven, so it began as a simple HTML page with little or no formatting.
As the stored information growed and more pages were added the need for some easy site navigation. Soon become clear that, regardless of the actual navigation scheme, it would be too much trouble to maintain it by hand. Static HTML was a constrain at the time, and that rulled out many website tools. I eventually opted to use a combination of the m4 pre-processor with make.
The inadequacy of m4 to deal with things such derivative content (such as directory listings), and my growing familiarity with Python lead me to develop pyhtml, where the dinamic content was generated from Python scripts embedded in the HTML files. At the full extreme of this concept, the pages were converted into a DOM object and then handled to a template HTML file, where the script inside added the layout.
The complexity that pyhtml had become and the inherent instability together the proliferation of XML and associated tools made me search for a more standardized solution, instead of my own thing. pyhtml was demoted to very simple script, and all the layout logic was written in XSLT language.