2012-08-26 14:48:23 -04:00
# coleslaw
2012-09-20 18:33:29 -04:00
< img src = "https://raw.github.com/redline6561/coleslaw/master/themes/hyde/css/logo_medium.jpg" alt = "coleslaw logo" align = "right" / >
2011-04-16 15:45:37 -04:00
2012-08-29 14:58:49 -04:00
> [Czeslaw Milosz](http://blog.redlinernotes.com/tag/milosz.html) was the writer-in-residence at UNC c. 1992.
> I used to see him all the time at the Hardback Cafe, always sitting at a two-top
> drinking coffee, reading, writing, eating chips and salsa. I remember a gentleness
> behind the enormous bushy eyebrows and that we called him Coleslaw. - anon
2014-06-04 11:22:47 -04:00
Coleslaw aims to be flexible blog software suitable for replacing a single-user static site generator such as [Jekyll ](http://jekyllrb.com/ ).
2012-08-29 14:58:49 -04:00
## Features
2012-08-19 00:29:44 -04:00
* Git for storage
2014-06-04 11:22:47 -04:00
* RSS and Atom feeds
* Markdown Support with Code Highlighting provided by [colorize ](http://www.cliki.net/colorize )
2012-11-28 16:56:42 -05:00
* Currently supports: Common Lisp, Emacs Lisp, Scheme, C, C++, Java, Python, Erlang, Haskell, Obj-C, Diff.
2013-01-31 00:23:50 -05:00
2013-04-21 12:13:03 -04:00
* A [Plugin API ](http://github.com/redline6561/coleslaw/blob/master/docs/plugin-api.md ) and [**plugins** ](http://github.com/redline6561/coleslaw/blob/master/docs/plugin-use.md ) for...
2014-05-02 15:15:27 -04:00
* Static Pages
2014-06-04 11:22:47 -04:00
* Sitemap generation
* Incremental builds
2013-01-14 12:29:28 -05:00
* Analytics via Google
2014-05-02 15:15:27 -04:00
* Comments via [Disqus ](http://disqus.com/ )
* Hosting via [Github Pages ](https://pages.github.com/ ), [Heroku ](http://heroku.com/ ), or [Amazon S3 ](http://aws.amazon.com/s3/ )
2014-06-04 11:22:47 -04:00
* [Tweeting ](http://twitter.com/ ) about new posts
2014-05-02 15:15:27 -04:00
* Using LaTeX via [Mathjax ](http://mathjax.org/ )
2014-06-04 11:22:47 -04:00
* Writing posts in ReStructured Text
2014-05-02 15:15:27 -04:00
* Importing posts from [Wordpress ](http://wordpress.org/ )
2013-01-31 00:23:50 -05:00
2012-09-14 17:29:34 -04:00
* There is also a [Heroku buildpack ](https://github.com/jsmpereira/coleslaw-heroku ) maintained by Jose Pereira.
2014-06-04 11:22:47 -04:00
## Example Sites
2014-05-04 21:05:32 +02:00
* [redlinernotes ](http://redlinernotes.com/blog/ )
* [kenan-bolukbasi.log ](http://kenanb.com/ )
* [Nothing Really Matters ](http://ironhead.xs4all.nl/ )
* [A year and a smile. ](http://blog.sjas.de )
2012-08-19 00:29:44 -04:00
2014-04-15 22:27:35 -04:00
## Hacking
A core goal of *coleslaw* is to be both pleasant to read and easy to hack on and extend. If you want to understand the internals and bend *coleslaw* to do new and interesting things, I strongly encourage you to read the [Hacker's Guide to Coleslaw ](https://github.com/redline6561/coleslaw/blob/master/docs/hacking.md ).
2012-08-29 14:58:49 -04:00
## Installation
2014-05-02 15:15:27 -04:00
This software should be portable to any conforming Common Lisp implementation but testing is primarily done on [SBCL ](http://www.sbcl.org/ ) and [CCL ](http://ccl.clozure.com/ ).
2012-08-22 10:05:02 -04:00
Server side setup:
2012-08-26 14:48:23 -04:00
2012-08-26 14:41:32 -04:00
1. Setup git and create a bare repo as shown [here ](http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server ).
2014-05-02 15:15:27 -04:00
2. Install Lisp (we recommend SBCL) and [Quicklisp ](http://quicklisp.org/ ).
2014-05-02 15:22:36 -04:00
3. ```wget -c https://raw.github.com/redline6561/coleslaw/master/examples/example.coleslawrc -O ~/.coleslawrc` `` # and edit as necessary
2013-01-12 10:58:26 -05:00
4. ```wget -c https://raw.github.com/redline6561/coleslaw/master/examples/example.post-receive -O your-blog.git/hooks/post-receive` `` # and edit as necessary
2012-09-04 22:06:57 -04:00
5. ```chmod +x your-blog/.git/hooks/post-receive` ``
6. Create or clone your blog repo locally. Add your server as a remote with ```git remote add prod git@my-host.com:path/to/repo.git` ``
7. Point the web server of your choice at the symlink /path/to/deploy-dir/.curr/
2012-08-26 14:48:23 -04:00
2014-05-02 15:15:27 -04:00
Now whenever you push a new commit to the server, coleslaw will update your blog automatically! You may need to `git push -u prod master` the first time.
2012-08-26 14:41:32 -04:00
2012-08-29 14:58:49 -04:00
## The Post Format
2012-08-26 14:41:32 -04:00
Coleslaw expects post files to be formatted as follows:
```
;;;;;
title: foo
tags: bar, baz
2012-09-20 18:33:29 -04:00
date: yyyy-mm-dd hh:mm:ss
2012-08-26 14:41:32 -04:00
format: html (for raw html) or md (for markdown)
;;;;;
your post
```
2012-08-29 14:58:49 -04:00
## Theming
2014-04-14 17:10:03 -04:00
Two themes are provided: hyde and readable (based on [bootswatch readable ](http://bootswatch.com/readable/ )). Hyde is the default. A guide to creating themes for coleslaw lives [here ](https://github.com/redline6561/coleslaw/blob/master/docs/themes.md ).