Alternative view: by date.
Some time ago, the box on which my blog is hosted went dramatically down, and I had to restore the blog by populating the git repository again, from my local copy.
Unfortunately, that means that the wiki had to be rebuilt from scratch, and all creation dates were messed up, leading some planet-like sites to show all of my posts again.
To ensure that this won’t happen again (even if I switch branches in the git repositories, move some files around, trash the ikiwiki cache, etc.), it looks like using meta dates is the way to go, for example:
(One can use
2009-07-02 00:00:00 and
2009-07-02 01:00:00 to sort
several entries on the same day, too.)
This way, all pages are rendered identically on every system.
To help maintaining those extra dates (kind of a burden, to be
honest), I’ve written a tiny Perl script to automate
it, and specified an alias in
.git/config for that repository:
[alias] ikiwiki-check = "!blog/2009/07/02/ikiwiki-dates.pl"
Inline replacement (in case of conflicts: same date without time, or
with same time) or additions are then performed, and
git status will
show what needs tweaking.
More work that I initially imagined, but robustness should follow.
Ensure there's a
syntaxdirectory in the personal vim directory.
mkdir -p ~/.vim/syntax
Download the markdown syntax file and put it in this directory (e.g.
*.mdwnfiles and avoid long lines (in
" Help autodetection augroup filetypedetect au! BufRead,BufNewFile *.mdwn setfiletype markdown augroup END " Limit the line length for this mode autocmd FileType markdown set tw=80
Logo added at the top of the page.
Idea taken from http://ikiwiki.info/logo/, and adapted with a random font. To
get a PNG file from the SVG one, just create a group with the appropriate
objects, named it say
kibilogo, and then call:
inkscape -w 150 -i kibilogo -e logo.png logo.svg
A bit of CSS later, that's done.
Thanks to ebzao, I'm back on the internets. :-)
To use ikiwiki with a remote host, just do the following:
web.giton the server;
put the following in
web.git/.git/hooks/post-receiveand make it executable (it looks like setting
GIT_DIRis mandatory to have run successfully when
pushing, although locally or over through
ssh, everything seems fine without it...):
export GIT_DIR=~/web.git/.git cd $GIT_DIR/.. git checkout -f # Update this repository ikiwiki --setup ikiwiki.setup # Update the HTML pages echo 'HTML update: done!' # Notify the 'push'-er
git-cloneon the local host;
And now the site gets automatically updated some seconds after a
(Note to self: a code block inside a list needs to be indented twice.)
Summary of my setup
Choose a hierarchy for the blog entries. It is
blog/$year/$month/$day/$title.mdwnright now, and tags are stored under
Enable some plugins. Currently:
sidebar: integrate a menu bar on each page;
tag: ease the creation of tags and links;
pagestats: needed to generate automatically the list of the tags;
prettydate: specify a string format for the Posted/Last edited dates;
shortcut: enable many interesting shortcuts like
Create some placeholders:
tags/*.mdwn(one for each tag),
Write a configuration file:
ikiwiki.setup, enabling these plugins, and containing some basic information like origin and target directories.
learn the syntax for real;
- automate the creation of
blog/$year/$month, and so on. Extend a module to do so?
- poke the author of the calendar plugin so as to get the code;
- report that shortcuts containing slashes aren't working;
- integrate it in git.