I’m giving WordPress a spin, replacing my own experimental statically-generated weblog publishing tool. The homegrown system worked well, but I wanted to add more dynamic features such as comments and trackbacks, and there’s so much other work going on with weblogging tools that it wasn’t a good use of time to implement those myself.
So I made some changes to WordPress to make it fit my publishing system, all of which are to be contributed back to the project.
- There is now an importer for RSS files and blogBrowser-style archives of RSS feeds (one folder per year, one RSS file per month). This allowed me to import entries from my own weblogging tool, which uses blogBrowser archives as its native data format. The importer supports multiple categories as well as modification dates, which brings me to:
- Modification dates. They’re now stored per post, and exported in the RSS feed, using a dcterms:modified element.
- UTF-8 Unicode storage of all posts. Minimal changes to the code; it mainly sets the right HTTP headers on the edit and post display pages and passes through the results without messing it up. Though PHP is still ISO-8859-1-centric in its string handling (and, the mbstring module aside, some of the other Unicode "support" just ends up replacing characters outside this set with question marks), it passes UTF-8 through fine.
- A few minor fixes (permalink generation from a custom format now works when the weblog is hosted somewhere below the root of the site; it’s possible to have a post in no categories).
- Multi-weblog synchronization. This is a consequence of the RSS import and modification date features. I can tie my production and staging servers together and update posts in both directions. (I’m just starting to test this out.)