{-# LANGUAGE NoImplicitPrelude #-} module Bamboo.Type.Theme where import Bamboo.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) data ThemeData = Name | Container | Header | Navigation | Main | Sidebar | Footer | Css | Js deriving (Eq, 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.show_data) .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") instance Default Theme where def = Theme def def def def def def def def def