git.iko.soy/typeable/pandoc
on master help sign in
Lua filter: respect Inlines/Blocks filter functions in pandoc.walk_*
commite227496d3a5d07df8183b8d986ea2aa36c90612c authorAlbert Krewinkel <albert@zeitkraut.de> dateThu 8 Apr 2021, 22:14 (6 years ago) parent6097453
2 files changed+10−3
src/Text/Pandoc/Lua/Filter.hs+2 src/Text/Pandoc/Lua/Module/Pandoc.hs+8−3
src/Text/Pandoc/Lua/Filter.hs+2
@@ -13,7 +13,9 @@ module Text.Pandoc.Lua.Filter ( LuaFilterFunction
1313 , LuaFilter
1414 , runFilterFile
1515 , walkInlines
16+ , walkInlineLists
1617 , walkBlocks
18+ , walkBlockLists
1719 , module Text.Pandoc.Lua.Walk
1820 ) where
1921import Control.Applicative ((<|>))
src/Text/Pandoc/Lua/Module/Pandoc.hs+8−3
@@ -23,8 +23,10 @@ import Foreign.Lua (Lua, NumResults, Optional, Peekable, Pushable)
2323import System.Exit (ExitCode (..))
2424import Text.Pandoc.Class.PandocIO (runIO)
2525import Text.Pandoc.Definition (Block, Inline)
26−import Text.Pandoc.Lua.Filter (walkInlines, walkBlocks, LuaFilter, SingletonsList (..))
26+import Text.Pandoc.Lua.Filter (LuaFilter, SingletonsList (..), walkInlines,
27+ walkInlineLists, walkBlocks, walkBlockLists)
2728import Text.Pandoc.Lua.Marshaling ()
29+import Text.Pandoc.Lua.Marshaling.List (List (..))
2830import Text.Pandoc.Lua.PandocLua (PandocLua, addFunction, liftPandocLua,
2931 loadDefaultModule)
3032import Text.Pandoc.Walk (Walkable)
@@ -51,9 +53,12 @@ pushModule = do
5153 return 1
5254
5355walkElement :: (Walkable (SingletonsList Inline) a,
54− Walkable (SingletonsList Block) a)
56+ Walkable (SingletonsList Block) a,
57+ Walkable (List Inline) a,
58+ Walkable (List Block) a)
5559 => a -> LuaFilter -> PandocLua a
56−walkElement x f = liftPandocLua $ walkInlines f x >>= walkBlocks f
60+walkElement x f = liftPandocLua $
61+ walkInlines f x >>= walkInlineLists f >>= walkBlocks f >>= walkBlockLists f
5762
5863walk_inline :: Inline -> LuaFilter -> PandocLua Inline
5964walk_inline = walkElement