Daizu CMS blog

String-based templating and XML

So far I've been using Template Toolkit for generating output in Daizu, but there's a problem with that approach: the templating language doesn't understand anything about the structure of the XML or HTML output it's producing. I'm not picking on TT, it's the best and probably most popular templating language for Perl. My problem with using it is that it always generates plain text. Of course you can arrange for the output to be correct XHTML or whatever, but there's very little support for doing that.

Read on…

Git can't store metadata with files

Git doesn't have any facility for attaching bits of metadata to files, like Subversion does with its properties feature. Since Daizu relies heavily on metadata stored in properties, I'm going to discuss the problem and some possible work-arounds below.

Read on…

Considering Git as a replacement for Subversion

I'm considering the idea of using Git to store version-controlled content for Daizu, rather than Subversion, which is what I use currently. Switching to a decentralized revision control system would be an interesting an unusual idea for a content management system, but it would also mean the current design for Daizu would need to change quite radically.

I'll use this article to collect links to other blog articles I'll be writing about the various issues to do with a Git-based content management system.

Read on…

Related links metadata

One of the new plugins I've added in the new version of Daizu, called RelatedLinks, allows you to add metadata about other web pages relating to an article. It displays them in a box in the right hand column.

This is really a bit of a hack, but it might get turned in to something more useful in the future. Below is some discussion of how it works and perhaps how it should work.

Read on…

Daizu CMS version 0.3

Version 0.3 of Daizu CMS is now available from the download page. Details of how to upgrade from 0.2 and the exact changes which have been made are given below.

I've just started a new contract so I won't be able to work as much on Daizu for a while. I just wanted to get this release out first, even though it has some imperfections.

Read on…

Navigation menu in SSI

One of the features I was going to add in the next release of Daizu was a way of avoiding the need to regenerate blog articles whenever their navigation menus would change. This happens the first time a new article is published in a given month. For example, when I write the first article in December the menu to the left will need to get a new ‘December’ entry for all the pages it appears in.

I ended up deciding this was unnecessary complexity, so I undid the change, but I thought I should write down what I'd done somewhere.

Read on…

Subversion Perl bug

Daizu development has been held up for the last few weeks due to a serious bug which I just couldn't track down. I've finally found it in the Subversion Perl bindings.

Read on…

Bloglines and xml:base

Unfortunately Bloglines still isn't handling xml:base attributes properly. My Atom feeds have this on the div element which contains an article's content, and it's set to the URL of the article, so relative links in the article should work fine as they are. Bloglines seems to use the root of the domain as the base instead.

Update (2006-11-10): This may actually be partly my fault, see below for details.

Read on…

Adding content from CVS

I wanted to add some old content to the Subversion repository I keep my Daizu websites in. I had this old stuff in CVS, so I thought it would be nice to keep that revision history rather than just copy the latest version of the files into Subversion. Not that I really care about those old commits in this case, but this is something I want Daizu to be able to cope with, so I gave it a try.

Effectively you have to add the revisions from CVS (or from another Subversion repository) to the repository where you're keeping your content, merging the revisions from the two repositories.

Read on…

New _lib directory

I'm adding support for a new ‘special directory’ in Daizu 0.3. As well as being able to override the default templates by putting new ones in a _template directory, you'll also be able to provide Perl libraries in a _lib directory.

Unfortunately you can't have more than one _lib directory, just one at the top of your content repository, because Perl wouldn't be able to load different versions of a Perl module for different parts of your content. If you want to play that sort of trick you'll have to use different names for the Perl modules.

Read on…