mirror of
https://github.com/jgm/pandoc.git
synced 2026-09-24 15:44:59 +08:00
Lua filters: perform minor code clean-up
Change: minor
This commit is contained in:
@@ -50,8 +50,7 @@ import qualified Foreign.Lua.Module.Text as Lua
|
||||
-- initalization.
|
||||
runPandocLua :: Lua a -> PandocIO (Either LuaException a)
|
||||
runPandocLua luaOp = do
|
||||
datadir <- getUserDataDir
|
||||
luaPkgParams <- luaPackageParams datadir
|
||||
luaPkgParams <- luaPackageParams
|
||||
enc <- liftIO $ getForeignEncoding <* setForeignEncoding utf8
|
||||
res <- liftIO $ Lua.runLuaEither (initLuaState luaPkgParams *> luaOp)
|
||||
liftIO $ setForeignEncoding enc
|
||||
@@ -60,9 +59,10 @@ runPandocLua luaOp = do
|
||||
return res
|
||||
|
||||
-- | Generate parameters required to setup pandoc's lua environment.
|
||||
luaPackageParams :: Maybe FilePath -> PandocIO LuaPackageParams
|
||||
luaPackageParams datadir = do
|
||||
luaPackageParams :: PandocIO LuaPackageParams
|
||||
luaPackageParams = do
|
||||
commonState <- getCommonState
|
||||
datadir <- getUserDataDir
|
||||
mbRef <- liftIO . newIORef =<< getMediaBag
|
||||
return LuaPackageParams
|
||||
{ luaPkgCommonState = commonState
|
||||
|
||||
@@ -71,16 +71,13 @@ pushPandocModule datadir = do
|
||||
return 1
|
||||
|
||||
walkElement :: (ToLuaStack a, Walkable [Inline] a, Walkable [Block] a)
|
||||
=> a -> LuaFilter -> Lua NumResults
|
||||
walkElement x f = do
|
||||
x' <- walkInlines f x >>= walkBlocks f
|
||||
Lua.push x'
|
||||
return 1
|
||||
=> a -> LuaFilter -> Lua a
|
||||
walkElement x f = walkInlines f x >>= walkBlocks f
|
||||
|
||||
walkInline :: Inline -> LuaFilter -> Lua NumResults
|
||||
walkInline :: Inline -> LuaFilter -> Lua Inline
|
||||
walkInline = walkElement
|
||||
|
||||
walkBlock :: Block -> LuaFilter -> Lua NumResults
|
||||
walkBlock :: Block -> LuaFilter -> Lua Block
|
||||
walkBlock = walkElement
|
||||
|
||||
readDoc :: String -> String -> Lua NumResults
|
||||
|
||||
Reference in New Issue
Block a user