I’ve said for a while now that I wanted to write my own blogging software. Here’s my latest thinking.
All content is stored in RSS 2.0 files. Each category has its own directory with its own RSS content file. Even main is in a directory, perhaps /main. All content is displayed from an HTML file which is created from a XSLT file. The XSLT file is contains what is the HTML skin.
I still have not found/stolen a simple HTML entry form that unlike HTMLjive is built into the browser – so to speak. Blogger and many other sites have something. This posting component act just like an external blog editor like BlogJet in that I would want to support API/Web Services or something.
The software would also support non-blog item content. This would allow an image, pdf or other enclosure (podcast speak) to be uploaded into a directory. Also standard HTML files could be upload.
One of the components of many blogs are lists. They should really be outlines, so lists like blogrolls will be stored as OMPL files. The XSLT transformation of these files will create JavaScript/DHTML lists. So a dependence on CSS. While content will generally be stored in a “top level” (a directory off the root), navigation would support different structure. Using OMPL files, this should follow the same process.
The lifecyle of an article – or is it the flow – would be to post new content into the RSS file in /main and every other category directory. (Note: two different blogs could post into the same category directory. This collaborative blogs.) The item would also be put into the archive directory. This archive directory would be the PermaLink for the item. So posting would touch many different RSS files which in turn would invoke XSLT files creating new HTML files.
There would have to be some configuration file for each blog. What is the home directory for the blog? Where is the OMPL file for navigation? Which What are the categories? Which XSLT file is used in the directory? (More than one?) So some program would have to create/edit this XML file.
Still have to figure out TrackBacks. And pinging.
There would be a comment module. Comments would probably be stored in a RSS file with some extensions. Much more to think through here.
Maybe this is too ambitious of a plan. Maybe it has been done before. But I think the backend code would not be rather simple to maintaining the content. I’ll post more here if I make any progress.