diff options
| author | Albert Krewinkel <albert@zeitkraut.de> | 2022-10-12 21:37:47 +0200 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2022-10-14 10:37:37 -0700 |
| commit | 8900b0f953798b01087e0135a3a9708a95eb7fde (patch) | |
| tree | b7221db3118cff0d81daf9282aa33c05536631f6 /pandoc-lua-engine/test/Tests | |
| parent | 06ba4e9788eb5d53d566c01ad8e24aa91e104a74 (diff) | |
Lua: Support built-in default templates for custom writers
Custom writers can define a default template via a global `Template`
function; the data directory is no longer searched for a default
template.
Writer authors can restore the old lookup behavior with
``` lua
Template = function ()
local template
return template.compile(template.default(PANDOC_SCRIPT_FILE))
end
```
Diffstat (limited to 'pandoc-lua-engine/test/Tests')
| -rw-r--r-- | pandoc-lua-engine/test/Tests/Lua/Writer.hs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/pandoc-lua-engine/test/Tests/Lua/Writer.hs b/pandoc-lua-engine/test/Tests/Lua/Writer.hs index 8b6e82816..18274d124 100644 --- a/pandoc-lua-engine/test/Tests/Lua/Writer.hs +++ b/pandoc-lua-engine/test/Tests/Lua/Writer.hs @@ -35,7 +35,7 @@ tests = source <- UTF8.toText <$> readFileStrict "testsuite.native" doc <- readNative def source txt <- writeCustom "sample.lua" >>= \case - (TextWriter f, _) -> f def doc + (TextWriter f, _, _) -> f def doc _ -> error "Expected a text writer" pure $ BL.fromStrict (UTF8.fromText txt)) @@ -45,23 +45,34 @@ tests = source <- UTF8.toText <$> readFileStrict "tables.native" doc <- readNative def source txt <- writeCustom "sample.lua" >>= \case - (TextWriter f, _) -> f def doc + (TextWriter f, _, _) -> f def doc _ -> error "Expected a text writer" pure $ BL.fromStrict (UTF8.fromText txt)) - , goldenVsString "tables testsuite" + , goldenVsString "bytestring writer" "bytestring.bin" (runIOorExplode $ do txt <- writeCustom "bytestring.lua" >>= \case - (ByteStringWriter f, _) -> f def mempty + (ByteStringWriter f, _, _) -> f def mempty _ -> error "Expected a bytestring writer" pure txt) + , goldenVsString "template" + "writer-template.out.txt" + (runIOorExplode $ do + txt <- writeCustom "writer-template.lua" >>= \case + (TextWriter f, _, mt) -> do + template <- mt + let opts = def{ writerTemplate = Just template } + f opts (B.doc (B.plain (B.str "body goes here"))) + _ -> error "Expected a text writer" + pure $ BL.fromStrict (UTF8.fromText txt)) + , testCase "preset extensions" $ do let ediff = ExtensionsDiff{extsToEnable = [], extsToDisable = []} let format = FlavoredFormat "extensions.lua" ediff result <- runIOorExplode $ writeCustom "extensions.lua" >>= \case - (TextWriter write, extsConf) -> do + (TextWriter write, extsConf, _) -> do exts <- applyExtensionsDiff extsConf format write def{writerExtensions = exts} (B.doc mempty) _ -> error "Expected a text writer" @@ -73,7 +84,7 @@ tests = } let format = FlavoredFormat "extensions.lua" ediff result <- runIOorExplode $ writeCustom "extensions.lua" >>= \case - (TextWriter write, extsConf) -> do + (TextWriter write, extsConf, _) -> do exts <- applyExtensionsDiff extsConf format write def{writerExtensions = exts} (B.doc mempty) _ -> error "Expected a text writer" |
