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