summaryrefslogtreecommitdiff
path: root/src/Hakyll/Core/Util
diff options
context:
space:
mode:
authorJasper Van der Jeugt <m@jaspervdj.be>2013-05-04 11:36:58 +0200
committerJasper Van der Jeugt <m@jaspervdj.be>2013-05-04 11:36:58 +0200
commit4100083709a894225717dbe3068f73057e908dd6 (patch)
treebd519b91f8e3dcbdab03a5807112997d56d55d75 /src/Hakyll/Core/Util
parent28bc3f1f3b98f3bf4c8601af8eb8fa7a9c226ed2 (diff)
downloadhakyll-4100083709a894225717dbe3068f73057e908dd6.tar.gz
Style changes, move stuff to common parser module
Diffstat (limited to 'src/Hakyll/Core/Util')
-rw-r--r--src/Hakyll/Core/Util/Parser.hs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Hakyll/Core/Util/Parser.hs b/src/Hakyll/Core/Util/Parser.hs
new file mode 100644
index 0000000..afa72c1
--- /dev/null
+++ b/src/Hakyll/Core/Util/Parser.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- | Parser utilities
+module Hakyll.Core.Util.Parser
+ ( metadataKey
+ , reservedKeys
+ ) where
+
+
+--------------------------------------------------------------------------------
+import Control.Applicative ((<$>), (<*>), (<|>))
+import Control.Monad (mzero)
+import qualified Text.Parsec as P
+import Text.Parsec.String (Parser)
+
+
+--------------------------------------------------------------------------------
+metadataKey :: Parser String
+metadataKey = do
+ i <- (:) <$> P.letter <*> (P.many $ P.alphaNum <|> P.oneOf " _-.")
+ if i `elem` reservedKeys then mzero else return i
+
+
+--------------------------------------------------------------------------------
+reservedKeys :: [String]
+reservedKeys = ["if", "else","endif"]