panda-0.0: Panda/Controller/Application.hs
{-# OPTIONS -fno-monomorphism-restriction #-}
module Panda.Controller.Application (pages) where
import Kibro
import Kibro.DB.Sqlite3
import Control.Monad hiding (join)
import Control.Arrow ((>>>))
import Data.List
import Network.URI
import Network.CGI
import Text.Pandoc.UTF8
import MPS
import Prelude hiding ((.), (/), id)
import Panda.Helper.Helper
import Panda.Model.Blog as Blog
import Panda.View.Blog as BlogV
import Panda.View.Template as T
import Panda.View.Static as StaticV
import Panda.Config.Global
blog_regex = "^/[0-9][0-9]-[0-9][0-9]-[0-9][0-9]"
pages =
[ ("^/$", index )
, ("^/([?].+$)?$", index )
, ("^/rss.xml$", blog_feed )
, (blog_regex, blog )
, ("^/static/.", static )
, ("^/bench_template", bench_template )
, ("^/bench_io", bench_io )
, ("^/debug", debug )
]
index = do
blogs <- Blog.list.liftIO
p <- pager 10 $ blogs.length
blogs.BlogV.list p.output_html
blog_feed = do
blogs <- Blog.list.liftIO
blogs.BlogV.rss.output
blog = do
id <- uri <.> ("blog/" ++)
blog <- Blog.get id .liftIO
blog.BlogV.view.output_html
static = do
id <- uri
(flat_uri / id) .readFile .liftIO <.> StaticV.view >>= output_html
bench_template = T.page "bench me" .output_html
bench_io = readFile "src/Main.hs" .liftIO >>= output
debug = uri >>= output