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.
Publishing system
The major new feature in this version is the publishing system. The previous version of Daizu could generate content and store it in appropriate files in a document root, but this version can automatically work out what publishing work needs to be done based on what changes you have made.
The publishing process now goes like this:
- Add or edit content and commit your changes to the content repository.
- Run
daizu updateto load the changes into the database. - Run
daizu publishto update Daizu's records of published URLs, and to publish, republish, or delete files for any URLs which are affected by the changes you've made.
Obviously once Daizu has a nice user interface this will all happen automatically when you hit the ‘publish’ button.
One feature I was planning, but haven't added yet, is the ability to
have Daizu automatically upload changed content to a web server. This
will probably involve it running rsync or something.
I want to give some more thought to how that should be configured before
I implement it.
Upgrading
Scripts are available, supplied in the source package, for upgrading to the new version and to reverse the changes:
As well as running the upgrade script you'll want to add any of
the new plugins you want to your configuration file, and rename any
google-sitemap elements in it to xml-sitemap.
There's also a new CSS stylesheet provided with this version, so the version in your content repository should be updated from that.
Note that I'm getting a few test failures (four tests in t/35gen.t) on one machine. It looks like something subtle, probably to do with the version of Subversion installed or something. I'm not going to hold up the release for that though.
Detailed list of changes
Allow Perl modules to be loaded from the _lib directory in the content repository. r557
Publishing feature to bring live sites up to date:
- Do publishing work automatically, and change the
daizucommands for publishing in different ways to be easier to understand. r612 - Methods in generators to figure out what additional publishing work to do. r575, r587, r588, r589, r591, r597, r599, r600, r618
- Track changes to URLs. r596, r638
- Track changes to content. r597, r598, r600, r613
- Output files are atomically moved into place, and old ones are only overwritten if the content has changed, to preserve modification times. r614, r615
- Output files now have the execute permission if the file in the content repository is marked as executable. r593
- Do publishing work automatically, and change the
Allow connection to remote content repository with
svn:URL. r626, r630, r639, r643Plugin changes:
- Daizu::Plugin::PictureArticle correctly encodes
alt. r620 - PictureArticle output is prettier and more accessible. r606
- Articles are reloaded if any properties change, because plugins might depend on their values. r622
- Daizu::Plugin::HeaderAnchor, various small bug fixes. r635
- Daizu::Plugin::PictureArticle correctly encodes
New plugins:
- Article filter plugins can now add information as well as modifying the content. r577, r640
- Daizu::Plugin::DisplayPicture. r577, r620, r628, r646
- Daizu::Plugin::ImageMetadata. r631, r636
- Daizu::Plugin::RelatedLinks. r640
Blog generator:
- Refactoring to make it easier to subclass. r569
- Correctly ignore blog articles hidden in _hide directories. r562
- Number of articles shown on the homepage is configurable. r590
Correct use of
xml:basein blog feeds. This fixes relative links and images in blog articles, at least for Bloglines and Google Reader. More details in a blog post. 605, r624Google sitemaps:
- Use the new XML namespace. r629
- Rename URL method and configuration element to
xml_sitemapandxml-sitemaprespectively, since they are no longer specific to Google. r650
Do simple SSI processing when previewing output, in case your templates use SSIs to implement part of the site design. r560
Article loading:
- Preserve comments in loaded article content. r567
- Don't save unnecessary XML and DOCTYPE declarations. r633
Fix a bug which caused a database constraint breakage sometimes when an active URL changes from one file to another. Preserve redirects where the target URL is ‘gone’ in case it comes back. r581, r596
Bug fix for
url-contentcommand. r558Fix UTF-8 encoding bug in preview script. r568
Work around bug in Encode module in Perl 5.8.4. r627
Make the
update-all-articlescommand work if no working copy ID is specified. r632Avoid unnecessary dependencies on other CPAN modules:
- Data::Validate::URI is no longer required (but the same checks are done internally now). r571
- IO::Scalar wasn't being used anyway. r585
Don't unnecessarily use a temporary file when parsing XHTML. r564
Rewrite maps:
- Fix bug affecting content of the map files. r579
- Factor out the code for generating them. r583
- Make it an error to use the same map filename more than once. r595
Template and style changes:
- Fix layout problem in IE 6. r578
- Navigation menu is more flexible about which of ‘title’ and ‘short title’ are available. r561
- Show a link to the homepage of a blog in its navigation menu. r563
- The links in the
<head>of blog pages are now generated using the standard head/meta.tt template, and they are passed to it in a more flexible format. Blog pages which aren't articles no longer have bad previous or next links in. r566 - New (by default empty) template for adding extra HTML at the end of the file, like Google Analytics code. r594
- Include description and tags (‘keywords’) metadata in
<meta>elements in the output. r602, r611 - Only one set of next/previous links need to be provided on blog articles. r607
- Data tables in articles are centered, and table captions are styled better. r608
Upgrade and downgrade scripts:
- All now stored under the upgrade directory. r603, r609
- The new upgrade script removes some unnecessary tables, and fixes an index. r604, r619