panda: A simple static blog engine

[ deprecated, library, web ] [ Propose Tags ]
Deprecated. in favor of bamboo

A simple static blog engine


[Skip to Readme]
Versions [faq] 0.0, 0.0.0.1, 0.0.0.2, 0.0.0.3, 0.0.0.4, 0.0.0.4.1, 0.0.0.4.2, 0.0.0.5, 0.0.0.5.1, 2008.9.19, 2008.9.19.1, 2008.9.19.2, 2008.9.20, 2008.9.28, 2008.9.29, 2008.10.11, 2008.10.12, 2008.10.13, 2008.10.14, 2008.10.15, 2008.10.16, 2008.10.17, 2008.10.18, 2008.10.19, 2008.10.21, 2008.10.24, 2008.10.25, 2008.10.26, 2008.10.27, 2008.11.6, 2008.11.7, 2008.12.14, 2008.12.15, 2008.12.16, 2009.1.20, 2009.4.1
Change log changelog.markdown
Dependencies base, cgi, containers, directory, filepath, haskell98, kibro (==0.3), MissingH, mps (>=2008.9.19), network, old-locale, old-time, pandoc (<=0.46), parsec (>=2), parsedate (>=3000.0.0), rss (>=3000.0.1), utf8-string (>=0.3.1), xhtml [details]
License LicenseRef-GPL
Author Wang, Jinjing
Maintainer Wang, Jinjing <nfjinjing@gmail.com>
Category Web
Home page http://github.com/nfjinjing/panda/
Uploaded by JinjingWang at Tue Oct 14 07:01:42 UTC 2008
Distributions NixOS:2009.4.1
Downloads 12507 total (290 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2017-01-02 [all 7 reports]

Modules

  • Panda
    • Config
      • Panda.Config.Global
    • Controller
      • Panda.Controller.Application
    • Extension
      • Analytics
        • Panda.Extension.Analytics.T
    • Helper
      • Panda.Helper.Env
      • Panda.Helper.Helper
      • Panda.Helper.StateHelper
    • Model
      • Panda.Model.Comment
      • Panda.Model.Post
      • Panda.Model.Static
      • Panda.Model.Tag
    • Type
      • Panda.Type.Pager
      • Panda.Type.Reader
      • Panda.Type.Sidebar
      • Panda.Type.State
      • Panda.Type.Theme
    • View
      • Atom
        • Panda.View.Atom.Comment
        • Panda.View.Atom.Post
        • Panda.View.Atom.Static
        • Panda.View.Atom.Tag
      • Control
        • Panda.View.Control.Comment
        • Panda.View.Control.Helper
        • Panda.View.Control.Post
        • Panda.View.Control.Search
        • Panda.View.Control.Static
        • Panda.View.Control.Tag
      • Widget
        • Panda.View.Widget.Body
        • Panda.View.Widget.Footer
        • Panda.View.Widget.Head
        • Panda.View.Widget.Header
        • Panda.View.Widget.Helper
        • Panda.View.Widget.Navigation
        • Panda.View.Widget.RSS
        • Panda.View.Widget.SearchBar
        • Panda.View.Widget.Sidebar
        • Panda.View.Widget.Template

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for panda-2008.10.17

[back to package description]

Panda - simple blogging engine

Sample file db structure

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

Why

  • Blogs are stored locally
  • Write in Markdown, HTML, reStructuredText or even LaTeX format ( Math equations won't render yet )
  • Remote server is a mirror of local repository
  • No server side API for publishing / editing, just use Darcs, Git or any SCM
  • No need to find external hosting of your videos, images or sound. Put them in public folder ( still managed by SCM if you wish )
  • Easy to use, just create a file and the engine takes care of the rest
  • Extensible through embedding any HTML snippets
  • Use custom.css for theming

Quick Demo

It powers my blog ;)

Note: the demo might run on an experimental branch, so differences from the cabal version could occur.

Install

install [lighttpd (version 1.4.19)](http://www.lighttpd.net/ )

Note: 1.4.20 is bugged for reason still unknown yet.

install panda

cabal install panda

bootstrap

# panda is a kibro project
kibro new myblog
cd myblog

# get a template to start
git clone git://github.com/nfjinjing/panda-template.git db
sh db/extra/scripts/bootstrap.sh

run

kibro start

It should be running on http://127.0.0.1:3000 now.

Since Panda is based on Kibro, it helps to read how Kibro works.

Goodies

Install Ruby / Rake, then rake -T to see a list of helper commands.

Config

Edit db/config/site.txt

blog_title   = My shiny blog
host_name    = yourhost.com
author_email = your_mail@yourhost.com

Restart required. (hint: rake r)

Theme

Example blueprint theme in db/config/theme/blueprint.txt

container  = container
header     = column span-12 first
navigation = column span-12 first large
main       = column span-9 first
sidebar    = column span-3 last
footer     = footer

css        = screen, blueprint-wp, custom
js         = jquery-1.2.6.min, jquery.getUrlParam, jquery.highlight-2, custom

These are custom class names for each element block.

note: css and js are required to be placed under db/public/theme/your_theme_name/css and db/public/theme/your_theme_name/js, leave out the file extensions in site.txt.

You can create new themes by adding theme files in db/config/theme, and place

theme = your_new_theme

inside site.txt.

Hacking

Another way to get Panda running with source is:

# clone the source
git clone git://github.com/nfjinjing/panda.git myblog
cd myblog

# get a template to start
git clone git://github.com/nfjinjing/panda-template.git db

# manually adjust path information for lighttpd
# edit first 6 lines of app/lighttpd/lighttpd.conf to match your path

# manual staging
ln -s db/public public

# run
kibro start

I'm heavily using the [MPS](http://github.com/nfjinjing/mps/tree/master ) package which introduces things like

reject, join, belongs_to, match, gsub

and so on.