$ minicom -o console
Welcome to minicom
Press CTRL-A Z for help on special keys

AT &F &Y0 &W &W1 Enter
AT Z Enter

Alt-A Q
Leave without reset? Yes

Using another static site generator...

Now it's time for Coleslaw: a great tool for that.


Because I have moved my desktop environment to: SBCL + Quicklisp + Stumpwm and because coleslaw is very simple and efficient.



Common Lisp Implementation

Install instructions at the Github suggests two Common Lisp implementations:

  • SBCL - Steel Bank Common Lisp
  • CCL - Clozure Common Lisp

My choice was SBCL because has a faster loading in regular terminal and Slime into Emacs. Considering my skills with Elisp and recommendation at coleslaw README. ;-)

Then at FreeBSD:

sudo pkg install sbcl rsync


Quicklisp by Quicklisp:

"Quicklisp is a library manager for Common Lisp. It works with your existing Common Lisp implementation to download, install, and load any of over 1,200 libraries with a few simple commands."

The installation is very easy by following the instructions at Quicklisp website.


Create a directory for your blog:

mkdir -p ~/yourblog/pages
mkdir -p ~/yourblog/posts
curl https://github.com/kingcons/coleslaw/blob/3d2bb56a3ff23f8a7af491772d253761018754fa/examples/example.coleslawrc > ~/yourblog/.coleslawrc


Then edit ~/yourblog/.coleslawrc(Lisp) according your settings:

(:author "Brit Butler"
 :deploy-dir "/home/git/blog/"
 :domain "http://blog.redlinernotes.com"
 :feeds ("lisp")
 :plugins ((analytics :tracking-code "foo")
           (disqus :shortname "my-site-name")
           ; (incremental)  ;; *Remove comment to enable incremental builds.
           ; (versioned)    ;; *Remove comment to enable symlinked, timestamped deploys.
 :routing ((:post           "posts/~a")
           (:tag-index      "tag/~a")
           (:month-index    "date/~a")
           (:numeric-index  "~d")
           (:feed           "~a.xml")
           (:tag-feed       "tag/~a.xml"))
 :sitenav ((:url "http://redlinernotes.com/" :name "Home")
           (:url "http://twitter.com/redline6561" :name "Twitter")
           (:url "http://github.com/redline6561" :name "Code")
           (:url "http://soundcloud.com/redlinernotes" :name "Music")
           (:url "http://redlinernotes.com/docs/talks/" :name "Talks"))
 :staging-dir "/tmp/coleslaw/"
 :title "Improved Means for Achieving Deteriorated Ends"
 :theme "hyde")

;; * Prerequisites described in plugin docs.

More details about configuration

Editing Posts

The source of posts are stored at ~/yourwebsite/posts/ under the .post extension and the content will be according heading of these files. Example:

title: foo
tags: bar, baz
date: yyyy-mm-dd hh:mm:ss
format: html (for raw html) or md (for markdown)
your post

Required: title and format.

Editing Pages

The source of pages are at ~/yourwebsite/pages/ under the .page file extension. The content is like the .post files but title and url are required.


Then to deploy at SBCL execute:

(ql:quickload "coleslaw") (coleslaw:main "/<full path to yourblog>/")

See the Coleslaw docs at Github.

by Lenilson Jose Dias
Written on 2016-06-25