@@ -34,7 +34,7 @@ import Control.Monad ( (>=>), when )
3434import Control.Monad.Trans ( MonadIO(..) )
3535import Data.Map ( Map )
3636import Scripting.Lua ( LuaState, StackValue(..) )
37−import Text.Pandoc.Definition ( Block(..), Inline(..), Pandoc(..) )
37+import Text.Pandoc.Definition
3838import Text.Pandoc.Lua.PandocModule ( pushPandocModule )
3939import Text.Pandoc.Lua.StackInstances ()
4040import Text.Pandoc.Walk
@@ -135,6 +135,12 @@ execInlineLuaFilter lua fnMap x = do
135135 case Map.lookup fnName fnMap of
136136 Nothing -> return x
137137 Just fn -> callFilterFn fn
138+ let tryFilterAlternatives :: [(String, LuaFilterFunction Inline -> IO Inline)] -> IO Inline
139+ tryFilterAlternatives [] = return x
140+ tryFilterAlternatives ((fnName, callFilterFn) : alternatives) =
141+ case Map.lookup fnName fnMap of
142+ Nothing -> tryFilterAlternatives alternatives
143+ Just fn -> callFilterFn fn
138144 case x of
139145 LineBreak -> tryFilter "LineBreak" runFn
140146 SoftBreak -> tryFilter "SoftBreak" runFn
@@ -142,9 +148,7 @@ execInlineLuaFilter lua fnMap x = do
142148 Cite cs lst -> tryFilter "Cite" $ \fn -> runFn fn lst cs
143149 Code attr str -> tryFilter "Code" $ \fn -> runFn fn str attr
144150 Emph lst -> tryFilter "Emph" $ \fn -> runFn fn lst
145− Math mt lst -> tryFilter "Math" $ \fn -> runFn fn lst mt
146151 Note blks -> tryFilter "Note" $ \fn -> runFn fn blks
147− Quoted qt lst -> tryFilter "Quoted" $ \fn -> runFn fn qt lst
148152 RawInline f str -> tryFilter "RawInline" $ \fn -> runFn fn f str
149153 SmallCaps lst -> tryFilter "SmallCaps" $ \fn -> runFn fn lst
150154 Span attr lst -> tryFilter "Span" $ \fn -> runFn fn lst attr
@@ -153,6 +157,22 @@ execInlineLuaFilter lua fnMap x = do
153157 Strong lst -> tryFilter "Strong" $ \fn -> runFn fn lst
154158 Subscript lst -> tryFilter "Subscript" $ \fn -> runFn fn lst
155159 Superscript lst -> tryFilter "Superscript" $ \fn -> runFn fn lst
160+ Math DisplayMath lst -> tryFilterAlternatives
161+ [ ("DisplayMath", \fn -> runFn fn lst)
162+ , ("Math", \fn -> runFn fn DisplayMath lst)
163+ ]
164+ Math InlineMath lst -> tryFilterAlternatives
165+ [ ("InlineMath", \fn -> runFn fn lst)
166+ , ("Math", \fn -> runFn fn InlineMath lst)
167+ ]
168+ Quoted SingleQuote lst -> tryFilterAlternatives
169+ [ ("SingleQuoted", \fn -> runFn fn lst)
170+ , ("Quoted", \fn -> runFn fn SingleQuote lst)
171+ ]
172+ Quoted DoubleQuote lst -> tryFilterAlternatives
173+ [ ("DoubleQuoted", \fn -> runFn fn lst)
174+ , ("Quoted", \fn -> runFn fn DoubleQuote lst)
175+ ]
156176 Link attr txt (src, tit) -> tryFilter "Link" $
157177 \fn -> runFn fn txt src tit attr
158178 Image attr alt (src, tit) -> tryFilter "Image" $