@@ -60,10 +60,17 @@ import Hakyll.Core.Util.String
6060type UsedMetadata = Bool
6161
6262
63+--------------------------------------------------------------------------------
64+data RoutesRead = RoutesRead
65+ { routesProvider :: Provider
66+ , routesUnderlying :: Identifier
67+ }
68+
69+
6370--------------------------------------------------------------------------------
6471-- | Type used for a route
6572newtype Routes = Routes
66− { unRoutes :: Provider -> Identifier -> IO (Maybe FilePath, UsedMetadata)
73+ { unRoutes :: RoutesRead -> Identifier -> IO (Maybe FilePath, UsedMetadata)
6774 }
6875
6976
@@ -81,7 +88,8 @@ instance Monoid Routes where
8188-- | Apply a route to an identifier
8289runRoutes :: Routes -> Provider -> Identifier
8390 -> IO (Maybe FilePath, UsedMetadata)
84−runRoutes = unRoutes
91+runRoutes routes provider identifier =
92+ unRoutes routes (RoutesRead provider identifier) identifier
8593
8694
8795--------------------------------------------------------------------------------
@@ -156,9 +164,9 @@ gsubRoute pattern replacement = customRoute $
156164--------------------------------------------------------------------------------
157165-- | Get access to the metadata in order to determine the route
158166metadataRoute :: (Metadata -> Routes) -> Routes
159−metadataRoute f = Routes $ \p i -> do
160− metadata <- resourceMetadata p i
161− unRoutes (f metadata) p i
167+metadataRoute f = Routes $ \r i -> do
168+ metadata <- resourceMetadata (routesProvider r) (routesUnderlying r)
169+ unRoutes (f metadata) r i
162170
163171
164172--------------------------------------------------------------------------------