diff options
| author | Albert Krewinkel <albert@zeitkraut.de> | 2021-12-19 23:04:31 +0100 | 
|---|---|---|
| committer | Albert Krewinkel <albert@zeitkraut.de> | 2021-12-19 23:17:27 +0100 | 
| commit | 993222d2c9c94cbf51f06528b79ffddd56b9da46 (patch) | |
| tree | 4025a5a8840fe706da3fa7e5b8eab8d8c7eb0cc0 | |
| parent | 0610f16f7f684b320325b6c0b501725138d10a52 (diff) | |
| download | pandoc-993222d2c9c94cbf51f06528b79ffddd56b9da46.tar.gz | |
Custom writer: assign default Pandoc object to global PANDOC_DOCUMENT
The default Pandoc object is now non-strict, i.e., only the parts of the
document that are accessed will be marshaled to Lua. A special type is
no longer necessary.
This change also makes it possible to use the global variable with
library functions such as `pandoc.utils.references`, or to inspect the
document contents with `walk()`.
| -rw-r--r-- | src/Text/Pandoc/Lua/Global.hs | 12 | 
1 files changed, 3 insertions, 9 deletions
| diff --git a/src/Text/Pandoc/Lua/Global.hs b/src/Text/Pandoc/Lua/Global.hs index c7b50a25f..cf82890c6 100644 --- a/src/Text/Pandoc/Lua/Global.hs +++ b/src/Text/Pandoc/Lua/Global.hs @@ -18,9 +18,10 @@ import HsLua as Lua  import HsLua.Module.Version (pushVersion)  import Paths_pandoc (version)  import Text.Pandoc.Class.CommonState (CommonState) -import Text.Pandoc.Definition (Pandoc (Pandoc), pandocTypesVersion) +import Text.Pandoc.Definition (Pandoc, pandocTypesVersion)  import Text.Pandoc.Error (PandocError)  import Text.Pandoc.Lua.Marshal.CommonState (pushCommonState) +import Text.Pandoc.Lua.Marshal.Pandoc (pushPandoc)  import Text.Pandoc.Lua.Marshal.ReaderOptions (pushReaderOptionsReadonly)  import Text.Pandoc.Lua.Orphans ()  import Text.Pandoc.Options (ReaderOptions) @@ -52,7 +53,7 @@ setGlobal global = case global of      pushVersion pandocTypesVersion      Lua.setglobal "PANDOC_API_VERSION"    PANDOC_DOCUMENT doc -> do -    pushUD typePandocLazy  doc +    pushPandoc doc      Lua.setglobal "PANDOC_DOCUMENT"    PANDOC_READER_OPTIONS ropts -> do      pushReaderOptionsReadonly ropts @@ -66,10 +67,3 @@ setGlobal global = case global of    PANDOC_VERSION              -> do      pushVersion version      Lua.setglobal "PANDOC_VERSION" - --- | Readonly and lazy pandoc objects. -typePandocLazy :: LuaError e => DocumentedType e Pandoc -typePandocLazy = deftype "Pandoc (lazy)" [] -  [ readonly "meta" "document metadata" (push, \(Pandoc meta _) -> meta) -  , readonly "blocks" "content blocks" (push, \(Pandoc _ blocks) -> blocks) -  ] | 
