{"id":497,"date":"2007-11-23T11:42:17","date_gmt":"2007-11-23T17:42:17","guid":{"rendered":"http:\/\/studionebula.com\/blog\/2007\/11\/23\/abandoning-wordpress-part-1-faded-blosxoms-and-shining-perl"},"modified":"2007-11-23T11:42:17","modified_gmt":"2007-11-23T17:42:17","slug":"abandoning-wordpress-part-1-faded-blosxoms-and-shining-perl","status":"publish","type":"post","link":"https:\/\/studionebula.com\/blog\/2007\/11\/23\/abandoning-wordpress-part-1-faded-blosxoms-and-shining-perl","title":{"rendered":"Abandoning WordPress, Part 1: Faded Blosxoms and Shining Perl"},"content":{"rendered":"<p>I&#8217;m making progress with the new site. Nothing is online yet but I thought I&#8217;d post an occasional progress report.<\/p>\n<p>As <a href=\"http:\/\/studionebula.com\/blog\/2007\/11\/15\/the-plan\">I described previously<\/a>, my plan is to not use any dynamically generated content but instead create the whole site with static HTML on local machines and upload it when something changes. I&#8217;ve settled on Blosxom as the main component of this system. The trouble with Blosxom is that it&#8217;s something of an open-source orphan and isn&#8217;t really being maintained well. The official site is quite neglected (lots of broken links, etc.); fortunately the unofficial site is more helpful. (You can find them with Google if you need them. I&#8217;m not going to scatter links through these posts for every single bit of software I mention.) I thought for awhile that static rendering in Blosxom was broken altogether but it turned out that the real problem was that I was attempting to use a plugin written for version 1.x with version 2.x of Blosxom. It also seems that the download packaged up in a Mac OS X installer is not the same version that&#8217;s provided for &#8220;everything else&#8221;, i.e., Windows. With some persistence, though, I&#8217;ve convinced myself that it can do what I need to do, which is take a bunch of text files and generate HTML files with some cross-linking and categorization and stuff.<\/p>\n<p>I took a very brief look at pyBlosxom but recoiled in horror. Not only is it just as much of a mess as Blosxom itself, but it&#8217;s written in Python. I don&#8217;t know Python, and I don&#8217;t feel like learning YA scripting language just to keep this site chugging along. I&#8217;m far from fluent in perl but at least I can get stuff done with it.<\/p>\n<p>So, having settled on Blosxom, I turned my attention to extracting the posts on this site from the mySQL database in which they reside. This turned out to be pretty straightforward. I used the export utility in phpMyAdmin to dump the table containing the posts into an XML file. Then I wrote a perl script to parse the XML file and spit out separate text files, one for each post. The text files have a meta- tag with the posting date which Blosxom can read (thanks to the entriescache plugin) and use to organize the files by this date rather than their creation time. (Blosxom uses the creation time by default, which obviously wouldn&#8217;t work in this application.) Writing that script turned out to be far simpler than I expected, thanks in part to the XML::Simple package for perl.<\/p>\n<p>One annoyance is that WordPress uses separate database tables for both the category information and the comments associated with posts. As a result I&#8217;m going to have to organize the categories by hand, and I&#8217;m not sure what I&#8217;m going to do about the comments. I suppose there aren&#8217;t many of those so I can just copy and paste them into the appropriate entries for posterity. (The new site won&#8217;t have any sort of commenting mechanism, since that would require dynamic content.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m making progress with the new site. Nothing is online yet but I thought I&#8217;d post an occasional progress report. As I described previously, my plan is to not use any dynamically generated content but instead create the whole site with static HTML on local machines and upload it when something changes. I&#8217;ve settled on&hellip; <a class=\"more-link\" href=\"https:\/\/studionebula.com\/blog\/2007\/11\/23\/abandoning-wordpress-part-1-faded-blosxoms-and-shining-perl\">Continue reading <span class=\"screen-reader-text\">Abandoning WordPress, Part 1: Faded Blosxoms and Shining Perl<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-497","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"_links":{"self":[{"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/posts\/497","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/comments?post=497"}],"version-history":[{"count":0,"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/posts\/497\/revisions"}],"wp:attachment":[{"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/media?parent=497"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/categories?post=497"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studionebula.com\/blog\/wp-json\/wp\/v2\/tags?post=497"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}