summaryrefslogtreecommitdiff
path: root/src/Hakyll/Web/Template/Internal.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Hakyll/Web/Template/Internal.hs')
-rw-r--r--src/Hakyll/Web/Template/Internal.hs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/Hakyll/Web/Template/Internal.hs b/src/Hakyll/Web/Template/Internal.hs
index 45db2e4..aa8e080 100644
--- a/src/Hakyll/Web/Template/Internal.hs
+++ b/src/Hakyll/Web/Template/Internal.hs
@@ -120,15 +120,22 @@ instance Binary TemplateExpr where
--------------------------------------------------------------------------------
readTemplate :: String -> Template
-readTemplate input = case P.parse template "" input of
+readTemplate input = case P.parse topLevelTemplate "" input of
Left err -> error $ "Cannot parse template: " ++ show err
Right t -> t
+--------------------------------------------------------------------------------
+topLevelTemplate :: P.Parser Template
+topLevelTemplate = Template <$>
+ P.manyTill templateElement P.eof
--------------------------------------------------------------------------------
template :: P.Parser Template
-template = Template <$>
- (P.many $ chunk <|> escaped <|> conditional <|> for <|> partial <|> expr)
+template = Template <$> P.many templateElement
+
+--------------------------------------------------------------------------------
+templateElement :: P.Parser TemplateElement
+templateElement = chunk <|> escaped <|> conditional <|> for <|> partial <|> expr
--------------------------------------------------------------------------------