The Price of Liberty
Eternal Vigilance? Yeah, there’s the ticket. I was about to go to bed last night, when I got an email from Evan. One of my individual archive pages had a Trackback whose PingExcerpt
was invalid XHTML. Since I have a reputation to live up to, this indignity could not stand!
I’m sure all the alpha geeks were stripping html from and encoding entities in their Trackback listings. Now I am too.
But there were more problems afoot. A quick survey revealed another Trackback PingExcerpt
containing control characters. I’d already encountered this problem with the RSS feeds I syndicate in my blogroll. Clearly, a more general solution was required. Hence the StripControlChars plugin.
And then there was a problem of my own creation. In a fit of semantic correctness, I had changed my list of Some Related Entries from
<div class="related"> post 1 <br /> post 2 <br /> post 3 <br /> </div>
to
<ul class="related"> <li>post 1 </li> <li>post 2 </li> <li>post 3 </li> </ul>
All very good, 'cept that the first post in any given category has no previous related entries. Hence we get an empty <ul></ul>
, which is invalid. My fix? Well, it was long past my bedtime, so I just decided that each post is clearly related to itself, hence we can safely include it in the list of Related Entries.
Update: This experience has put me pretty squarely in the “Tools Will Save Us” camp. Hand-crafting (X)HTML can get you only so far. Once you start allowing Comments and Trackbacks and whatnot on your site, the only way to ensure validity is to have a good set of automated tools which make that happen. MovableType is a nice CMS, but out-of-the-box, it make only a feeble attempt to ensure valid content. Fortunately, it is pluggable as all heck. With the right toolkit, it can be made quite bullet-proof.
That’s what I’m after here. I want to get MovableType to the point where I don’t have to think about whether my XHTML is valid. It just will be.
Re: The Price of Liberty
You were thinking clearly despite the late hour. It seems natural that related posts should form an equivalence class. Reflexivity follows naturally!