Why New Blog Software?
11-27-2005 18:22:23 by MikeW in categories: General XML
Once question I thought I should answer after spending a month or two of my spare time writing my own blogging software is, why do it? Why write your own software? Why not use Moveable Type, Wordpress, or some other blog package or hosting service? Well there are a number of reasons, so let me go over a few:
- Well first I'm lazy. Like Larry Wall, I hate to do things twice. I needed a system that would allow me to templatize practically anything so I'm not constantly re-entering HTML code.
- A system that works offline and locally. I want to be able to create blog entries offline and be able to upload them at my convenience. In addition, with an offline system I can choose whether anything gets published or not. So if I want to create a private blog for a project or work, I can. And, I can run it off the local file system without every hitting a server. A fancy Web interface can be added, but is optional.
- Everything can be controlled from a shell and vi.
- No database required. To me blogging is a perfect fit for XML. You create an entry once, and then never change it. Adding in a relational database and the code needed for that just adds unnecessary complexity.
- Data files are a standard text format. Some blogging tools I have played with allow you to blog using text or HTML, but don't use any standard format. You either get wiki like formatting or some limited HTML. This blog's data files are all valid XHTML. This allows me to create and edit the entries with standard tools and yet transform simply formatted XHTML files into more complex output.
- Standardized templating system. As far as I'm concerned, XSLT is best templating language I have run across. By using XML files for the entries, the power of XSLT can be used to templatize just about anything.
- A modular system. I wanted a system that is made up of swappable components. Not one giant hairball of code that can't be broken apart. For example, if I want a comment system, it can be added. If I don't, everything still works fine.
There is still quite a bit of work to do. I started this project in Ruby, but since it was talking too long for me to learn Ruby, I switched to Perl so I could get something working quicker. Eventually, I will have a Perl and Ruby version, but the first pass will be Perl as I know that language a better than Ruby. But porting everything to Ruby should be a fun exercise.
The category system still needs to be built so that I can automatically assign categories to entries through a text user interface. Also, I will need to add a commenting system as well. Maybe a sample CGI based system or a link to an open source bb system. Finally, I'm currently still using Ant to do the transforms. This will need to be switched over to Gnomes libxslt so no Java is required.
Well that's the scoop. More to come as things progress.