You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.3 KiB

module Green.Rule where
import Green.Common
import Green.Compiler.Layout
import Green.Config
import Green.Rule.Blog
import Green.Rule.BrokenLinks
import Green.Rule.Css
import Green.Rule.Feed
import Green.Rule.Index
import Green.Rule.Js
import Green.Rule.Page
import Green.Rule.Robot
import Green.Rule.Sitemap
rules :: SiteConfig -> Rules ()
rules config = do
cssRules config
codeDep <- codeRules
rulesExtraDependencies [codeDep] do
blogRules config
feedRules config
indexRules config
pageRules config
robotsTxtRules config
archiveRules config
sitemapRules config
downloadRules :: Rules ()
downloadRules = do
match "downloads/**" do
route $ setExtension ".txt"
compile copyFileCompiler
codeRules :: Rules Dependency
codeRules = do
let path = "code/**"
match path do
route idRoute
compile getResourceBody
makePatternDependency path
imageRules :: Rules ()
imageRules =
match "images/**" do
route idRoute
compile copyFileCompiler
templateRules :: Rules ()
templateRules = do
match "_layouts/**" $ compile layoutCompiler
match "_partials/**" $ compile templateCompiler
match "_templates/**" $ compile templateCompiler