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
"**"]