summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2017-04-02 17:21:22 +0200
committerAlbert Krewinkel <albert@zeitkraut.de>2017-04-02 17:28:07 +0200
commite7eb21ecca46daaf240e33584c55b9d5101eebc7 (patch)
tree396e84c7cf687ff2f0ee4181bfdcd6378b0a0366 /test
parent9e78a9d26b73fa603025789a942f70306aaaad22 (diff)
Lua module: add readers submodule
Plain text readers are exposed to lua scripts via the `pandoc.reader` submodule, which is further subdivided by format. Converting e.g. a markdown string into a pandoc document is possible from within lua: doc = pandoc.reader.markdown.read_doc("Hello, World!") A `read_block` convenience function is provided for all formats, although it will still parse the whole string but return only the first block as the result. Custom reader options are not supported yet, default options are used for all parsing operations.
Diffstat (limited to 'test')
-rw-r--r--test/Tests/Lua.hs6
-rw-r--r--test/lua/markdown-reader.lua12
2 files changed, 18 insertions, 0 deletions
diff --git a/test/Tests/Lua.hs b/test/Tests/Lua.hs
index 4f8bd46d8..27a4d8d6f 100644
--- a/test/Tests/Lua.hs
+++ b/test/Tests/Lua.hs
@@ -26,6 +26,12 @@ tests =
"hello-world-doc.lua"
(doc . para $ str "Hey!" <> linebreak <> str "What's up?")
(doc . para $ str "Hello," <> space <> str "World!")
+
+ , testCase "parse raw markdown blocks" $
+ assertFilterConversion "raw markdown block is converted"
+ "markdown-reader.lua"
+ (doc $ rawBlock "markdown" "*charly* **delta**")
+ (doc . para $ emph "charly" <> space <> strong "delta")
]
assertFilterConversion :: String -> FilePath -> Pandoc -> Pandoc -> Assertion
diff --git a/test/lua/markdown-reader.lua b/test/lua/markdown-reader.lua
new file mode 100644
index 000000000..6356113ec
--- /dev/null
+++ b/test/lua/markdown-reader.lua
@@ -0,0 +1,12 @@
+return {
+ {
+ RawBlock = function (blk)
+ local format, content = unpack(blk.c)
+ if format == "markdown" then
+ return pandoc.reader.markdown.read_block(content)
+ else
+ return blk
+ end
+ end,
+ }
+}