bamboo-theme-mini-html5-2009.11.3: src/Bamboo/Theme/MiniHTML5/Widget/Helper.hs
{-# LANGUAGE NoImplicitPrelude #-}
module Bamboo.Theme.MiniHTML5.Widget.Helper where
import Bamboo.Theme.MiniHTML5.Env hiding (link, p)
import qualified Bamboo.Model.Tag as Tag
import qualified Bamboo.Type as C
import qualified Bamboo.Type.State as State
import MPS
import Data.Maybe
rss_url_link_pair :: State.State -> (String, MoeUnit)
rss_url_link_pair s =
if tagged
then link ( s.config.tag_id / tag_name) tag_name
else link "" home_nav
where
tag_name = Tag.get_name uid
uid = State.uid s
tagged = uid.match "^tag/.+" .isJust
url r = s.env.slashed_script_name / r / "rss.xml"
link r x = (url r, a [href r, _class "feed"] - div [_class "feedlink"] - str x)
tag_link :: State -> String -> MoeUnit
tag_link s x = a [href - s.env.slashed_script_name / s.config.tag_id / x ] - str x
nav :: Pager -> String -> MoeUnit
nav p r = nav' - do
nav_previous
nav_next
where
r' = if r.ends_with "&" then r else r ++ "?"
space_html = str " "
nav_previous =
if p.has_previous
then
a [_class "previous", href - r' ++ "page=" ++ p.previous.show] -
str "« Next Entries"
else space_html
nav_next =
if p.has_next
then
a [_class "next", href - r' ++ "page=" ++ p.next.show] -
str "Previous Entries »"
else space_html