Skip to content
A simple static site generator in Ioke
Ioke Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
examples/ Enable PHP Extra style footnoting in markdown. Aug 4, 2011
lib Deal with the case of no last modification date in sitemap. Aug 3, 2011
spec Add mising bang to xml comments after sanity check revealed the lack. Mar 3, 2011
tests Handle newlines in attribute lists. Jan 19, 2014
LICENCE Add LICENCE file. Feb 7, 2011
byeloblog.atomish A fix for invocation where cwd gets lost. Jun 10, 2013
byeloblog.ik Make byeloblog.ik able to be invoked from a shebang line in order to … Sep 11, 2011
css.ik Allow for string literals inside of css rules. Mar 24, 2012
genx.atomish 'let' and '=' do not play nicely. This is problematic. Jun 9, 2013
genx.ik Remove timestamp checking and filename printing from template build f… Dec 8, 2011 Add an 'installer' for users who don't know what a path variable is o… Feb 16, 2011
json.ik Remove unneeded print statement. Aug 23, 2011
shell.ik Fix precedence problem in Shell out when checking env for emptiness; … Aug 1, 2011
xml.atomish Handle newlines in attribute lists. Jan 18, 2014
xml.ik Add in options to build from a template, rather than loading a file. … Dec 8, 2011


Byeloblog is a simple static site generator, in the vein of Tom Preston-Werner's Jekyll.


Byelobog was a fakeloric Jekyll to Chernobog's Hyde in modern reinterpretations of pre Christian Slavic mythology; Byeloblog as a neologism was too much for me to resist.

No really, What?

This is a combination of simple libraries written in Ioke for templating and generating xhtml and css, with some good default options and templates for blogs. It also contains a script using these libraries that builds out a website based on a simple configuration file and your data.

But Why?

Assume that you want to blog like a hacker. This means writing posts in Vim or Emacs, in some kind of high level form, and posting using the terminal. You also want your data to live somewhere under version control. Flat files are one possible kind of solution to this. To avoid crufting things up with the build apparatus, you want an existing system that can be installed external to your data. You also probably want to do something original and possibly stupid; to aid this, the configuration language should be turing complete. Keeping a single conf file in a high level language in your data can be excused as helping to document the format of your data, but you want something suitably close to Omega; so, Byeloblog uses Ioke.


Put the development branch somewhere convenient with

git clone git://

Alternatively, download as a tarball with


Then, extract it somewhere convenient, and add it to your path.

Alternatively, if you are running Linux and are lazy you can cd to the Byeloblog root directory and run

sudo ./

This will just create a symlink in /usr/bin pointing to byeloblog.ik.


If Ioke and the byeloblog.ik script are on your path, you can simply add a build.ik file describing your site layout to the root of a copy of your site data, and run byeloblog.ik

The format of the build.ik file, and more information on usage can be found at the examples or docs pages.

Something went wrong with that request. Please try again.