From 6e14d33a101e4ea9559d13d7a562da7ebc72acf2 Mon Sep 17 00:00:00 2001 From: samgd Date: Sat, 23 Jul 2016 12:41:41 +0200 Subject: For trimming --- src/Hakyll/Web/Template/Internal.hs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'src/Hakyll') diff --git a/src/Hakyll/Web/Template/Internal.hs b/src/Hakyll/Web/Template/Internal.hs index 89bda52..983bd16 100644 --- a/src/Hakyll/Web/Template/Internal.hs +++ b/src/Hakyll/Web/Template/Internal.hs @@ -141,7 +141,7 @@ template :: P.Parser Template template = mconcat <$> P.many (P.choice [ lift chunk , lift escaped , conditional - , lift for + , for , lift partial , lift expr ]) @@ -222,15 +222,27 @@ conditional = P.try $ do -------------------------------------------------------------------------------- -for :: P.Parser TemplateElement +for :: P.Parser Template for = P.try $ do - void $ P.string "$for(" + trimLFor <- trimOpen + void $ P.string "for(" e <- expr' - void $ P.string ")$" + void $ P.char ')' + trimRFor <- trimClose + body <- template sep <- P.optionMaybe $ P.try (P.string "$sep$") >> template - void $ P.string "$endfor$" - return $ For e body sep + + trimLEnd <- trimOpen + void $ P.string "endfor" + trimREnd <- trimClose + + pure $ Template $ mconcat [ [TrimL | trimLFor] + , [TrimR | trimRFor] + , [For e body sep] + , [TrimL | trimLEnd] + , [TrimR | trimREnd] + ] -------------------------------------------------------------------------------- -- cgit v1.2.3