From e227496d3a5d07df8183b8d986ea2aa36c90612c Mon Sep 17 00:00:00 2001
From: Albert Krewinkel <albert@zeitkraut.de>
Date: Thu, 8 Apr 2021 22:14:47 +0200
Subject: Lua filter: respect Inlines/Blocks filter functions in pandoc.walk_*

---
 src/Text/Pandoc/Lua/Module/Pandoc.hs | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

(limited to 'src/Text/Pandoc/Lua/Module')

diff --git a/src/Text/Pandoc/Lua/Module/Pandoc.hs b/src/Text/Pandoc/Lua/Module/Pandoc.hs
index 8d30f9a0c..5c14b3a30 100644
--- a/src/Text/Pandoc/Lua/Module/Pandoc.hs
+++ b/src/Text/Pandoc/Lua/Module/Pandoc.hs
@@ -23,8 +23,10 @@ import Foreign.Lua (Lua, NumResults, Optional, Peekable, Pushable)
 import System.Exit (ExitCode (..))
 import Text.Pandoc.Class.PandocIO (runIO)
 import Text.Pandoc.Definition (Block, Inline)
-import Text.Pandoc.Lua.Filter (walkInlines, walkBlocks, LuaFilter, SingletonsList (..))
+import Text.Pandoc.Lua.Filter (LuaFilter, SingletonsList (..), walkInlines,
+                               walkInlineLists, walkBlocks, walkBlockLists)
 import Text.Pandoc.Lua.Marshaling ()
+import Text.Pandoc.Lua.Marshaling.List (List (..))
 import Text.Pandoc.Lua.PandocLua (PandocLua, addFunction, liftPandocLua,
                                   loadDefaultModule)
 import Text.Pandoc.Walk (Walkable)
@@ -51,9 +53,12 @@ pushModule = do
   return 1
 
 walkElement :: (Walkable (SingletonsList Inline) a,
-                Walkable (SingletonsList Block) a)
+                Walkable (SingletonsList Block) a,
+                Walkable (List Inline) a,
+                Walkable (List Block) a)
             => a -> LuaFilter -> PandocLua a
-walkElement x f = liftPandocLua $ walkInlines f x >>= walkBlocks f
+walkElement x f = liftPandocLua $
+  walkInlines f x >>= walkInlineLists f >>= walkBlocks f >>= walkBlockLists f
 
 walk_inline :: Inline -> LuaFilter -> PandocLua Inline
 walk_inline = walkElement
-- 
cgit v1.2.3