on master help sign in
Minor code cleanup.
commit129ab7f31af87962f73d534b045e57cb1975690b authorJasper Van der Jeugt <jaspervdj@gmail.com> dateFri 15 Jan 2010, 15:41 (17 years ago) parent62330ce
3 files changed+18−11
src/Text/Hakyll.hs+1−2 src/Text/Hakyll/Hakyll.hs+13−4 src/Text/Hakyll/Render/Internal.hs+4−5
src/Text/Hakyll.hs+1−2
@@ -15,8 +15,7 @@ import System.Directory (doesDirectoryExist, removeDirectoryRecursive)
1515-- | Default hakyll configuration.
1616defaultHakyllConfiguration :: HakyllConfiguration
1717defaultHakyllConfiguration = HakyllConfiguration
18− { hakyllDestination = "_site"
19− , hakyllGlobalContext = M.empty
18+ { additionalContext = M.empty
2019 }
2120
2221-- | Main function to run hakyll.
src/Text/Hakyll/Hakyll.hs+13−4
@@ -1,15 +1,24 @@
1+-- | Module describing the Hakyll monad stack.
12module Text.Hakyll.Hakyll
23 ( HakyllConfiguration (..)
34 , Hakyll
5+ , askHakyll
46 ) where
57
68import Text.Hakyll.Context (Context)
7−import System.FilePath (FilePath)
8−import Control.Monad.Reader (ReaderT)
9+import Control.Monad.Reader (ReaderT, ask)
10+import Control.Monad (liftM)
911
12+-- | Hakyll global configuration type.
1013data HakyllConfiguration = HakyllConfiguration
11− { hakyllDestination :: FilePath
12− , hakyllGlobalContext :: Context
14+ { -- | An additional context to use when rendering. This additional context
15+ -- is used globally.
16+ additionalContext :: Context
1317 }
1418
19+-- | Our custom monad stack.
1520type Hakyll = ReaderT HakyllConfiguration IO
21+
22+-- | Simplified "ask" function for the Hakyll monad stack.
23+askHakyll :: (HakyllConfiguration -> a) -> Hakyll a
24+askHakyll = flip liftM ask
src/Text/Hakyll/Render/Internal.hs+4−5
@@ -11,8 +11,7 @@ module Text.Hakyll.Render.Internal
1111
1212import qualified Data.Map as M
1313import Text.Hakyll.Context (Context, ContextManipulation)
14−import Control.Monad.Reader (ask, liftIO)
15−import Control.Monad (liftM)
14+import Control.Monad.Reader (liftIO)
1615import Data.List (isPrefixOf, foldl')
1716import Data.Char (isAlpha)
1817import Data.Maybe (fromMaybe)
@@ -20,7 +19,7 @@ import Control.Parallel.Strategies (rdeepseq, ($|))
2019import Text.Hakyll.Renderable
2120import Text.Hakyll.Page
2221import Text.Hakyll.File
23−import Text.Hakyll.Hakyll (Hakyll, hakyllGlobalContext)
22+import Text.Hakyll.Hakyll
2423
2524-- | Substitutes `$identifiers` in the given string by values from the given
2625-- "Context". When a key is not found, it is left as it is. You can here
@@ -84,9 +83,9 @@ pureRenderChainWith manipulation templates context =
8483-- chains and such.
8584writePage :: Page -> Hakyll ()
8685writePage page = do
87− globalContext <- liftM hakyllGlobalContext ask
86+ additionalContext' <- askHakyll additionalContext
8887 let destination = toDestination url
89− context = (M.singleton "root" $ toRoot url) `M.union` globalContext
88+ context = additionalContext' `M.union` (M.singleton "root" $ toRoot url)
9089 makeDirectories destination
9190    -- Substitute $root here, just before writing.
9291 liftIO $ writeFile destination $ finalSubstitute (getBody page) context