summaryrefslogtreecommitdiff
path: root/src/Hakyll/Web/Template/Util.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Hakyll/Web/Template/Util.hs')
-rw-r--r--src/Hakyll/Web/Template/Util.hs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/Hakyll/Web/Template/Util.hs b/src/Hakyll/Web/Template/Util.hs
index cfd8573..f08c041 100644
--- a/src/Hakyll/Web/Template/Util.hs
+++ b/src/Hakyll/Web/Template/Util.hs
@@ -1,11 +1,18 @@
module Hakyll.Web.Template.Util
- ( slug
+ ( functionField1
+ , slug
) where
import Prolog
+import Hakyll
import Hakyll.Web.Template.Context
import Data.String.Slugger
+import System.FilePath
+functionField1 :: String -> (String -> Compiler String) -> Context a
+functionField1 n f = functionField n $ \case
+ [x] -> \_ -> f x
+ xs -> \_ -> fail $ "Expecting exactly one argument to " <> n <> ". Instead got " <> show (length xs)
slug :: Context a
slug = functionField "slug" $ \strs _ -> pure $ toSlug $ unwords strs