diff options
Diffstat (limited to 'src/Hakyll/Web/Template/Internal.hs')
-rw-r--r-- | src/Hakyll/Web/Template/Internal.hs | 13 |
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 -------------------------------------------------------------------------------- |