on f104f91 help sign in
hakyll/src/Hakyll/Web.hs
43 lines 1.3 kB history raw
1-- | Module exporting commonly used web-related functions
2--
3module Hakyll.Web
4 ( defaultPageRead
5 , defaultTemplateRead
6 , defaultRelativizeUrls
7 , defaultCopyFile
8 , defaultCompressCss
9 ) where
11import Prelude hiding (id)
12import Control.Category (id)
13import Control.Arrow (arr, (>>>), (>>^), (&&&))
15import Hakyll.Core.Compiler
16import Hakyll.Core.Writable
17import Hakyll.Core.Identifier
18import Hakyll.Web.Page
19import Hakyll.Web.Pandoc
20import Hakyll.Web.Template
21import Hakyll.Web.RelativizeUrls
22import Hakyll.Web.Util.String
23import Hakyll.Web.CompressCss
25defaultPageRead :: Compiler () (Page String)
26defaultPageRead = cached "Hakyll.Web.defaultPageRead" $
27 pageRead >>> addDefaultFields >>> arr applySelf >>> pageRenderPandoc
29defaultRelativizeUrls :: Compiler (Page String) (Page String)
30defaultRelativizeUrls = getRoute &&& id >>^ uncurry relativize
31 where
32 relativize Nothing = id
33 relativize (Just r) = fmap (relativizeUrls $ toSiteRoot r)
35defaultTemplateRead :: Compiler () Template
36defaultTemplateRead = cached "Hakyll.Web.defaultTemplateRead" $
37 getResourceString >>^ readTemplate
39defaultCopyFile :: Compiler () CopyFile
40defaultCopyFile = getIdentifier >>^ CopyFile . toFilePath
42defaultCompressCss :: Compiler () String
43defaultCompressCss = getResourceString >>^ compressCss