diff options
author | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2010-01-14 20:46:08 +0100 |
---|---|---|
committer | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2010-01-14 20:46:08 +0100 |
commit | 4bc34b8a98ffa1e7f3478a596b73c4ab12d9cb1b (patch) | |
tree | 86ff0e311ec49f794b28f973c95620918ab4f9ee /src/Text/Hakyll/Render/Internal.hs | |
parent | 332f2f95cdb9c72e01a55eaf46c0b08bcf37d7e9 (diff) | |
download | hakyll-4bc34b8a98ffa1e7f3478a596b73c4ab12d9cb1b.tar.gz |
Added ReaderT to our stack.
Diffstat (limited to 'src/Text/Hakyll/Render/Internal.hs')
-rw-r--r-- | src/Text/Hakyll/Render/Internal.hs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/Text/Hakyll/Render/Internal.hs b/src/Text/Hakyll/Render/Internal.hs index 3b9bfbb..379c4c9 100644 --- a/src/Text/Hakyll/Render/Internal.hs +++ b/src/Text/Hakyll/Render/Internal.hs @@ -11,6 +11,8 @@ module Text.Hakyll.Render.Internal import qualified Data.Map as M import Text.Hakyll.Context (Context, ContextManipulation) +import Control.Monad.Reader (ask, liftIO) +import Control.Monad (liftM) import Data.List (isPrefixOf, foldl') import Data.Char (isAlpha) import Data.Maybe (fromMaybe) @@ -18,6 +20,7 @@ import Control.Parallel.Strategies (rnf, ($|)) import Text.Hakyll.Renderable import Text.Hakyll.Page import Text.Hakyll.File +import Text.Hakyll.Hakyll (Hakyll, hakyllGlobalContext) -- | Substitutes `$identifiers` in the given string by values from the given -- "Context". When a key is not found, it is left as it is. You can here @@ -79,13 +82,13 @@ pureRenderChainWith manipulation templates context = -- | Write a page to the site destination. Final action after render -- chains and such. -writePage :: Page -> IO () +writePage :: Page -> Hakyll () writePage page = do + globalContext <- liftM hakyllGlobalContext ask let destination = toDestination url - makeDirectories destination - writeFile destination body + context = (M.singleton "root" $ toRoot url) `M.union` globalContext + liftIO $ makeDirectories destination + -- Substitute $root here, just before writing. + liftIO $ writeFile destination $ finalSubstitute (getBody page) context where url = getURL page - -- Substitute $root here, just before writing. - body = finalSubstitute (getBody page) - (M.singleton "root" $ toRoot url) |