@@ -51,14 +51,15 @@ module Hakyll.Web.Page
5151 , fromBody
5252 , fromMap
5353 , toMap
54− , pageRead
54+ , readPageCompiler
55+ , defaultPageCompiler
5556 , addDefaultFields
5657 , sortByBaseName
5758 ) where
5859
5960import Prelude hiding (id)
6061import Control.Category (id)
61−import Control.Arrow ((>>^), (&&&), (>>>))
62+import Control.Arrow (arr, (>>^), (&&&), (>>>))
6263import System.FilePath (takeBaseName, takeDirectory)
6364import Data.Monoid (Monoid, mempty)
6465import Data.Map (Map)
@@ -72,6 +73,8 @@ import Hakyll.Core.ResourceProvider
7273import Hakyll.Web.Page.Internal
7374import Hakyll.Web.Page.Read
7475import Hakyll.Web.Page.Metadata
76+import Hakyll.Web.Pandoc
77+import Hakyll.Web.Template
7578import Hakyll.Web.Util.String
7679
7780-- | Create a page from a body, without metadata
@@ -91,8 +94,12 @@ toMap (Page m b) = M.insert "body" b m
9194
9295-- | Read a page (do not render it)
9396--
94−pageRead :: Compiler Resource (Page String)
95−pageRead = getResourceString >>^ readPage
97+readPageCompiler :: Compiler Resource (Page String)
98+readPageCompiler = getResourceString >>^ readPage
99+
100+defaultPageCompiler :: Compiler Resource (Page String)
101+defaultPageCompiler = cached "Hakyll.Web.Page.defaultPageCompiler" $
102+ readPageCompiler >>> addDefaultFields >>> arr applySelf >>> pageRenderPandoc
96103
97104-- | Add a number of default metadata fields to a page. These fields include:
98105--