Changes for version 0.2 - 2006-10-03

  • Test suite:
    • Use a configuration file to find out how to access the 'template1' and test databases, so that the tests can be run even if your PostgreSQL setup requires a username and password. r532, r539
    • the broken tests in 't/40template.t' which shipped with Daizu 0.1 are now fixed. r529
  • The generator class to use for each file is now tracked (not just for the ones which actually have a 'daizu:generator' property). The 'root file' is also tracked in a new database column 'root_file_id', except that root files themselves (the ones with the property one) have it as null. This makes some publishing code simpler and allows the blog pages to restrict lists of articles to blog articles, which means you can now publish non-blog articles 'inside' a blog article, like the documentation for the upgrade and downgrade scripts is for the release notes for this release on the Daizu blog. r544, r545
  • Article loading:
    • Articles are loaded (using an article loader plugin) whenever they are updated in the database working copies, and the results are stored in the database. This makes publishing much faster, and a lot of code simpler, because for example the true article title (which may be supplied by the plugin if the user hasn't supplied one) is available in the 'wc_file' table. r503
    • A permalink URL for articles ('article_pages_url') is stored when an article is loaded, so that it can be used by index pages or whatever to link to the article's first page. r518
    • The XHTML article loading has been separated out into a plugin. This means you can now provide an alternative plugin for 'text/html' files if you don't like my one, but you have to load at least one article loader plugin in the config file. r502
    • The content from an article loader now has XInclude processing done, not just for XHTML content. Other loader plugins could make use of that if they want to provide a file inclusion feature. XInclude is now restricted to 'daizu:' URLs, since there may be security issues with other URL schemes. r505
    • Various pieces of code which previously got article metadata and permalink URLs from a Daizu::File object now get it directly from the 'wc_file' table when that would save a query. r513, r518
  • Output files are closed properly to check for last-minute errors. r496
  • Several things are now done inside a database transaction where they weren't before, using the new 'transactionally' utility function. r508
  • HTML anchors (<a> elements without 'href' attributes) are removed from content before it is added to feeds because they can screw up the display in Bloglines. Any 'name' and 'id' attributes on other elements are also removed to avoid namespace pollution. r509
  • Daizu::File:
    • Subversion properties are now consistently treated as text by the Daizu API. The 'wc_property' table still stores the proper values (modulo the bug in the Subversion Perl API which screws up binary values), but the property retrieving methods in Daizu::File all do whitespace trimming and UTF-8 decoding. r526
    • The 'title' and 'short_title' methods no longer inherit values from parent directories, and the full title isn't used as a fall back for the short title. This is to be consistent with bits of code which get these values directly from the 'wc_file' table. r526
    • The 'tags' method now returns a reference to an array instead of a list, to make it usable from TT. r521, r525
  • Revision loading doesn't fail when a file is updated on a branch which doesn't also exist on the trunk. r497
  • Working copy updates don't break the database when a file in a non-live working copy has its content changed. r498
  • The 'update_all_file_urls' function now deals with the URLs for files which no longer exist in the working copy, marking them as 'gone'. r550
  • 'daizu:flags' property:
    • The 'daizu:status' property has been renamed to 'daizu:flags', and a new flag 'no-index' can be used to prevent a file from appearing in Google sitemaps. r527
    • Implement the 'retired' flag by showing a message warning at the top of the article page warning that it is out of date, and use a new property 'daizu:reason-retired' to allow a different message to be displayed instead of the default one. r524
  • HeaderAnchor plugin wasn't correctly removing all bad characters from titles before using IDs. It now also allows dots to remain. r523
  • PodArticle plugin now uses <h3> instead of <h2> for top-level headings, because the default templates use <h2> for the article title. r541
  • Daizu::Gen:
    • Fixed temp file leak for thumbnails from PictureArticle plugin. r500
    • Google sitemaps now only contain URLs from the correct working copy, and only ones with MIME types which Google will want. r515
    • Navigation menu now shows only articles, which reduces the chance of random things popping up in it. Unfortunately this means blog homepages are no longer included, so I've also added a new property 'daizu:nav-menu' to override the default navigation menu. r518, r528
  • Daizu::Gen::Blog:
    • Fix navigation menu to not include too many months, as was originally intended, and sort the months in ascending order. r499
  • Previewing no longer tries to do UTF-8 decoding and encoding, so it should work with content in ISO-8859-* and some other encodings. r516
  • Optimize 'db_selectcol' by using 'selectcol_arrayref' rather than looping through all the results from the query myself. r546, r547
  • Changes in terminology:
    • 'wc_file.base_url' is now 'wc_file.custom_url', because 'base_url' is used to mean other things in other contexts. r548
    • Plugins which load articles are now 'article loader plugins' rather than 'article parser plugins', because there might not be any actual parsing involved. The ones supplied now all register a method called 'load_article' for consistency. The Daizu method for registering them has been renamed from 'add_article_parser' to 'add_article_loader'. r549
  • The default stylesheet now has additional styling, and some class names have been changed. r510, r514, r538, r551
  • Templates:
    • The navigation menu's heading is now <h4> instead of <h2>. r517
    • The HTML doctype declaration is in a separate template. r520
    • http://www.daizucms.org/blog/2006/10/release-0.2/

Documentation

command line interface to Daizu CMS
downgrade the database for a Daizu 0.2 installation to work with Daizu 0.1
upgrade the database for a Daizu 0.1 installation to work with Daizu 0.2

Modules

class for accessing Daizu CMS from Perl
class for creating Atom and RSS feeds
class representing files in working copies
default generator class
generator for publishing a blog
functions for handling HTML and XHTML content
add anchors to headings in all articles
publish image files as articles
a plugin for publishing Perl POD documentation on websites
a plugin for syntax-highlighting code samples in HTML pages
plugin for loading articles written in XHTML
functions for generating preview versions of output content
functions for creating publishing jobs
Subversion editor for creating publishing jobs
functions for loading revisions from Subversion
fetch TT templates from a Daizu working copy
functions for use by the test suite
various utility functions
access to database working copies
Subversion editor for updating database working copies

Provides

in lib/Daizu/Plugin/PodArticle.pm