A good CMS gives you total markup freedom

Why is it that so many CMSs make it harder than it should be to use the markup you want to? And why do CMSs still, in the year 2010, output cluttered/inaccessible/outdated HTML that can’t be easily overridden? There may be exceptions of course – I haven’t used all CMSs that exist. There are hundreds of them, so I doubt anyone has.

A CMS should never, ever output HTML that is beyond the control of the developer. Every single tag and attribute should be possible to change by modifying templates or providing settings in function calls. If you have to use regular expressions and output buffers to get the HTML you want, something is wrong with the CMS. If you have to become a PHP or ASP.NET expert or install “cleanup plugins” to get the HTML you want, something is seriously wrong with the CMS.

Of course a CMS needs to have default templates and settings. But it should never hide any HTML in other places. Not in untouchable, compiled black boxes, not in core files. HTML belongs in easily accessible templates.

It’s so backwards, inefficient and anti-best practices when you have to change your HTML to something a CMS developer has decided is right. It seems like the very markup you cannot change is often the markup you really want to change.

Having total, complete, all-the-way, without exceptions customisable HTML – without resorting to rewriting core functionality or filtering the output through regular expressions – is one of the most important critera to look at when deciding on which CMS to use.

HTML black boxes must be banished.

End of rant.

Posted on September 21, 2010 in Content Management, Rants, (X)HTML