A small bash-powered weblog engine

October 10, 2005

Progress

It's been awhile since I've posted an update, so I thought I'd check in and let everybody know what's going on. Here we go...

I've rewritten the entry bit format (again) to reduce the reliance on the master.db. I've had the master.db corrupt on me several times and it's frustrating when it breaks. There's no easy way to rebuild it and it's a single point of failure that tends to mess up the whole works. So, the metadata has been moved into each individual entry bit. This accomplishes a few things.

For starters, if bblog screws up for some reason, you're less likely to have your entire site go wonky. The article you're working on might be hosed beyond recovery, but everything else is safe.

Secondly, I'd had a request a while back to implement a "multiple authors/one blog" feature. The new entry bit format includes the name of the author and that authors email, so, by changing each users config to point to a common CONFIG_DIR & ROOTDIR, you can do this now, if you're so inclined. I didn't know how I was going to do this before, but after I switched to the new entry bit format, it sorta just leaped out at me.

Lastly, I've finally got multiple categories per article working. The menu needs some work, and there's not yet a way to go back and change which categories an article belongs to, but I'm working on it.

With previous versions of the script, whenever I changed the entry bit format, you pretty much had to start over if you wanted to upgrade. I've fixed that. I'm releasing a stand-alone script that will take an existing bashblogger install and export the entire site as one, great, big RSS 2.0 feed. Oh, the newest version is switching from RSS 1.0 to 2.0. Did I forget to mention that?

So, you can export your existing site to an RSS 2.0 feed, big deal, right? Well, there's a new "Settings" feature where "Edit Config" used to be. I've moved "Edit Config", "Edit CSS" and "Change Theme" in there and added three more options, "Rebuild site", "Import RSS" and "Export RSS".

The "Import RSS" option will take a site, exported in one, great, big RSS 2.0 feed and import it into bashblogger. It works with the output of the stand-alone script I'm releasing. It should also work with any RSS 2.0 feed from other blog software. I haven't tested it on anything other than WordPress, but if any of you test it out, let me know how it works out for you.

The "Export RSS" option exports your entire blog to one big RSS 2.0 feed. Handy for backing up your site and upgrading to the next version of bashblogger ;).

The "Rebuild site" option works in conjunction with the site templates. That's right, due to popular request, I've made templates available to the user without modifying the script. You can modify the templates, change the footer around, and then select "Rebuild site" and it'll do just that.

A word of warning. Rebuilding a site with more than 100 articles or so is going to take some time. Several minutes, at any rate. I think grimthing.com has around 82 articles and it takes under a minute to rebuild the entire site. I figure a typical blogger has somewhere between 300-900 articles per year. If you have several years worth of entries like this, it could take up to half an hour to rebuild the whole site.

As long as you make sure your header/footer is right when you start, and you modify the appearance of your site with CSS instead of raping the templates, maybe you won't have to rebuild the templates that often.

I've also added "podcasting" and "draft" functions to the script. The file browser I've written to locate a file to podcast has a menu redraw bug I haven't nailed down just yet. I'm sure it's a problem with an improperly nested loop (or two) but it's still not quite done. The draft is mostly finished, I just need to tie it into the quickwrite/quickedit functions and it'll be good to go.

I also need to re-add the "User Sideboxes" function. Some of the work I've done has broken it, but it shouldn't be too difficult to fix.

So, that's the state of things right now. Once I get the last few problems worked out, I'll need to give a copy to the other developers to bang around on. Once they're satisfied with the quality and have rooted out any bugs that I've missed, we'll go ahead and release 0.3.5.