{-# 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 - url 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