git.iko.soy/typeable/pandoc
on master help sign in
Lua filters: use same function names in Haskell and Lua
commita5169f68b251e04b0a68a7d93a30bafcb3f85e78 authorAlbert Krewinkel <albert@zeitkraut.de> dateThu 4 Feb 2021, 19:07 (6 years ago) parent57e56ed
3 files changed+31−28
.hlint.yaml+1 src/Text/Pandoc/Lua/Module/MediaBag.hs+14−13 src/Text/Pandoc/Lua/Module/Pandoc.hs+16−15
.hlint.yaml+1
@@ -60,6 +60,7 @@
6060 - Text.Pandoc.Citeproc
6161 - Text.Pandoc.Extensions
6262 - Text.Pandoc.Lua.Marshaling.Version
63+ - Text.Pandoc.Lua.Module.Pandoc
6364 - Text.Pandoc.Lua.Module.Utils
6465 - Text.Pandoc.Readers.Odt.ContentReader
6566 - Text.Pandoc.Readers.Odt.Namespaces
src/Text/Pandoc/Lua/Module/MediaBag.hs+14−13
@@ -13,6 +13,7 @@ module Text.Pandoc.Lua.Module.MediaBag
1313 ( pushModule
1414 ) where
1515
16+import Prelude hiding (lookup)
1617import Control.Monad (zipWithM_)
1718import Foreign.Lua (Lua, NumResults, Optional)
1819import Text.Pandoc.Class.CommonState (CommonState (..))
@@ -36,10 +37,10 @@ pushModule = do
3637 liftPandocLua Lua.newtable
3738 addFunction "delete" delete
3839 addFunction "empty" empty
39− addFunction "insert" insertMediaFn
40+ addFunction "insert" insert
4041 addFunction "items" items
41− addFunction "lookup" lookupMediaFn
42− addFunction "list" mediaDirectoryFn
42+ addFunction "lookup" lookup
43+ addFunction "list" list
4344 addFunction "fetch" fetch
4445 return 1
4546
@@ -53,11 +54,11 @@ empty :: PandocLua NumResults
5354empty = 0 <$ modifyCommonState (\st -> st { stMediaBag = mempty })
5455
5556-- | Insert a new item into the media bag.
56−insertMediaFn :: FilePath
57− -> Optional MimeType
58− -> BL.ByteString
59− -> PandocLua NumResults
60−insertMediaFn fp optionalMime contents = do
57+insert :: FilePath
58+ -> Optional MimeType
59+ -> BL.ByteString
60+ -> PandocLua NumResults
61+insert fp optionalMime contents = do
6162 mb <- getMediaBag
6263 setMediaBag $ MB.insertMedia fp (Lua.fromOptional optionalMime) contents mb
6364 return (Lua.NumResults 0)
@@ -66,9 +67,9 @@ insertMediaFn fp optionalMime contents = do
6667items :: PandocLua NumResults
6768items = getMediaBag >>= liftPandocLua . pushIterator
6869
69−lookupMediaFn :: FilePath
70− -> PandocLua NumResults
71−lookupMediaFn fp = do
70+lookup :: FilePath
71+ -> PandocLua NumResults
72+lookup fp = do
7273 res <- MB.lookupMedia fp <$> getMediaBag
7374 liftPandocLua $ case res of
7475 Nothing -> 1 <$ Lua.pushnil
@@ -77,8 +78,8 @@ lookupMediaFn fp = do
7778 Lua.push contents
7879 return 2
7980
80−mediaDirectoryFn :: PandocLua NumResults
81−mediaDirectoryFn = do
81+list :: PandocLua NumResults
82+list = do
8283 dirContents <- MB.mediaDirectory <$> getMediaBag
8384 liftPandocLua $ do
8485 Lua.newtable
src/Text/Pandoc/Lua/Module/Pandoc.hs+16−15
@@ -14,6 +14,7 @@ module Text.Pandoc.Lua.Module.Pandoc
1414 ( pushModule
1515 ) where
1616
17+import Prelude hiding (read)
1718import Control.Monad (when)
1819import Control.Monad.Except (throwError)
1920import Data.Default (Default (..))
@@ -43,10 +44,10 @@ import Text.Pandoc.Error
4344pushModule :: PandocLua NumResults
4445pushModule = do
4546 loadDefaultModule "pandoc"
46− addFunction "read" readDoc
47− addFunction "pipe" pipeFn
48− addFunction "walk_block" walkBlock
49− addFunction "walk_inline" walkInline
47+ addFunction "read" read
48+ addFunction "pipe" pipe
49+ addFunction "walk_block" walk_block
50+ addFunction "walk_inline" walk_inline
5051 return 1
5152
5253walkElement :: (Walkable (SingletonsList Inline) a,
@@ -54,14 +55,14 @@ walkElement :: (Walkable (SingletonsList Inline) a,
5455 => a -> LuaFilter -> PandocLua a
5556walkElement x f = liftPandocLua $ walkInlines f x >>= walkBlocks f
5657
57−walkInline :: Inline -> LuaFilter -> PandocLua Inline
58−walkInline = walkElement
58+walk_inline :: Inline -> LuaFilter -> PandocLua Inline
59+walk_inline = walkElement
5960
60−walkBlock :: Block -> LuaFilter -> PandocLua Block
61−walkBlock = walkElement
61+walk_block :: Block -> LuaFilter -> PandocLua Block
62+walk_block = walkElement
6263
63−readDoc :: T.Text -> Optional T.Text -> PandocLua NumResults
64−readDoc content formatSpecOrNil = liftPandocLua $ do
64+read :: T.Text -> Optional T.Text -> PandocLua NumResults
65+read content formatSpecOrNil = liftPandocLua $ do
6566 let formatSpec = fromMaybe "markdown" (Lua.fromOptional formatSpecOrNil)
6667 res <- Lua.liftIO . runIO $
6768 getReader formatSpec >>= \(rdr,es) ->
@@ -79,11 +80,11 @@ readDoc content formatSpecOrNil = liftPandocLua $ do
7980 Left e -> Lua.raiseError $ show e
8081
8182-- | Pipes input through a command.
82−pipeFn :: String
83− -> [String]
84− -> BL.ByteString
85− -> PandocLua NumResults
86−pipeFn command args input = liftPandocLua $ do
83+pipe :: String -- ^ path to executable
84+ -> [String] -- ^ list of arguments
85+ -> BL.ByteString -- ^ input passed to process via stdin
86+ -> PandocLua NumResults
87+pipe command args input = liftPandocLua $ do
8788 (ec, output) <- Lua.liftIO $ pipeProcess Nothing command args input
8889 case ec of
8990 ExitSuccess -> 1 <$ Lua.push output