aboutsummaryrefslogtreecommitdiff
path: root/pandoc-lua-engine/src/Text/Pandoc/Lua/Custom.hs
AgeCommit message (Collapse)Author
2025-11-19Lua: preserve common state of custom Lua readersAlbert Krewinkel
The common state is transferred to Lua when calling a custom Lua reader, and is now also transferred back after the reader has finished. This ensures that info messages, warnings, and mediabag entries are available to the main program and all subsequent processing steps.
2024-06-09Lua: split Init module into more modules.Albert Krewinkel
The module has grown unwieldy and is therefore split into three internal Haskell modules, `Init`, `Module`, and `Run`.
2024-04-25Update copyright dates to 2024.John MacFarlane
2024-01-20Custom writers: fix handling of common stateAlbert Krewinkel
The CommonState (`PANDOC_STATE` in Lua) may change between the time that a custom writer script is first loaded and when the writer is run. However, the writer was always using the initial state, which led to problems, e.g. when the mediabag was updated in a filter, as those updates where not visible to the writer. The state is now updated right before the writer function runs. Fixes: #9229
2023-04-16Lua: fix value of PANDOC_SCRIPT_FILE for custom readers & writersAlbert Krewinkel
The value did not hold the actual file path for scripts in the *custom* folder of the datadir. Fixes: #8781
2023-03-13Switch to hslua-2.3Albert Krewinkel
2023-01-10Update copyright years, it's 2023!Albert Krewinkel
2022-12-20T.P.Scripting: Refactor the scripting engine.John MacFarlane
The new type CustomComponents is exported from T.P.Scripting, and the ScriptEngine fields are changed. Instead of separate fields for custom readers and writers, we now have a single function that loads any number of "components" from a script: these may be custom readers, custom writers, templates for writers, or extension configs. (Note: it's possible to have a custom reader and a custom writer for a format together in the same file.) Pandoc now checks the folder `custom` in the user's data directory for a matching script if it can't find one in the local directory. Previously, the `readers` and `writers` data directories were search for custom readers and writers, respectively. Scripts in those directories must be moved to the `custom` folder. Custom readers used to implement a fallback behavior that allowed to consume just a string value as input to the `Reader` function. This has been removed, the first argument is now always a list of sources. Use `tostring` on that argument to get a string. Closes #8417. Signed-off-by: Albert Krewinkel <[email protected]>