Until today, this blog ran on vimblog, a hand-rolled minimal script for displaying blog entries. In the last year or so, though, I've become a convert to git, and so what I really want to do is edit my posts on any system, commit them to a git repository, push to a remote and have them end up as blog entries on my server. Fixing vimblog to do this would have been more work than I want to deal with, but thankfully ikiwiki exists, and can do most of what I need.
So, as of now, this blog is in ikiwiki. To get there, I followed (more or less, since I'm documenting after-the-fact) these steps:
I wanted a command-line-editable blog, so in yet another fit of wheel reinvention, I rewrote bart's PHP blog in more maintainable Perl.
It still needs some features, like: - rss feeds - other formatting types (ie: wiki formatting, markdown)
but it works.
The blog rewrite is now available via hg in the vimblog repository. If it confuses you, email me and I'll write some documentation.
It looks like vimblog has another user. Welcome, Eugene.
Now with Markdown support
This post brought to you by vim, via:
vim scp://colo.dmo.ca/.blog/entries/date +"%Y%m%d%H%M%S"
If that's not cool, I don't know what is.
I'm not sure why exactly, but I keep wanting to add more features to this silly blog script. It started out as just a quick, featureless flat-file based blog tool, written to a) let me maintain a blog with vim, and b) prove to myself that I can still write small, maintainable Perl hacks.
It's still small (under 500 lines, including all the HTML and CSS templates), but it has oh so many features:
- support for multiple content-types in posting (currently plain text, HTML, and Markdown)
- articles stored in plain text for easy editing
- per-post tagging, and sidebar tag cloud
- full-content RSS feed
- permalinks to individual articles
- configurable per-article link naming
- view articles by year, month, or day
- view articles by tag
I'm hoping I run out of stuff to add soon. One of my main goals is to keep this as a small one-file Perl script, and there's only so far you can go with that sort of limitation. If it gets any bigger, I may as well just give up and use Catalyst.