packages feed

panda-2008.10.24: Panda/Type/Theme.hs

module Panda.Type.Theme where

import Prelude hiding ((.))
import Panda.Helper.Env hiding (name, header)

data Theme = Theme
  { name        :: String
  , container   :: String
  , header      :: String
  , navigation  :: String
  , main        :: String
  , sidebar     :: String
  , footer      :: String
  , css         :: [String]
  , js          :: [String]
  } deriving (Show, Read)
  
to_theme xs = Theme 
  { name        = at "name"
  , container   = at "container"
  , header      = at "header"
  , navigation  = at "navigation"
  , main        = at "main"
  , sidebar     = at "sidebar"
  , footer      = at "footer"
  , css         = at "css" .css_list
  , js          = at "js"  .js_list
  }
  where
    at s = xs.lookup s .fromJust
    css_list s = s.parse_list.map (\x -> "/theme/" ++ at "name" ++ "/css/" ++ x ++ ".css")
    js_list s  = s.parse_list.map (\x -> "/theme/" ++ at "name" ++ "/js/" ++ x ++ ".js")
    
blank_theme = Theme
  { name        = ""
  , container   = ""
  , header      = ""
  , navigation  = ""
  , main        = ""
  , sidebar     = ""
  , footer      = ""
  , css         = [""]
  , js          = [""]
  }