packages feed

bamboo-2009.4.26: readme.md

# Bamboo: a simple blog engine on Hack

Bamboo is a port of [Panda](http://github.com/nfjinjing/panda/tree), but runs on top of Hack. It's an experimental project but quite portable.

## Features

### plain text as data source

    db
    |---- blog
    |     |---- 08-09-01 first post
    |     |---- 09-09-02 learn javascript.html
    |
    |---- tag
    |     |---- programming
    |     |---- funny
    |
    |---- static
          |---- About

### simple config

    blog_title    = C大调
    blog_subtitle = 野猫不吃薯片
    host_name     = jinjing.easymic.com
    author_email  = nfjinjing@gmail.com

    navigation    = About
    per_page      = 7
    sidebar       = Blogroll.md
    favicon       = bamboo_icon.png

### hacker friendly

* posts are in plain text
* SCM for publishing / data managing ( not really a feature, but a design goal from the beginning )
* blindly follows the KISS principle from code to UI: be a simple blog, no more no less

## Demo

### blog

[My blog](http://jinjing.easymic.com) source is available as a git repo:

    git clone git://github.com/nfjinjing/jinjing-blog.git

Or [browser](http://github.com/nfjinjing/jinjing-blog/tree/master) online

Note: This blog is using the Kibro handler. It's running under lighttpd and in fcgi. Definitely more robust, but require some set up work. 

### config

[jinjing's blog config file](http://github.com/nfjinjing/jinjing-blog/blob/401a541443d88bbf8d844874c1473d4b3bc81784/config/site.txt)

## Install

### With Hyena handler

#### update cabal

    cabal update
    
#### install hyena

    git clone git://github.com/tibbe/hyena.git
    cd hyena
    cabal install

#### install bamboo

    cabal install happy; cabal install rss; cabal install bamboo

#### get blog starter kit ( template )

    mkdir myblog
    cd myblog
    
    # get a template to start
    git clone git://github.com/nfjinjing/bamboo-template.git db
    
#### create a entry point
    
put these into Main.hs
    
    module Main where

    import Bamboo
    import Hack.Handler.Hyena

    main = run bamboo
    
    
#### run

    ghc --make -O2 Main.hs
    ./Main

It should be running on [http://127.0.0.1:3000](http://127.0.0.1:3000) now.

### With Kibro handler

#### update cabal

    cabal update

#### install hyena

    git clone git://github.com/tibbe/hyena.git
    cd hyena
    cabal install

#### install bamboo

    cabal install happy; cabal install rss; cabal install bamboo

### Install lighttpd 1.4.19 (used by kibro)

    wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
    tar zxfv lighttpd-1.4.19.tar.gz
    cd lighttpd-1.4.19
    ./configure --prefix=$HOME
    make
    make install

#### bootstrap

    # bamboo is a kibro project
    kibro new myblog
    cd myblog
    
    # get a template to start
    git clone git://github.com/nfjinjing/bamboo-template.git db
    sh db/extra/scripts/bootstrap.sh
    
#### run

    kibro start

It should be running on [http://127.0.0.1:3000](http://127.0.0.1:3000) now.

## Links

* [Hack](http://github.com/nfjinjing/hack/tree)
* [Source](http://github.com/nfjinjing/bamboo/tree)