Monday, Oct 26, 2015
Hakyll is a Haskell tool for generating static sites, mostly aimed at small-to-medium sites and personal blogs. It is highly configurable, with its own Domain Specific Language. If you need something more than Markdown support, say, TeX, or need to write your own compilation rules, it’s a powerful tool.
Assuming you have Haskell already installed, you can type:
$ cabal update $ cabal install -j hakyll
Navigate to the directory above where you’d like to create your blog and run:
$ hakyll-init blog
You can replace
blog with whatever you like.
If you run into errors, see this more detailed post on installing Hakyll
site.hs holds the configuration of your site, as an executable
Haskell program. We can compile and run it like this:
$ cd blog $ ghc --make -threaded site.hs
You’ve now made an executable called ‘site’ in your current directory. You can
now use the
watch commands for that executable.
$ ./site build
The command above made a directory called
_site that holds the HTML, CSS, and other site files you can publish.
And to see your site, now you can:
$ ./site watch
which will start a server. Have a look at your site at http://127.0.0.1:8000/.
When you’ve launched your browser you should see something like this:
First, add a few things to a new
_cache site site.hi site.o
Then, you can check in your code and commit it:
$ git init $ git add . $ git commit -m 'initial commit of blog'
Click on Create New Repository and create a new repo on bitbucket.
Click on Command line and follow the the instructions for “I have an existing project” Basically you are doing:
$ git remote add origin $ email@example.com:BITBUCKET-USERNAME/REPONAME.git
You need to replace
BITBUCKET-USERNAME with your bitbucket username and
REPONAME with the name of your repo that you created.
If you don’t have the Aerobatic plug-in installed yet, go to the Add-on Directory and install Aerobatic.
Deploying your site via Aerobatic as is a simple as setting up the plugin to point to the
Click on “Launch Website” to view your site. Our example code is hosted on Bitbucket here.