@@ -14,9 +14,7 @@ module Hakyll.Web.Page
14import Prelude hiding (id)
14import Prelude hiding (id)
15import Control.Category (id)
15import Control.Category (id)
16import Control.Arrow ((>>^), (&&&), (>>>))
16import Control.Arrow ((>>^), (&&&), (>>>))
17−import Control.Applicative ((<$>))
18−import System.FilePath (takeBaseName)
17+import System.FilePath (takeBaseName, takeDirectory)
19−import Data.Maybe (fromMaybe)
20import Data.Map (Map)
18import Data.Map (Map)
21import qualified Data.Map as M
19import qualified Data.Map as M
@@ -54,8 +52,15 @@ pageRead = getResourceString >>^ readPage
55addDefaultFields :: Compiler (Page a) (Page a)
53addDefaultFields :: Compiler (Page a) (Page a)
56addDefaultFields = (getRoute &&& id >>^ uncurry addRoute)
54addDefaultFields = (getRoute &&& id >>^ uncurry addRoute)
57− >>> (getIdentifier &&& id >>^ uncurry addTitle)
55+ >>> (getIdentifier &&& id >>^ uncurry addIdentifier)
57+ -- Add root and url, based on route
58+ addRoute Nothing = id
59− addRoute r = addField "url" (fromMaybe "?" r)
59+ addRoute (Just r) = addField "url" r
60− . addField "root" (fromMaybe "/" $ toSiteRoot <$> r)
60+ . addField "root" (toSiteRoot r)
62+ -- Add title and category, based on identifier
61− addTitle i = addField "title" (takeBaseName $ toFilePath i)
63+ addIdentifier i = addField "title" (takeBaseName p)
64+ . addField "category" (takeBaseName $ takeDirectory p)