module Text.Hakyll.HakyllMonad
( HakyllConfiguration (..)
, Hakyll
, askHakyll
, getAdditionalContext
) where
import Control.Monad.Reader (ReaderT, ask)
import Control.Monad (liftM)
import qualified Data.Map as M
import Text.Hakyll.Context (Context)
type Hakyll = ReaderT HakyllConfiguration IO
data HakyllConfiguration = HakyllConfiguration
{
absoluteUrl :: String
,
additionalContext :: Context
,
siteDirectory :: FilePath
,
cacheDirectory :: FilePath
,
enableIndexUrl :: Bool
,
previewPollDelay :: Int
}
askHakyll :: (HakyllConfiguration -> a) -> Hakyll a
askHakyll = flip liftM ask
getAdditionalContext :: HakyllConfiguration -> Context
getAdditionalContext configuration =
M.insert "absolute" (absoluteUrl configuration)
(additionalContext configuration)