Interested in Blosxonomy, but not quite sure? If you're an existing pyBlosxom user, you can install Blosxonomy in parallel, without needing to change anything about your existing set up! That way you can give Blosxonomy a test run with no risk to your site.
Why Switch?
Folksonomy is an extremely powerful concept that allows relationships between entities to grow naturally, instead of being defined. I've recently written some plugins for pyBlosxom that enable Folksonomies for it - but in Blosxonomy, it's a central concept. The power and flexibility of tagging is tremendous, and while it may seem on the surface as just having "multiple categories", you'll discover that with Blosxonomy, you can do much much more.
That having been said, Blosxonomy is very young - and not quite full featured as far as blogging goes. If you regularly blog via XML-RPC or use other advanced blogging technologies, then Blosxonomy is not ready for you.
If you're like me, and you like simplicity and power - you're going to love Blosxonomy.
Installing Blosxonomy Safely
The first thing to do is download Blosxonomy - there's a link to the latest release in the sidebar (currently
0.3.1), and extract it to a folder on your
web server. I prefer to use /opt/blosxonomy like so:
tar -C /opt -xjf blosxonomy-0.3.1.tbz2 ln -sf /opt/blosxonomy-0.3 /opt/blosxonomy
This will create /opt/blosxonomy-0.3, which you can symlink to /opt/blosxonomy for simplicity.
This scheme makes it easy to install new versions, just redirect your symlink, and you're done.
Next, lets copy the CGI script and config file to your cgi-bin directory. I'll assume you're using ~/public_html
as your document root, and ~/public_html/cgi-bin as your CGI directory.
cp /opt/blosxonomy/web/* ~/public_html/cgi-bin
Great! We're almost there. For this next step, you'll want to have your pyBlosxom config handy, as we'll be copying some
settings out of it. Open ~/public_html/cgi-bin/config.rb in your text editor of choice, and at a minimum, set
the following settings:
bc['codebase'] = /opt/blosxonomy bc['datadir'] = < copy this from your config.py > bc['flavourdir'] = < typically the same as your datadir in pyBlosxom > # e.g. http://www.myserver.com/cgi-bin/blosxonomy.cgi bc['base_url'] = < copy from config.py, changing pyblosxom.cgi to blosxonomy.cgi >
Most of the rest of the settings are self explanatory, fill them in as you see fit.
You should now be able to access your website through Blosxonomy at the base url you specified in config.rb! Since we didn't touch anything related to pyBlosxom, your original site is still in tact, and you can give Blosxonomy a fair shot!
NOTE: If you were using my Folksonomy or TagCloud plugins in pyBlosxom, you'll get an Internal Server Error when you try to access the blosxonomy site! This is because the $tags variable that you use in your story template has been replaced. Follow my steps below to safely get Blosxonomy working!
Blosxonomy's Power
Now that we've gotten this far, you'll want to add tags, a tag cloud, related stories, and related amazon items to your blog.
Doing so requires that you modify your flavour templates, however we don't want to do anything that could mess with your existing site.
We'll make a blosxonomy-specific copy of your flavours, and then you can modify them any way you like. Let's assume that your
flavour templates and data files exist in ~/public_html/data - and do the following:
mkdir ~/public_html/flavours cp ~/public_html/data/*.html ~/public_html/flavours
Then edit your config.rb:
bc['flavourdir'] = /home/username/public_html/flavours
Blosxonomy will now use the new copy of your flavour templates, which you can modify without any consequence to pyBlosxom.
Tag your Stories
Blosxonomy is focused on Tags, not categories. You can tag your entries by adding a tags metadata line with comma separated keywords, like so:
My Post Title #tags apples,oranges,bananas My entry body
This is the same tagging format I use for my pyBlosxom plugins. If you don't already use tags, pyBlosxom will treat this as meta data which just doesn't get used - so it's completely safe - there's no reason to make a blosxonomy specific copy of your data.
Be careful though, because editing a file will change it's mtime, which pyBlosxom (and Blosxonomy) use as it's post date. A neat trick is to retouch the file back to it's original date immediately after the edit. Suppose your post has an mtime of Nov 1, 2005 at 1:59pm, you would do:
nano -w my_post.txt && touch -t 0511011359 my_post.txt
When your text editor exits, the file is retouched to it's original post date.
To make your stories show what their tags are, simply add $tagstring to your story template.
While tagging can be tedious if you have a lot of posts, but to truly benefit from Blosxonomy, it's well worth the time!
Add a tag cloud
Now that you're tagged, you'll want to replace your boring list of categories (which don't mean anything to Blosxonomy anyway) with a tag cloud. Tag clouds give an immediate visual representation of your blog content, emphasizing your primary content. Edit your head or foot template, and replace your categories with the $tagcloud variable. $tagcloud contains a <div> withid='tagcloud' which you
can customize using CSS to fit your blog's style.
Relate your Stories
This is where the power of tags starts to come in handy. Blosxonomy can infer relationships between your entries based on how you tag. To see this in action, simply add $relatedstories to your story template. When you view the story directly (i.e. through it's permalink), you'll now see a Related Stories section, with links to other stories on your blog that are similarly tagged.
The Power of Folksonomy
Folksonomy refers more specifically to the situation when large groups of people tag a large set of entities, allowing relationships to be inferred among seemingly disparate items. To this end, Blosxonomy allows you to reach out to the world and find things that are related to your stories! This is done via a powerful plugins mechanism, that allows for infinite expansion of the core system.
Blosxonomy 0.3 ships with an Amazon Web Services plugin to demonstrate this. It requires an Amazon Web Services account, and you'll need to know your access key (all this is free). Populate the settings in config.rb that are commented for the RelatedAmazonItems plugin, and then add $relatedproducts to your story template. When you view a story directly, you'll see links to Amazon products related to your entry!
Conclusion
You'll find that Blosxonomy is a light weight and powerful system, that's been designed to be immediately useful to a large audience. I'm actively developing more plugins to bring standard features such as Trackback and comments to Blosxonomy, and any help and contributions are more than welcome!
You can view a working example of all these things on my personal blog, timfanelli dot com. That site is currently running Blosxonomy and pyBlosxom in parallel -- all of the main content is driven off Blosxonomy, and I kept pyBlosxom around because I use a nifty Gallery plugin that I haven't ported over yet.
add to del.icio.us