As explained in one of the first posts on this blog this site is basically just one big Atom feed that gets transformed into this blog by using a bit of Apache content negotiation and client side XSLT. Besides some issues with browsers ignoring client side XSLT in a feed and forcing their own rendition of my feed which was fixed by inserting 512 bytes of crud to throw of the feed sniffing this approach has worked fine for the last four years.
Alas these happy years are now over due too Internet Explorer 8. For reasons unknown (and undocumented) IE8 no longer respects the 512 bytes of crud workaround and insists on deploying its “friendly” feed view on everything it perceives as being a feed, client side XSLT and 512 bytes workaround be damned.
Given the potential audience for IE8 I can’t go on with my favoured method and I have decided to switch to a server side XSLT rendering. Given the high level of standardisation available within XSLT I didn’t have to change a single item in my stylesheet.
# Handler atom_xslt is associated with xml files AddHandler atom_xslt xml # Subsequently handler atom_xslt is associated with index.php # for actual processing Action atom_xslt /index.php # Force everything to the feed DirectoryIndex index.xml
A simple caching mechanism is applied by the PHP script to render to HTML once and only update the rendered file after either the XML feed or the XSLT stylesheet have been update. Now that I don’t apply a client side XSLT anymore there’s no reason to stick with XHTML anymore and I have switched to HTML 4.01 Strict.