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. 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 * Git for storage
* RSS feeds! * 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... * Plugins to...
** Import from wordpress * Use LaTeX (inside pairs of $$) via Mathjax
** Use Mathjax/LaTeX * Import from wordpress
Forthcoming:
* Markdown support
* RST support
* Host on Amazon S3
* Code highlighting
References:
-- Jekyll
-- Hakyll
-- Hyde
# 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. 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: 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). 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).
* Install Lisp and Quicklisp. 2. Install Lisp and Quicklisp.
* For now, git clone https://github.com/redline6561/coleslaw.git and add 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.
(push "/path/to/coleslaw/" asdf:*central-registry*) to your lisp's init file. (e.g. ~/.sbclrc for SBCL) 4. ```cp coleslaw/example.coleslawrc ~/.coleslawrc``` # and edit as necessary
-- You may need to (require 'asdf) in that file first or even create it! (Don't panic.) 5. ```cp coleslaw/example.post-receieve your-blog.git/hooks/post-receive``` # and edit as necessary
This is only temporarily necessary until coleslaw is in quicklisp. 6. ```chmod +x your-blog/.git/hooks/post-receive```
* cp coleslaw/example.coleslawrc ~/.coleslawrc # and edit as necessary for your repo location, deploy location, etc 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```
* cp coleslaw/example.post-receieve your-blog.git/hooks/post-receive 8. The only thing left to do is point a web server of your choice at the symlink /path/to/deploy-dir/.curr/
* chmod +x your-blog/.git/hooks/post-receive 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.
* 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 Post Format
The only thing left to do is point a web server of your choice at the symlink /path/to/coleslaw/.curr 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> <pre>Deploy DIR, updating the .prev and .curr symlinks.</pre></div></div>
<div class="symboldecl"> <div class="symboldecl">
<div class="definition"> <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> <a class="symbolname" name="main_func" href="#main_func">main</a>
<span class="lambdalist"></span> <span class="lambdalist"></span>
<span class="symboltype">function</span></div> <span class="symboltype">function</span></div>
<div class="documentation"> <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="symboldecl">
<div class="definition"> <div class="definition">
<a class="symbolname" name="render-content_func" href="#render-content_func">render-content</a> <a class="symbolname" name="render-content_func" href="#render-content_func">render-content</a>