@@ -3,19 +3,30 @@
33module Hakyll.Web
44 ( defaultPageRead
55 , defaultTemplateRead
6+ , defaultRelativizeUrls
67 ) where
78
8−import Control.Arrow (arr, (>>>), (>>^))
9+import Prelude hiding (id)
10+import Control.Category (id)
11+import Control.Arrow (arr, (>>>), (>>^), (&&&))
912
1013import Hakyll.Core.Compiler
1114import Hakyll.Web.Page
1215import Hakyll.Web.Pandoc
1316import Hakyll.Web.Template
17+import Hakyll.Web.RelativizeUrls
18+import Hakyll.Web.Util.String
1419
1520defaultPageRead :: Compiler () (Page String)
1621defaultPageRead = cached "Hakyll.Web.defaultPageRead" $
1722 pageRead >>> addDefaultFields >>> arr applySelf >>> pageRenderPandoc
1823
24+defaultRelativizeUrls :: Compiler (Page String) (Page String)
25+defaultRelativizeUrls = getRoute &&& id >>^ uncurry relativize
26+ where
27+ relativize Nothing = id
28+ relativize (Just r) = fmap (relativizeUrls $ toSiteRoot r)
29+
1930defaultTemplateRead :: Compiler () Template
2031defaultTemplateRead = cached "Hakyll.Web.defaultTemplateRead" $
2132 getResourceString >>^ readTemplate