diff options
-rw-r--r-- | src/Hakyll/Web/Template/Internal.hs | 16 | ||||
-rw-r--r-- | tests/Hakyll/Web/Template/Tests.hs | 7 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/Hakyll/Web/Template/Internal.hs b/src/Hakyll/Web/Template/Internal.hs index 983bd16..6ccad74 100644 --- a/src/Hakyll/Web/Template/Internal.hs +++ b/src/Hakyll/Web/Template/Internal.hs @@ -142,7 +142,7 @@ template = mconcat <$> P.many (P.choice [ lift chunk , lift escaped , conditional , for - , lift partial + , partial , lift expr ]) where lift = fmap (Template . (:[])) @@ -246,12 +246,18 @@ for = P.try $ do -------------------------------------------------------------------------------- -partial :: P.Parser TemplateElement +partial :: P.Parser Template partial = P.try $ do - void $ P.string "$partial(" + trimLPartial <- trimOpen + void $ P.string "partial(" e <- expr' - void $ P.string ")$" - return $ Partial e + void $ P.char ')' + trimRPartial <- trimClose + + pure $ Template $ mconcat [ [TrimL | trimLPartial] + , [Partial e] + , [TrimR | trimRPartial] + ] -------------------------------------------------------------------------------- diff --git a/tests/Hakyll/Web/Template/Tests.hs b/tests/Hakyll/Web/Template/Tests.hs index b6a3a1d..1ace2d4 100644 --- a/tests/Hakyll/Web/Template/Tests.hs +++ b/tests/Hakyll/Web/Template/Tests.hs @@ -68,6 +68,13 @@ tests = testGroup "Hakyll.Core.Template.Tests" $ concat , TrimR ] @=? readTemplate "$-for(authors)-$\n body \n$-endfor-$" + -- 'Partial' trim check. + , Template + [ TrimL + , Partial (StringLiteral "path") + , TrimR + ] + @=? readTemplate "$-partial(\"path\")-$" ] ] |