pandoc-lua-engine 0.4.2 → 0.4.3
raw patch · 4 files changed
+39/−2 lines, 4 filesdep ~hsluadep ~hslua-module-system
Dependency ranges changed: hslua, hslua-module-system
Files
- pandoc-lua-engine.cabal +1/−1
- src/Text/Pandoc/Lua/Module/MediaBag.hs +25/−0
- src/Text/Pandoc/Lua/Module/Pandoc.hs +2/−1
- test/lua/module/pandoc-mediabag.lua +11/−0
pandoc-lua-engine.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: pandoc-lua-engine-version: 0.4.2+version: 0.4.3 build-type: Simple license: GPL-2.0-or-later license-file: COPYING.md
src/Text/Pandoc/Lua/Module/MediaBag.hs view
@@ -27,6 +27,7 @@ import Text.Pandoc.Lua.Orphans () import Text.Pandoc.Lua.PandocLua (unPandocLua) import Text.Pandoc.MIME (MimeType)+import Text.Pandoc.SelfContained (makeDataURI) import qualified Data.ByteString.Lazy as BL import qualified Data.Text as T@@ -60,6 +61,7 @@ , items `since` makeVersion [2,7,3] , list `since` makeVersion [2,0] , lookup `since` makeVersion [2,0]+ , make_data_uri `since` makeVersion [3,7,1] , write `since` makeVersion [3,0] ] , moduleOperations = []@@ -242,6 +244,29 @@ , " local diagram_url = 'https://pandoc.org/diagram.jpg'" , " local mt, contents = pandoc.mediabag.fetch(diagram_url)" ]++make_data_uri :: DocumentedFunction PandocError+make_data_uri = defun "make_data_uri"+ ### (\mime raw -> pure $ makeDataURI (mime, raw))+ <#> parameter Lua.peekText "string" "mime_type" "MIME type of the data"+ <#> parameter Lua.peekByteString "string" "raw_data" "data to encode"+ =#> functionResult Lua.pushText "string" "data uri"+ #? T.unlines+ [ "Convert the input data into a data URI as defined by RFC 2397."+ , ""+ , "Example:"+ , ""+ , " -- Embed an unofficial pandoc logo"+ , " local pandoc_logo_url = 'https://raw.githubusercontent.com/'"+ , " .. 'tarleb/pandoc-logo/main/pandoc.svg'"+ , ""+ , " local datauri = pandoc.mediabag.make_data_uri("+ , " pandoc.mediabag.fetch(pandoc_logo_url)"+ , " )"+ , ""+ , " local image = pandoc.Image('Logo', datauri)"+ ]+ -- | Extract the mediabag or just a single entry. write :: DocumentedFunction PandocError
src/Text/Pandoc/Lua/Module/Pandoc.hs view
@@ -25,6 +25,7 @@ import Data.Maybe (fromMaybe) import Data.Proxy (Proxy (Proxy)) import Data.Text.Encoding.Error (UnicodeException)+import Data.Version (makeVersion) import HsLua import System.Exit (ExitCode (..)) import Text.Pandoc.Class ( PandocMonad, FileInfo (..), FileTree@@ -151,7 +152,7 @@ otherConstructors :: [DocumentedFunction PandocError] otherConstructors = [ mkAttr- , mkCaption+ , mkCaption `since` makeVersion [3,6,1] , mkCell , mkAttributeList , mkCitation
test/lua/module/pandoc-mediabag.lua view
@@ -104,4 +104,15 @@ end), }, + group 'make_data_uri' {+ test('returns a data URI', function ()+ local uri = mediabag.make_data_uri('text/plain', 'foo')+ assert.are_equal(uri:sub(1,5), 'data:')+ end),+ test('URI specifies the given MIME type', function ()+ local mimetype = 'text/plain'+ local uri = mediabag.make_data_uri(mimetype, 'foo')+ assert.are_equal(uri:sub(6, 5 + #mimetype), mimetype)+ end),+ } }