21
21
import Data.Text (Text)
23
23
import Control.Applicative
24
import Text.Lucius (luciusFile, luciusFileReload)
25
import Text.Coffee (coffeeFile, coffeeFileReload)
26
import Text.Cassius (cassiusFile, cassiusFileReload)
27
import Yesod.Core (whamletFile, addJulius, addCassius, addLucius)
28
import System.Directory (doesFileExist)
29
import Data.Monoid (mempty)
31
25
-- | Which Persistent backend this site is using.
32
26
type PersistConfig = SqliteConf
61
55
widgetFile :: String -> Q Exp
63
widgetFile = widgetFileReload
57
widgetFile = Yesod.Default.Util.widgetFileReload
65
widgetFile = widgetFileNoReload
59
widgetFile = Yesod.Default.Util.widgetFileNoReload
69
widgetFileNoReload :: FilePath -> Q Exp
70
widgetFileNoReload x = do
71
let h = whenExists x "hamlet" whamletFile
72
let ca = whenExists x "cassius" cassiusFile
73
let c = whenExists x "coffee" coffeeFile
74
let l = whenExists x "lucius" luciusFile
75
[|$h >> addCassius $ca >> addJulius $c >> addLucius $l|]
78
widgetFileReload :: FilePath -> Q Exp
79
widgetFileReload x = do
80
let h = whenExists x "hamlet" whamletFile
81
let ca = whenExists x "cassius" cassiusFileReload
82
let c = whenExists x "coffee" coffeeFileReload
83
let l = whenExists x "lucius" luciusFileReload
84
[|$h >> addJulius $c >> addCassius $ca >> addLucius $l|]
87
whenExists :: String -> String -> (FilePath -> Q Exp) -> Q Exp
88
whenExists x glob f = do
89
let fn = Yesod.Default.Util.globFile glob x
90
e <- qRunIO $ doesFileExist fn
91
if e then f fn else [|mempty|]
95
63
{ extraCopyright :: Text
96
64
, extraAnalytics :: Maybe Text -- ^ Google Analytics
100
67
parseExtra :: DefaultEnv -> Object -> Parser Extra
101
68
parseExtra _ o = Extra
102
69
<$> o .: "copyright"