on master help sign in
Added some strictness.
e5202ceJasper Van der Jeugt
hakyll.cabal+2−1
@@ -34,7 +34,8 @@ library
34 network >= 2,
34 network >= 2,
35 mtl >= 1.1,
35 mtl >= 1.1,
36 old-locale >= 1,
36 old-locale >= 1,
37− time >= 1
37+ time >= 1,
38+ parallel >= 1
38 exposed-modules: Text.Hakyll
39 exposed-modules: Text.Hakyll
39 Text.Hakyll.Render
40 Text.Hakyll.Render
40 Text.Hakyll.Renderable
41 Text.Hakyll.Renderable
src/Text/Hakyll/Page.hs+5−2
@@ -10,6 +10,8 @@ import qualified Data.Map as M
10import qualified Data.List as L
10import qualified Data.List as L
11import Data.Maybe (fromMaybe)
11import Data.Maybe (fromMaybe)
12
12
13+import Control.Parallel.Strategies (rnf, ($|))
14+
13import System.FilePath (FilePath, takeExtension)
15import System.FilePath (FilePath, takeExtension)
14import System.IO
16import System.IO
15
17
@@ -110,13 +112,14 @@ readPage pagePath = do
110
112
111 -- Render file
113 -- Render file
112 let rendered = (renderFunction $ takeExtension path) body
114 let rendered = (renderFunction $ takeExtension path) body
113− seq rendered $ hClose handle
114− let page = fromContext $ M.fromList $
115+ page = fromContext $ M.fromList $
115 [ ("body", rendered)
116 [ ("body", rendered)
116 , ("url", url)
117 , ("url", url)
117 , ("path", pagePath)
118 , ("path", pagePath)
118 ] ++ context
119 ] ++ context
119
120
121+ seq (($|) id rnf rendered) $ hClose handle
122+
120 -- Cache if needed
123 -- Cache if needed
121 if getFromCache then return () else cachePage page
124 if getFromCache then return () else cachePage page
122 return page
125 return page