on master help sign in
matchMetadata for examining metadata when defining rules
commitd0af1024d008113347183024df41c739d7644c02 authorNick McAvoy <nicholas.mcavoy@gmail.com> dateTue 16 Sep 2014, 22:20 (12 years ago) parent06aa7c4
1 file changed+14
src/Hakyll/Core/Rules.hs+14
src/Hakyll/Core/Rules.hs+14
@@ -19,6 +19,7 @@
1919module Hakyll.Core.Rules
2020 ( Rules
2121 , match
22+ , matchMetadata
2223 , create
2324 , version
2425 , compile
@@ -131,6 +132,19 @@ match pattern rules = do
131132 setMatches ids env = env {rulesMatches = ids}
132133
133134
135+--------------------------------------------------------------------------------
136+matchMetadata :: Pattern -> (Metadata -> Bool) -> Rules () -> Rules ()
137+matchMetadata pattern metadataPred rules = do
138+ tellPattern pattern
139+ flush
140+ idsAndMetadata <- getAllMetadata pattern
141+ let ids = map fst . filter (metadataPred . snd) $ idsAndMetadata
142+ tellResources ids
143+ Rules $ local (setMatches ids) $ unRules $ rules >> flush
144+ where
145+ setMatches ids env = env {rulesMatches = ids}
146+
147+
134148--------------------------------------------------------------------------------
135149create :: [Identifier] -> Rules () -> Rules ()
136150create ids rules = do