@@ -1,6 +1,7 @@
11module Text.Hakyll.Render
22 ( renderPage,
33 renderAndWrite,
4+ renderAndConcat,
45 static,
56 staticDirectory
67 ) where
@@ -26,7 +27,7 @@ renderPage templatePath page = do
2627 templateString <- liftM B.pack $ hGetContents handle
2728 seq templateString $ hClose handle
2829 let body = substitute templateString (createContext page)
29− return $ addContext "body" (B.unpack body) page
30+ return $ M.insert "body" body page
3031
3132renderAndWrite :: FilePath -> Page -> IO ()
3233renderAndWrite templatePath page = do
@@ -35,6 +36,15 @@ renderAndWrite templatePath page = do
3536 makeDirectories destination
3637 B.writeFile destination (getBody rendered)
3738
39+renderAndConcat :: FilePath -> [FilePath] -> IO B.ByteString
40+renderAndConcat templatePath paths = foldM concatRender' B.empty paths
41+ where concatRender' :: B.ByteString -> FilePath -> IO B.ByteString
42+ concatRender' chunk path = do
43+ page <- readPage path
44+ rendered <- renderPage templatePath page
45+ let body = getBody rendered
46+ return $ B.append chunk $ body
47+
3848static :: FilePath -> IO ()
3949static source = do
4050 makeDirectories destination