@@ -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)
13+import Control.Parallel.Strategies (rnf, ($|))
13import System.FilePath (FilePath, takeExtension)
15import System.FilePath (FilePath, takeExtension)
14import System.IO
16import System.IO
@@ -110,13 +112,14 @@ readPage pagePath = do
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
121+ seq (($|) id rnf rendered) $ hClose handle
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