Today, I migrated all my domains to the new server. While at it, I set up a mirror of my blog repository at http://git.plenz.com/blog/. You could view the pure markdown files there, or see how I messed around with Jekyll stuff.
The sync is called from a
post-receive hook with the command:
env GIT_SSH=`pwd`/hooks/blogpush git push -f email@example.com:blog master
blogpush is just a little wrapper to make SSH use the
public key that has access to the repository:
#!/bin/sh ssh -o ControlMaster=no -i /home/feh/blog.git/hooks/fehblog $@
This is my first post with a custom shell script. It automatically adds a YAML header on top of new posts, starts an editor on it and later converts the title to a nice filename.
Eventually, the script adds and commits the new post to the git repo and pushes the result. "Recovering" is supported – sort of. ;-)
Which blog software to take? – Not a simple question to answer.
I had my mind on Ikiwiki for quite some time. I haven't got it working, though. After several tries, I gave up. (The problem had in part something to do with an outdated git version, which I cannot upgrade on the server without going through quite some hassle.)
I decided to use Jekyll now. As with other "static site generators", the documentation is pretty rudimentary (and largely not very helpful). After some hours of fiddling around, I finally found a way to integrate tags and a tag cloud. This blog post has been very helpful, although I had to patch the file. Strangely, also, Jekyll refused to load any plugins when calling it like
/var/lib/gems/1.8/bin/jekyll --no-auto <source> <destination>
To fix this, I set up git's
post-receive hook to
cd to that
directory first, and then call Jekyll with
. as source paramter.
Time for a quick listing of pros and cons:
vimwith Markdown syntax
The template mechanisms seem managable, though. As for security and speed, the pages are generated once (even for pagination stuff) and are copied as simple static HTML pages to the web server. This is nice.
In the weeks to come I might publish the git repo of this blog where my other git repos are at.