diff options
| author | Albert Krewinkel <[email protected]> | 2023-02-23 11:22:50 +0100 |
|---|---|---|
| committer | Albert Krewinkel <[email protected]> | 2023-03-13 13:23:43 +0100 |
| commit | 0f7653cd10deeeeb646809f9210a46087ff6e4c7 (patch) | |
| tree | da76bee01808a9adc2f2d481501cd5a3adc62016 /pandoc-lua-engine/src | |
| parent | 7916940c23f68037a8579b2d3076abd269578233 (diff) | |
Switch to hslua-2.3
Diffstat (limited to 'pandoc-lua-engine/src')
14 files changed, 26 insertions, 6 deletions
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs index 1fe2e0f6e..14029a1d4 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs @@ -1,7 +1,6 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} -{-# LANGUAGE TupleSections #-} {- | Module : Text.Pandoc.Lua.Custom Copyright : © 2021-2023 Albert Krewinkel, John MacFarlane @@ -16,7 +15,6 @@ import Control.Monad ((<=<), (<$!>)) import Control.Monad.IO.Class (MonadIO) import Data.Maybe (fromMaybe) import HsLua as Lua hiding (Operation (Div)) -import HsLua.Core.Run (GCManagedState, newGCManagedState, withGCManagedState) import Text.Pandoc.Class (PandocMonad, findFileWithDataFallback) import Text.Pandoc.Error (PandocError) import Text.Pandoc.Lua.Global (Global (..), setGlobals) @@ -40,7 +38,7 @@ loadCustom luaFile = do either throw pure <=< runLuaWith luaState $ do let globals = [ PANDOC_SCRIPT_FILE luaFile ] setGlobals globals - dofileTrace luaFile' >>= \case + dofileTrace (Just luaFile') >>= \case OK -> pure () _ -> throwErrorAsException diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs index e1fe19690..ff22626a6 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Filter.hs @@ -34,7 +34,7 @@ import Text.Pandoc.Error (PandocError (PandocFilterError, PandocLuaError)) runFilterFile :: FilePath -> Pandoc -> LuaE PandocError Pandoc runFilterFile filterPath doc = do oldtop <- gettop - stat <- dofileTrace filterPath + stat <- dofileTrace (Just filterPath) if stat /= Lua.OK then throwErrorAsException else do diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs index 5d7c87704..aa501fbaf 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Init.hs @@ -22,7 +22,6 @@ import Control.Monad.Catch (throwM, try) import Control.Monad.Trans (MonadIO (..)) import Data.Maybe (catMaybes) import HsLua as Lua hiding (status, try) -import HsLua.Core.Run as Lua import Text.Pandoc.Class (PandocMonad (..)) import Text.Pandoc.Data (readDataFile) import Text.Pandoc.Error (PandocError (PandocLuaError)) diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs index 6277efdd9..533482d6b 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/CLI.hs @@ -31,6 +31,7 @@ documentedModule = Module , moduleFields = [ Field { fieldName = "default_options" + , fieldType = "table" , fieldDescription = "Default CLI options, using a JSON-like " <> "representation." , fieldPushValue = pushViaJSON defaultOpts @@ -50,6 +51,7 @@ documentedModule = Module ] ] , moduleOperations = [] + , moduleTypeInitializers = [] } where peekArgs idx = diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs index 63753532a..2bc9910cd 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Format.hs @@ -30,6 +30,7 @@ documentedModule = Module , moduleFields = [] , moduleOperations = [] , moduleFunctions = functions + , moduleTypeInitializers = [] } -- | Extension module functions. diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs index 00cf9a100..a21635329 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/JSON.hs @@ -42,6 +42,7 @@ documentedModule = Module , moduleFields = fields , moduleFunctions = functions , moduleOperations = [] + , moduleTypeInitializers = [] } -- @@ -58,6 +59,7 @@ fields = null :: LuaError e => Field e null = Field { fieldName = "null" + , fieldType = "userdata" , fieldDescription = "Value used to represent the `null` JSON value." , fieldPushValue = pushValue Aeson.Null } diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs index 199f965d7..3de86cc99 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/MediaBag.hs @@ -53,6 +53,7 @@ documentedModule = Module , write ] , moduleOperations = [] + , moduleTypeInitializers = [] } -- | Delete a single item from the media bag. diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs index e921a67d0..37d78bb83 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs @@ -74,12 +74,18 @@ documentedModule = Module , inlineConstructors , metaValueConstructors ] + , moduleTypeInitializers = + [ initType typePandoc + , initType typeBlock + , initType typeInline + ] } -- | Set of input formats accepted by @read@. readersField :: Field PandocError readersField = Field { fieldName = "readers" + , fieldType = "table" , fieldDescription = T.unlines [ "Set of formats that pandoc can parse. All keys in this table can" , "be used as the `format` value in `pandoc.read`." @@ -92,6 +98,7 @@ readersField = Field writersField :: Field PandocError writersField = Field { fieldName = "writers" + , fieldType = "table" , fieldDescription = T.unlines [ "Set of formats that pandoc can generate. All keys in this table" , "can be used as the `format` value in `pandoc.write`." @@ -104,6 +111,7 @@ writersField = Field inlineField :: Field PandocError inlineField = Field { fieldName = "Inline" + , fieldType = "table" , fieldDescription = "Inline constructors, nested under 'constructors'." -- the nesting happens for historical reasons and should probably be -- changed. @@ -114,6 +122,7 @@ inlineField = Field blockField :: Field PandocError blockField = Field { fieldName = "Block" + , fieldType = "table" , fieldDescription = "Inline constructors, nested under 'constructors'." -- the nesting happens for historical reasons and should probably be -- changed. @@ -176,6 +185,7 @@ stringConstants = ] toField s = Field { fieldName = T.pack s + , fieldType = "string" , fieldDescription = T.pack s , fieldPushValue = pushString s } diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs index f90c5d761..81ff13e39 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Scaffolding.hs @@ -26,12 +26,14 @@ documentedModule = Module , moduleFields = [writerScaffolding] , moduleOperations = [] , moduleFunctions = [] + , moduleTypeInitializers = [] } -- | Template module functions. writerScaffolding :: Field PandocError writerScaffolding = Field { fieldName = "Writer" + , fieldType = "table" , fieldDescription = T.unlines [ "An object to be used as a `Writer` function; the construct handles" , "most of the boilerplate, expecting only render functions for all" diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs index 21248c724..d8894e103 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Structure.hs @@ -51,6 +51,7 @@ documentedModule = Module , table_of_contents ] , moduleOperations = [] + , moduleTypeInitializers = [] } make_sections :: LuaError e => DocumentedFunction e diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs index 61ab949a8..1d685e13e 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/System.hs @@ -41,4 +41,5 @@ documentedModule = Module , setName "with_working_directory" with_wd ] , moduleOperations = [] + , moduleTypeInitializers = [] } diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs index 652588947..87d9cebb5 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Template.hs @@ -16,7 +16,7 @@ import HsLua.Module.DocLayout (peekDoc, pushDoc) import Text.Pandoc.Error (PandocError) import Text.Pandoc.Lua.Marshal.AST (peekMeta, pushBlocks, pushInlines) import Text.Pandoc.Lua.Marshal.Context (peekContext, pushContext) -import Text.Pandoc.Lua.Marshal.Template (peekTemplate, pushTemplate) +import Text.Pandoc.Lua.Marshal.Template (typeTemplate, peekTemplate, pushTemplate) import Text.Pandoc.Lua.PandocLua (PandocLua (unPandocLua), liftPandocLua) import Text.Pandoc.Writers.Shared (metaToContext') import Text.Pandoc.Templates @@ -35,6 +35,7 @@ documentedModule = Module , moduleFields = [] , moduleOperations = [] , moduleFunctions = functions + , moduleTypeInitializers = [initType typeTemplate] } -- | Template module functions. diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs index 32630ba71..4f656ff3f 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Types.hs @@ -39,4 +39,5 @@ documentedModule = Module =#> functionResult pushVersion "Version" "A new Version object." ] , moduleOperations = [] + , moduleTypeInitializers = [] } diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs index 513b5274e..74e3cc4ec 100644 --- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs +++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Utils.hs @@ -49,6 +49,7 @@ documentedModule = Module , moduleDescription = "pandoc utility functions" , moduleFields = [] , moduleOperations = [] + , moduleTypeInitializers = [] , moduleFunctions = [ defun "blocks_to_inlines" ### (\blks mSep -> do |
