Commit Graph
57 Commits
Author SHA1 Message Date
John MacFarlane f5b43c10d3 Bump pandoc version bound in pandoc-lua-engine. 2024-06-24 12:38:38 -07:00
John MacFarlane 7ca6a2b776 Update pandoc-lua-engine to 0.3 2024-06-24 12:29:52 -07:00
Albert Krewinkel 2cc9defda4 Lua: split Init module into more modules.
The module has grown unwieldy and is therefore split into three internal
Haskell modules, `Init`, `Module`, and `Run`.
2024-06-09 16:10:38 +02:00
Albert Krewinkel 7db19d8cd4 Update more copyright dates to 2024. 2024-06-08 16:46:42 +02:00
Albert Krewinkel ad68ff34ae Lua: add function pandoc.utils.run_lua_filter (#9803) 2024-05-27 14:20:31 -07:00
John MacFarlane e267e1d7be pandoc-lua-engine: depend on pandoc >= 3.2.
See https://github.com/jgm/pandoc/issues/9755
2024-05-13 08:03:08 -07:00
John MacFarlane b419770850 Bump pandoc, pandoc-cli to 3.2, update changelog.
Also bump pandoc-lua-engine to 0.2.1.5 and allow pandoc 3.2.
2024-05-11 12:01:16 -07:00
Albert Krewinkel e5c135e68e Lua: add a pandoc.log module. 2024-05-10 19:03:29 -07:00
Albert Krewinkel ddc66cad0b Lua: update to pandoc-lua-marshal version 0.2.7.
This fixes counterintuitive behavior of the `content` property on
BulletList and OrderedList items. Unmarshalling of that field now
matches the behavior of the constructor.

Fixes: #8916
2024-05-06 17:06:43 +02:00
Albert Krewinkel 0f29d8195e Lua: use hslua-module-zip-1.1.3 to fix the windows build 2024-05-05 21:16:31 +02:00
Albert Krewinkel 018922d10f Lua: use newest zip module.
This adds a `symlink` function to Entry objects, allowing to check if an
entry represents a symbolic link.
2024-05-05 17:54:33 +02:00
Albert Krewinkel 5f937eae61 Lua: add new module pandoc.image
The module provides basic querying functions for image properties.
2024-04-16 10:23:08 -07:00
John MacFarlane cb281aed0e Bump pandoc-lua-engine to 0.2.1.4. 2024-04-07 08:40:45 -07:00
Albert Krewinkel 2792d218b1 Require pandoc-lua-marshal 0.2.6
Fixes an issue arising when the value of `content` properties
on *BlockQuote*, *Figure*, and *Div* elements was an empty list.

Fixes: #9613
2024-03-29 19:03:05 +01:00
John MacFarlane e9425aaed7 Allow containers 0.7.
- Bump pandoc-lua-engine to 0.2.1.3.
- Bump pandoc-server to 0.1.0.5.
2024-02-14 23:03:56 -08:00
John MacFarlane f2e3e9891a Bump pandoc-server to 0.1.0.5 and allow containsers 0.7 2024-02-14 22:59:09 -08:00
Albert Krewinkel 2c6f22d2b4 Lua: Use the newest LPeg version (lpeg-1.1.*)
Closes: #9107
2023-09-27 21:04:49 +02:00
John MacFarlane fc0beae420 pandoc-lua-engine: bump lower bound for pandoc.
See #9046.
2023-09-01 12:13:16 -07:00
John MacFarlane 9599fa748d pandoc-lua-engine: bump to 0.2.1.2 2023-08-31 09:32:10 -07:00
John MacFarlane 099b00d406 pandoc-lua-engine; allow text 2.1. 2023-08-31 09:29:49 -07:00
John MacFarlane fb47bde3a3 Bump pandoc-lua-engine version to 0.2.1.1 2023-08-06 19:09:24 -07:00
John MacFarlane 14b5298052 Bump dates, update dependencies. 2023-08-06 11:44:41 -07:00
John MacFarlane 14f86c3481 Bump pandoc-lua-engine to 0.2.1. 2023-06-24 14:27:31 -07:00
John MacFarlane b1a78b0dda Bump pandoc-lua-engine to 0.2.0.1. 2023-06-09 10:02:31 -07:00
Felix Yan ede51f6a5a Include lua/module/sample.svg in hackage tarball
Should fix the following error when running tests from Hackage tarball:

```
    pandoc.mediabag:                            [WARNING] Could not fetch resource lua/module/sample.svg: replacing image with description
FAIL
      fetch // populates media bag:
      File lua/module/sample.svg not found in resource path
DEBUG:root:haskell-pandoc-lua-engine:
      fill // populates media bag:
      lua/module/pandoc-mediabag.lua:70:
      expected values to be equal, got 'nil' and 'image/svg+xml'
```
2023-06-09 09:56:18 -07:00
John MacFarlane 509adf7cbf Bump pandoc-lua-engine to 0.2, depend on latest pandoc 2023-03-27 16:55:18 -07:00
Albert Krewinkel ed5197f525 Lua: load text module as pandoc.text.
This only affects the name in the Lua-internal documentation. It is
still possible to load the modules via `require 'text'`, although this
is deprecated.
2023-03-20 16:06:18 +01:00
Albert Krewinkel 203a652e43 Lua: add pandoc.cli.repl function 2023-03-18 15:00:45 -07:00
Albert Krewinkel a23d14079c pandoc-cli: add a Lua REPL 2023-03-17 09:18:41 -07:00
Albert Krewinkel 0f7653cd10 Switch to hslua-2.3 2023-03-13 13:23:43 +01:00
Albert Krewinkel 45367cdd37 Lua: add new function pandoc.system.cputime.
The function returns the CPU time consumed by pandoc and can be used to
benchmark Lua computations.
2023-02-14 09:44:20 -08:00
Albert Krewinkel 75b5851d21 Lua: add module pandoc.json to handle JSON encoding
Closes: #8605
2023-02-11 14:53:53 -08:00
Albert Krewinkel c2827e7765 Use latest pandoc-lua-marshal release, version 0.2.1.
All major AST elements now have `__tojson` metamethods that return the
JSON representation of an element. This allows to JSON-encode these
elements with libraries that respect the `__tojson` metamethod,
including dkjson.
2023-02-11 14:53:53 -08:00
John MacFarlane 4e07362e75 Bump pandoc-lua-engine to 0.1.1 2023-02-09 22:24:33 -08:00
John MacFarlane 14a248b43d pandoc-lua-engine: require pandoc >= 3.1. 2023-02-09 20:55:00 -08:00
John MacFarlane 3c6e339a36 pandoc-lua-engine: relax version bound to allow pandoc 3.1. 2023-02-08 19:30:05 -08:00
Albert Krewinkel cdf8c69fb9 Lua: add module pandoc.structure.
Adds support for table of contents and chunks handling. The function
`make_sections` has been given a friendlier interface and was moved to
the new module; the old `pandoc.utils.make_sections` has been
deprecated.
2023-01-15 10:47:54 -08:00
John MacFarlane 0b02f177fb Use latest dev pandoc-lua-marshal. 2023-01-13 12:59:13 -08:00
John MacFarlane aa747f194f Require pandoc-types 1.23, update dependencies.
This fails to build because pandoc-lua-marshal still needs updating.
2023-01-13 10:42:07 -08:00
Albert Krewinkel 28fa37e554 CI: test with GHC 9.2.5 and 9.4.4 2023-01-12 22:21:39 +01:00
Albert Krewinkel 8862d5e0dd Lua: add functions pandoc.text.toencoding, pandoc.text.fromencoding.
Closes: #8512
2023-01-03 10:35:22 +01:00
John MacFarlane 063480accd T.P.Scripting: Refactor the scripting engine.
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 <albert@zeitkraut.de>
2022-12-20 20:58:44 -08:00
Albert Krewinkel 928dde57b9 Lua: add pandoc.cli module
Allow processing of CLI options in Lua.
2022-12-12 09:35:21 -08:00
John MacFarlane f038897187 Use doctemplates 0.11.
This avoids a transitive dependency on HsYAML, which we no longer
use in pandoc.
2022-11-21 10:44:59 -08:00
Alexander Batischev 1bea5e8a54 Allow mtl 2.3.1 2022-11-15 11:35:53 -08:00
Albert Krewinkel e243cd696f Lua: add pandoc.scaffolding.Writer (#8377)
This can be used to reduce boilerplate in custom writers.
2022-10-21 10:11:45 -07:00
Albert Krewinkel f711c7f2aa Lua: add new module pandoc.zip
Allows to handle docx and epub files.
2022-10-20 09:11:57 -07:00
Albert Krewinkel 8900b0f953 Lua: Support built-in default templates for custom writers
Custom writers can define a default template via a global `Template`
function; the data directory is no longer searched for a default
template.

Writer authors can restore the old lookup behavior with

``` lua
Template = function ()
  local template
  return template.compile(template.default(PANDOC_SCRIPT_FILE))
end
```
2022-10-14 10:37:37 -07:00
Albert Krewinkel a088cbf563 Lua: support extensions in custom writers
Custom writers can define the extensions that they support via the
global `writer_extensions`. The variable's value must be a table with
all supported extensions as keys, and their default status as values.

E.g., the below specifies that the writer support the extensions `smart`
and `sourcepos`, but only the `smart` extension is enabled by default:

    writer_extensions = {
      smart = true,
      sourcepos = false,
    }
2022-10-10 09:39:18 -07:00
Albert Krewinkel a5ffaaa413 Lua: support custom bytestring readers. 2022-10-10 11:27:42 +02:00