module Rules.Media ( rules ) where import Hakyll import System.FilePath (joinPath) import Config (contentsRoot) import Media (optimizeSVGCompiler) rules :: Rules () rules :: Rules () rules = do Pattern -> Rules () -> Rules () match Pattern svg (Rules () -> Rules ()) -> Rules () -> Rules () forall a b. (a -> b) -> a -> b $ do Routes -> Rules () route (Routes -> Rules ()) -> Routes -> Rules () forall a b. (a -> b) -> a -> b $ String -> (String -> String) -> Routes gsubRoute String "contents/" ((String -> String) -> Routes) -> (String -> String) -> Routes forall a b. (a -> b) -> a -> b $ String -> String -> String forall a b. a -> b -> a const String "" Compiler (Item String) -> Rules () forall a. (Binary a, Typeable a, Writable a) => Compiler (Item a) -> Rules () compile (Compiler (Item String) -> Rules ()) -> Compiler (Item String) -> Rules () forall a b. (a -> b) -> a -> b $ [String] -> Compiler (Item String) optimizeSVGCompiler [String "-p", String "4"] Pattern -> Rules () -> Rules () match Pattern oth (Rules () -> Rules ()) -> Rules () -> Rules () forall a b. (a -> b) -> a -> b $ do Routes -> Rules () route (Routes -> Rules ()) -> Routes -> Rules () forall a b. (a -> b) -> a -> b $ String -> (String -> String) -> Routes gsubRoute String "contents/" ((String -> String) -> Routes) -> (String -> String) -> Routes forall a b. (a -> b) -> a -> b $ String -> String -> String forall a b. a -> b -> a const String "" Compiler (Item CopyFile) -> Rules () forall a. (Binary a, Typeable a, Writable a) => Compiler (Item a) -> Rules () compile Compiler (Item CopyFile) copyFileCompiler where svg :: Pattern svg = String -> Pattern fromGlob (String -> Pattern) -> String -> Pattern forall a b. (a -> b) -> a -> b $ [String] -> String joinPath [String contentsRoot, String "images", String "**", String "*.svg"] oth :: Pattern oth = String -> Pattern fromGlob (String -> Pattern) -> String -> Pattern forall a b. (a -> b) -> a -> b $ [String] -> String joinPath [String contentsRoot, String "images", String "**"]