diff options
author | Albert Krewinkel <albert@zeitkraut.de> | 2019-08-15 22:53:02 +0200 |
---|---|---|
committer | Albert Krewinkel <albert@zeitkraut.de> | 2019-08-16 20:52:15 +0200 |
commit | 2712d3e869b8a371e1fa261f05fbd5d76561e3a0 (patch) | |
tree | afcfdaeec4729ab65ffa2538d32214a3db723dab /src/Text/Pandoc/Lua/Module | |
parent | 813e1fc7e0705f11ff374ffd525e8868edd0045a (diff) | |
download | pandoc-2712d3e869b8a371e1fa261f05fbd5d76561e3a0.tar.gz |
Lua: traverse nested blocks and inlines in correct order
Traversal methods are updated to use the new Walk module such that
sequences with nested Inline (or Block) elements are traversed in the
order in which they appear in the linearized document.
Fixes: #5667
Diffstat (limited to 'src/Text/Pandoc/Lua/Module')
-rw-r--r-- | src/Text/Pandoc/Lua/Module/Pandoc.hs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Lua/Module/Pandoc.hs b/src/Text/Pandoc/Lua/Module/Pandoc.hs index 09892db49..8950c4b7f 100644 --- a/src/Text/Pandoc/Lua/Module/Pandoc.hs +++ b/src/Text/Pandoc/Lua/Module/Pandoc.hs @@ -23,7 +23,7 @@ import Foreign.Lua (Lua, NumResults, Optional, Peekable, Pushable) import System.Exit (ExitCode (..)) import Text.Pandoc.Class (runIO) import Text.Pandoc.Definition (Block, Inline) -import Text.Pandoc.Lua.Filter (walkInlines, walkBlocks, LuaFilter) +import Text.Pandoc.Lua.Filter (walkInlines, walkBlocks, LuaFilter, SingletonsList (..)) import Text.Pandoc.Lua.Marshaling () import Text.Pandoc.Walk (Walkable) import Text.Pandoc.Options (ReaderOptions (readerExtensions)) @@ -46,7 +46,8 @@ pushModule datadir = do LuaUtil.addFunction "walk_inline" walkInline return 1 -walkElement :: (Walkable [Inline] a, Walkable [Block] a) +walkElement :: (Walkable (SingletonsList Inline) a, + Walkable (SingletonsList Block) a) => a -> LuaFilter -> Lua a walkElement x f = walkInlines f x >>= walkBlocks f |