Flesh out README.

This commit is contained in:
Brit Butler 2012-08-26 14:41:32 -04:00
parent 1399a0e5c5
commit a8642c98c7
2 changed files with 49 additions and 29 deletions

69
README
View file

@ -1,36 +1,49 @@
Coleslaw aims to be flexible blog software suitable for replacing a single-user static site compiler such as Jekyll.
Full docs coming soon...
Features:
# Features
* Git for storage
* RSS feeds!
* Markdown Support with Code Highlighting provided by [colorize]().
* Currently supports: Common Lisp, Emacs Lisp, Scheme, C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff.
* Plugins to...
** Import from wordpress
** Use Mathjax/LaTeX
Forthcoming:
* Markdown support
* RST support
* Host on Amazon S3
* Code highlighting
References:
-- Jekyll
-- Hakyll
-- Hyde
* Use LaTeX (inside pairs of $$) via Mathjax
* Import from wordpress
# Installation
This software should be portable to any conforming Common Lisp implementation but this guide will assume SBCL is installed. Testing has also been done on CCL.
Server side setup:
* Setup git and create a bare repo as shown [here](http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server).
* Install Lisp and Quicklisp.
* For now, git clone https://github.com/redline6561/coleslaw.git and add
(push "/path/to/coleslaw/" asdf:*central-registry*) to your lisp's init file. (e.g. ~/.sbclrc for SBCL)
-- You may need to (require 'asdf) in that file first or even create it! (Don't panic.)
This is only temporarily necessary until coleslaw is in quicklisp.
* cp coleslaw/example.coleslawrc ~/.coleslawrc # and edit as necessary for your repo location, deploy location, etc
* cp coleslaw/example.post-receieve your-blog.git/hooks/post-receive
* chmod +x your-blog/.git/hooks/post-receive
* 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
Now whenever you push a new commit to the server, coleslaw will update your blog automatically!
The only thing left to do is point a web server of your choice at the symlink /path/to/coleslaw/.curr
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).
2. Install Lisp and Quicklisp.
3. For now, git clone https://github.com/redline6561/coleslaw.git inside ~/quicklisp/local-projects/. This is only temporarily necessary until coleslaw is in quicklisp.
4. ```cp coleslaw/example.coleslawrc ~/.coleslawrc``` # and edit as necessary
5. ```cp coleslaw/example.post-receieve your-blog.git/hooks/post-receive``` # and edit as necessary
6. ```chmod +x your-blog/.git/hooks/post-receive```
7. 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```
8. The only thing left to do is point a web server of your choice at the symlink /path/to/deploy-dir/.curr/
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.
# The Post Format
Coleslaw expects post files to be formatted as follows:
```
;;;;;
title: foo
date: yyyy-mm-dd timestamp
tags: bar, baz
format: html (for raw html) or md (for markdown)
;;;;;
your post
```
# Importing from Wordpress
There is a "plugin" to import from wordpress. At some point, it should be turned into a standalone script. Until then...
1. Export your posts from wordpress.
2. In your lisp of choice, do the following:
1. ```(ql:quickload 'coleslaw)```
2. ```(in-package :coleslaw)```
3. ```(load-plugins '(import))```
4. ```(coleslaw-import::import-posts "/path/to/export.xml")```
The XML will be read and placed into .post files in the :repo location specified in your [.coleslawrc](http://github.com/redline6561/coleslaw/blob/master/example.coleslawrc).
# Writing your own plugins
For now, see the [API](http://redlinernotes.com/docs/coleslaw.html) the [mathjax plugin](https://github.com/redline6561/coleslaw/blob/master/plugins/mathjax.lisp) for an example.
A proper guide about this should be written later.

View file

@ -76,11 +76,18 @@ else
<pre>Deploy DIR, updating the .prev and .curr symlinks.</pre></div></div>
<div class="symboldecl">
<div class="definition">
<a class="symbolname" name="(setf deploy)_func" href="#(setf deploy)_func">(setf deploy)</a>
<span class="lambdalist">new-value object</span>
<span class="symboltype">standard-generic-function</span></div>
<div class="documentation">
<pre>:undocumented</pre></div></div>
<div class="symboldecl">
<div class="definition">
<a class="symbolname" name="main_func" href="#main_func">main</a>
<span class="lambdalist"></span>
<span class="symboltype">function</span></div>
<div class="documentation">
<pre>:undocumented</pre></div></div>
<pre>Load the user's config, then compile and deploy the blog.</pre></div></div>
<div class="symboldecl">
<div class="definition">
<a class="symbolname" name="render-content_func" href="#render-content_func">render-content</a>