diff --git a/src/Hakyll/Web/Template/Internal.hs b/src/Hakyll/Web/Template/Internal.hs index 3686914..d0e4d47 100644 --- a/src/Hakyll/Web/Template/Internal.hs +++ b/src/Hakyll/Web/Template/Internal.hs @@ -138,8 +138,8 @@ applyTemplate' tes context x = go tes return $ intercalate sep bs applyElem (Partial e) = do - p <- applyExpr e >>= getString e - tpl' <- loadBody (fromFilePath p) + p <- applyExpr e >>= getString e + Template tpl' <- loadBody (fromFilePath p) applyTemplate' tpl' context x --------------------------------------------------------------------------- diff --git a/tests/Hakyll/Core/Runtime/Tests.hs b/tests/Hakyll/Core/Runtime/Tests.hs index 1ef77ca..1bdfc60 100644 --- a/tests/Hakyll/Core/Runtime/Tests.hs +++ b/tests/Hakyll/Core/Runtime/Tests.hs @@ -41,6 +41,15 @@ case01 = do >>= saveSnapshot "raw" >>= renderPandoc + match (fromList ["partial.html", "partial-helper.html"]) $ + compile templateCompiler + create ["partial.html.out"] $ do + route idRoute + compile $ do + example <- loadSnapshotBody "example.md" "raw" + makeItem example + >>= loadAndApplyTemplate "partial.html" defaultContext + create ["bodies.txt"] $ do route idRoute compile $ do @@ -60,6 +69,10 @@ case01 = do bodies <- readFile $ destinationDirectory testConfiguration "bodies.txt" head (lines bodies) @?= "This is an example." + partial <- readFile $ providerDirectory testConfiguration "partial.html.out" + partial' <- readFile $ destinationDirectory testConfiguration "partial.html.out" + partial @?= partial' + cleanTestEnv diff --git a/tests/data/partial-helper.html b/tests/data/partial-helper.html new file mode 100644 index 0000000..15c86ba --- /dev/null +++ b/tests/data/partial-helper.html @@ -0,0 +1,3 @@ +

This is an included partial.

+ +$body$ diff --git a/tests/data/partial.html b/tests/data/partial.html new file mode 100644 index 0000000..b4d81bb --- /dev/null +++ b/tests/data/partial.html @@ -0,0 +1,3 @@ +

This is a file that includes a partial.

+ +$partial("partial-helper.html")$ diff --git a/tests/data/partial.html.out b/tests/data/partial.html.out new file mode 100644 index 0000000..19f7ed7 --- /dev/null +++ b/tests/data/partial.html.out @@ -0,0 +1,7 @@ +

This is a file that includes a partial.

+ +

This is an included partial.

+ +This is an example. + +