@@ -75,7 +75,8 @@ runAll (x:xs) = walkMWithLuaFilter x >=> runAll xs
7575walkMWithLuaFilter :: LuaFilter -> Pandoc -> IO Pandoc
7676walkMWithLuaFilter (LuaFilter lua fnMap) =
7777 walkM (execInlineLuaFilter lua fnMap) >=>
78− walkM (execBlockLuaFilter lua fnMap) >=>
78+ walkM (execBlockLuaFilter lua fnMap) >=>
79+ walkM (execMetaLuaFilter lua fnMap) >=>
7980 walkM (execDocLuaFilter lua fnMap)
8081
8182type FunctionMap = Map String LuaFilterFunction
@@ -92,6 +93,17 @@ execDocLuaFilter lua fnMap x = do
9293 Nothing -> return x
9394 Just fn -> runLuaFilterFunction lua fn x
9495
96+execMetaLuaFilter :: LuaState
97+ -> FunctionMap
98+ -> Pandoc -> IO Pandoc
99+execMetaLuaFilter lua fnMap pd@(Pandoc meta blks) = do
100+ let metaFnName = "Meta"
101+ case Map.lookup metaFnName fnMap of
102+ Nothing -> return pd
103+ Just fn -> do
104+ meta' <- runLuaFilterFunction lua fn meta
105+ return $ Pandoc meta' blks
106+
95107execBlockLuaFilter :: LuaState
96108 -> FunctionMap
97109 -> Block -> IO Block