bamboo 2009.4.27 → 2009.4.30
raw patch · 14 files changed
+51/−53 lines, 14 filesdep +hack-contribdep ~hack
Dependencies added: hack-contrib
Dependency ranges changed: hack
Files
- bamboo.cabal +2/−2
- changelog.md +7/−0
- readme.md +34/−28
- src/Bamboo.hs +1/−4
- src/Bamboo/Controller/Application.hs +1/−1
- src/Bamboo/Helper/Helper.hs +0/−4
- src/Bamboo/Helper/StateHelper.hs +0/−1
- src/Bamboo/Model/Album.hs +0/−1
- src/Bamboo/Model/Comment.hs +0/−1
- src/Bamboo/Model/Static.hs +0/−1
- src/Bamboo/Model/Video.hs +0/−2
- src/Bamboo/Type/Plugin.hs +4/−4
- src/Bamboo/View/Atom/Album.hs +2/−3
- src/Bamboo/View/Atom/Video.hs +0/−1
bamboo.cabal view
@@ -1,5 +1,5 @@ Name: bamboo-Version: 2009.4.27+Version: 2009.4.30 Build-type: Simple Synopsis: A simple blog engine on Hack Description: A simple blog engine on Hack@@ -15,7 +15,7 @@ library ghc-options: -Wall -fno-warn-missing-signatures -fno-warn-name-shadowing -fno-warn-orphans -fno-warn-type-defaults- build-depends: base, cgi, network, haskell98, old-locale, old-time, time, unix, bytestring, template, base64-string, zlib, directory, ansi-wl-pprint, filepath, containers, process, mps >= 2008.11.6, parsedate >= 3000.0.0, rss >= 3000.0.1, xhtml, kibro >= 0.4.2, utf8-string >= 0.3.3, pandoc, parsec >= 2, MissingH, gravatar >= 0.3, data-default >= 0.2, hcheat >= 2008.11.6, hack >= 2009.4.28+ build-depends: base, cgi, network, haskell98, old-locale, old-time, time, unix, bytestring, template, base64-string, zlib, directory, ansi-wl-pprint, filepath, containers, process, mps >= 2008.11.6, parsedate >= 3000.0.0, rss >= 3000.0.1, xhtml, kibro >= 0.4.2, utf8-string >= 0.3.3, pandoc, parsec >= 2, MissingH, gravatar >= 0.3, data-default >= 0.2, hcheat >= 2008.11.6, hack >= 2009.4.30, hack-contrib >= 2009.4.30 hs-source-dirs: src/ exposed-modules: Bamboo
changelog.md view
@@ -3,6 +3,13 @@ ### Feature +* use new hack structure++2009.4.27+----------++### Feature+ * middleware should be in Main.hs too, so bamboo is just an other middleware that can be plugged into any webapp 2009.4.26
readme.md view
@@ -54,23 +54,34 @@ ## Install -### With Hyena handler+### Install Bamboo Middleware + #### update cabal cabal update- -#### install hyena +#### install bamboo++ cabal install happy+ cabal install rss+ cabal install hack+ cabal install hack-contrib+ cabal install bamboo++### Choose a hack handler++#### Hyena++##### 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+ + cabal install hack-handler-hyena -#### get a starter kit ( template )+##### get a starter kit ( template ) mkdir myblog cd myblog@@ -78,7 +89,7 @@ # get a template to start git clone git://github.com/nfjinjing/bamboo-template.git db -#### create an entry point+##### create an entry point put this into Main.hs @@ -123,30 +134,21 @@ main = run app -#### run+##### 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+#### Kibro -#### install bamboo+##### Install Kibro - cabal install happy; cabal install rss; cabal install bamboo+ cabal install kibro+ cabal install hack-handler-kibro -### Install lighttpd 1.4.19 (used by kibro)+##### 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@@ -155,8 +157,12 @@ make make install -#### bootstrap+make sure `~/sbin` is in your `$PATH`. +You also need [spawn-fcgi](http://redmine.lighttpd.net/projects/spawn-fcgi) in your path. I don't remember how I got mine, but it should come with lighttpd somewhere ...++##### bootstrap+ # bamboo is a kibro project kibro new myblog cd myblog@@ -165,7 +171,7 @@ git clone git://github.com/nfjinjing/bamboo-template.git db sh db/extra/scripts/bootstrap.sh -#### run+##### run kibro start @@ -173,5 +179,5 @@ ## Links -* [Hack](http://github.com/nfjinjing/hack/tree)-* [Source](http://github.com/nfjinjing/bamboo/tree)+* [Hack](http://github.com/nfjinjing/hack)+* [Hack Contrib](http://github.com/nfjinjing/hack-contrib)
src/Bamboo.hs view
@@ -10,11 +10,8 @@ import Bamboo.Controller.Application (paths) -import Hack.Utils import Hack-import Hack.Contrib.RawRouter--import qualified Hack.Contrib.Head as H+import Hack.Contrib.Middleware.RawRouter bamboo :: MiddleWare bamboo = route paths
src/Bamboo/Controller/Application.hs view
@@ -74,7 +74,7 @@ posts.mapM (init_post tags) ^ PostV.list state >>= output_html -index_feed env = do+index_feed _ = do posts <- list posts.RSSV.rss "" "" .output_html
src/Bamboo/Helper/Helper.hs view
@@ -8,15 +8,12 @@ module Bamboo.Helper.Helper where import Bamboo.Helper.PreludeEnv-import Network.URI import Network.CGI import Text.XHtml.Strict hiding (p, meta, body) import qualified Text.XHtml.Strict as Html-import Control.Monad hiding (join) import Data.Maybe import qualified Bamboo.Type.Pager as Pager-import Char import Data.List hiding (length) import qualified Data.List as L import Bamboo.Type.Reader@@ -24,7 +21,6 @@ import System.Time import qualified Prelude as P import Data.Default-import Data.Map (Map) import System.Directory import Hack
src/Bamboo/Helper/StateHelper.hs view
@@ -7,7 +7,6 @@ import Bamboo.Helper.Env import qualified Bamboo.Config.Global as G-import Hack -- G.root = /blog -- raw_uri = blog/x
src/Bamboo/Model/Album.hs view
@@ -5,7 +5,6 @@ -- env import Bamboo.Helper.Env hiding (title, body, size, path, meta, get) import qualified Bamboo.Config.Global as G-import Bamboo.Helper.StateHelper import Bamboo.Helper.ThumbHelper import List (sort)
src/Bamboo/Model/Comment.hs view
@@ -77,7 +77,6 @@ instance Mappable Comment where from_assoc h = do let at s = h.lookup (s.show_data) .fromJust- let body = at Body let post_id = at PostId timestamp <- ( getClockTime >>= toCalendarTime ) ^ format_time G.comment_date_format
src/Bamboo/Model/Static.hs view
@@ -3,7 +3,6 @@ -- env import Bamboo.Helper.Env hiding (match, body)-import qualified Bamboo.Config.Global as G import Bamboo.Type.Reader import Bamboo.Model.Helper
src/Bamboo/Model/Video.hs view
@@ -4,8 +4,6 @@ -- env import Bamboo.Helper.Env hiding (title, body, size, path, meta, get, width, height)-import qualified Bamboo.Config.Global as G-import Bamboo.Helper.StateHelper data VideoType = MediaPlayer deriving (Eq, Show, Read)
src/Bamboo/Type/Plugin.hs view
@@ -4,8 +4,8 @@ import Bamboo.Helper.Env hiding (body, name) import qualified Bamboo.Model.Album as Album import qualified Bamboo.Model.Video as V-import qualified Bamboo.View.Atom.Album as AlbumV-import qualified Bamboo.View.Atom.Video as VV+import qualified Bamboo.View.Atom.Album as AlbumV ()+import qualified Bamboo.View.Atom.Video as VV () data PluginType = PhotoAlbum | Video | None deriving (Show, Eq) @@ -43,10 +43,10 @@ match_result x = x.fromJust.snd.first.snd.b2u -apply_plugin x = if r.isNothing then return x else r.sub_it where+apply_plugin x = if r.isNothing then return x else sub_it where r = x.optimized_match plugin = r.match_result.parse_plugin- sub_it y = case plugin.plugin_type of+ sub_it = case plugin.plugin_type of None -> return x PhotoAlbum -> do album <- plugin.args.Album.from_list ^ render_plugin
src/Bamboo/View/Atom/Album.hs view
@@ -3,7 +3,6 @@ import Bamboo.Helper.Env hiding (name, id) import Bamboo.Model.Album-import qualified Bamboo.Config.Global as G import Bamboo.Helper.Html instance DataRenderer Album where@@ -21,11 +20,11 @@ link l << img ! [src i, alt t] show_slide_viewer x = ul ! [id "slide-viewer", klass "svw"] << x.data_list.map picture_li where - picture_li (l, t, i) = li << + picture_li (_, t, i) = li << img ! [src i, alt t] show_galleria x = ul ! [klass "gallery"] << x.data_list.map picture_li where - picture_li (l, t, i) = li << + picture_li (_, t, i) = li << img ! [src i, alt t] show_fade x = ul ! [klass "fade-album"] << x.data_list.map picture_li where
src/Bamboo/View/Atom/Video.hs view
@@ -3,7 +3,6 @@ import Bamboo.Helper.Env hiding (name, id) import Bamboo.Model.Video-import qualified Bamboo.Config.Global as G import Bamboo.Helper.Html instance DataRenderer Video where