aboutsummaryrefslogtreecommitdiff
path: root/pandoc-lua-engine/src/Text
diff options
context:
space:
mode:
Diffstat (limited to 'pandoc-lua-engine/src/Text')
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs
index 4728f961e..40ccb2f8f 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs
@@ -43,7 +43,10 @@ runFilterFile' envIdx filterPath doc = do
-- filter if nothing was returned.
luaFilters <- forcePeek $
if newtop - oldtop >= 1
- then peekList peekFilter top -- get from explicit filter table
+ then liftLua (rawlen top) >>= \case
+ -- explicitly returned filter, either a single one or a list
+ 0 -> (:[]) <$!> peekFilter top -- single filter
+ _ -> peekList peekFilter top -- list of explicit filters
else (:[]) <$!> peekFilter envIdx -- get the implicit filter in _ENV
settop oldtop
runAll luaFilters doc