From d6fbe303ae389d8c0c17b7181cfba2180f404fb4 Mon Sep 17 00:00:00 2001 From: Jasper Van der Jeugt Date: Sun, 24 Jan 2010 14:05:18 +0100 Subject: [PATCH] Simplified pureRenderAndConcat function. --- hakyll.cabal | 1 - src/Text/Hakyll/Render/Internal.hs | 13 +++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/hakyll.cabal b/hakyll.cabal index ddbf65e..a8eacd2 100644 --- a/hakyll.cabal +++ b/hakyll.cabal @@ -34,7 +34,6 @@ library mtl >= 1.1, old-locale >= 1, time >= 1, - deepseq >= 1, binary >= 0.5 exposed-modules: Text.Hakyll Text.Hakyll.Hakyll diff --git a/src/Text/Hakyll/Render/Internal.hs b/src/Text/Hakyll/Render/Internal.hs index ecde1d7..03210ac 100644 --- a/src/Text/Hakyll/Render/Internal.hs +++ b/src/Text/Hakyll/Render/Internal.hs @@ -11,7 +11,6 @@ module Text.Hakyll.Render.Internal import qualified Data.Map as M import Text.Hakyll.Context (Context, ContextManipulation) -import Control.DeepSeq (deepseq) import Control.Monad.Reader (liftIO) import Data.List (isPrefixOf, foldl') import Data.Char (isAlphaNum) @@ -56,20 +55,18 @@ pureRenderWith manipulation template context = -- final render (just before writing). let contextIgnoringRoot = M.insert "root" "$root" (manipulation context) body = regularSubstitute template contextIgnoringRoot - -- Force the body to be rendered. - in body `deepseq` M.insert "body" body context + in M.insert "body" body context -- | A pure renderAndConcat function. pureRenderAndConcatWith :: ContextManipulation -- ^ Manipulation to apply. -> [String] -- ^ Templates to use. -> [Context] -- ^ Different renderables. -> String -pureRenderAndConcatWith manipulation templates contexts = - foldl' renderAndConcat [] contexts +pureRenderAndConcatWith manipulation templates = + concatMap renderAndConcat where - renderAndConcat chunk context = - let rendered = pureRenderChainWith manipulation templates context - in chunk ++ fromMaybe "" (M.lookup "body" rendered) + renderAndConcat = fromMaybe "" . M.lookup "body" + . pureRenderChainWith manipulation templates -- | A pure renderChain function. pureRenderChainWith :: ContextManipulation