Commit Graph
184 Commits
Author SHA1 Message Date
John MacFarlane 867686b554 pandoc-lua-engine: bump to 0.5.0.2. 2025-12-01 09:38:08 +01:00
John MacFarlane 48badd2073 pandoc-lua-engine: allow citeproc 0.12. 2025-11-30 18:05:49 +01:00
Albert Krewinkel 4e0f626898 Lua: preserve common state of custom Lua readers
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.
2025-11-19 12:22:41 +01:00
John MacFarlane d929bbf394 Bump pandoc-lua-engine to 0.5.0.1 2025-10-20 10:18:44 +02:00
John MacFarlane 3766e39389 pandoc-lua-engine: allow citeproc 0.11. 2025-10-19 23:27:09 +02:00
John MacFarlane 69709e1b1d Bump pandoc-lua-engine to 0.5. 2025-09-06 11:03:42 +02:00
John MacFarlane ede7128ea5 pandoc-lua-engine: change pandoc dependency bounds. 2025-09-06 10:59:05 +02:00
John MacFarlane ad77315d22 Bump version bound for citeproc in pandoc-lua-engine. 2025-09-04 12:23:53 +02:00
Albert Krewinkel e0acb24528 Refactor highlighting options [API Change]
A new command line option `--syntax-highlighting` is provided; it takes
the values `none`, `default`, `idiomatic`, a style name, or a path to a
theme file. It replaces the `--no-highlighting`, `--highlighting-style`,
and `--listings` options.

The `writerListings` and `writerHighlightStyle` fields of the
`WriterOptions` type are replaced with `writerHighlightStyle`.

Closes: #10525
2025-09-02 17:50:47 +02:00
Albert Krewinkel a36654b222 Lua: add function pandoc.structure.unique_identifier.
The function generates element identifiers based on inlines content.
It's primary use case is the programmatic generation of ID, similar to
what the `auto_identifiers` extension provides for many formats.
2025-08-12 21:37:35 +02:00
Albert Krewinkel 68d80cc9d9 Lua: add functions pandoc.text.superscript and subscript.
The functions convert numbers and parentheses to superscript and
subscript, respectively.
2025-08-12 08:47:49 +02:00
Albert Krewinkel 282fa55421 Lua: require hslua-module-system 1.2.3
This provides List methods to the value returned by
`pandoc.system.list_directory`.

Closes: #11032
2025-08-09 20:59:11 +02:00
Albert Krewinkel b24bba7a20 Add smart_quotes and special_strings extensions for Org
Org mode makes a distinction between smart parsing of quotes, and smart
parsing of special strings like `...`. The finer grained control over
these features is necessary to truthfully reproduce Emacs Org mode
behavior. Special strings are enabled by default, while smart quotes are
disabled.

The behavior of `special_string` is brought closer to the reference
implementation in that `\-` is now treated as a soft hyphen.
2025-08-06 12:54:12 -07:00
Albert Krewinkel 75aee7a23c Lua: use proper interface functions to access the CommonState.
- The `PANDOC_STATE` is no longer a userdata object, but a table that
  behaves like the old object.

- Log messages in `PANDOC_STATE.log` are now in temporal order.
2025-08-01 10:04:14 -07:00
Albert Krewinkel 01a305af58 Lua: add function pandoc.path.exists.
The functions allows to check the existence of file-system objects.
2025-07-23 19:31:03 +02:00
Albert Krewinkel 9893fe8c65 Lua: add normalize function to *Pandoc* objects
This function performs a normalization of Pandoc documents. E.g.,
multiple successive spaces are collapsed, and tables are normalized such
that all rows and columns contain the same number of cells.

Closes: #10356
2025-07-19 15:42:37 +02:00
Albert Krewinkel 6b81649771 Lua: add more UTF-8-aware file operations to pandoc.system.
Functions that expect UTF-8-encoded filenames should make it easier to
write platform-independent scripts, as the encoding of the actual
filename depends on the system.

Additionally, this also adds a generalized method to run commands, and
functions to retrieve XDG directory names.

The new functions are `command`, `copy`, `read_file`, `remove`,
`rename`, `times`, `write_file`, `xdg`.
2025-06-30 09:56:08 -06:00
Albert Krewinkel bffdd13038 pandoc-lua-engine: Allow hslua-2.4.0 in the tests 2025-06-25 17:06:55 +02:00
Albert Krewinkel d3f2fcc5f8 pandoc-lua-engine: Allow hslua-2.4. 2025-06-23 13:02:19 +02:00
John MacFarlane 883c8725d5 Bump pandoc-lua-engine to 0.4.3. 2025-05-28 15:03:37 -07:00
Albert Krewinkel c92cc277f5 doc/lua-filters.md: add missing docs for pandoc.Caption 2025-05-28 14:00:42 +02:00
Albert Krewinkel ce5e2a2efc Lua: add function pandoc.mediabag.make_data_uri.
The function takes a MIME type and raw data from which it creates an
RFC 2397 data URI.

Closes: #10876
2025-05-28 13:19:01 +02:00
John MacFarlane fdec82c5d8 pandoc-lua-engine: bump to 0.4.2, bump pandoc bounds. 2025-05-14 14:42:28 -07:00
Albert Krewinkel 992842d07b Lua: accept filename-contents pairs as env for pandoc.read
Key-value pairs, mapping from filename to contents, can be used to fill
the ersatz file system used in the reader sandbox.
2025-05-14 09:17:24 -07:00
Albert Krewinkel 5b896bc1a9 Lua: allow to pass files to the pandoc.read sandbox
The sandbox is now enabled if the fourth parameter is a list of files.
The files are read and then made available in the sandbox via a mock
file system.
2025-05-14 09:17:24 -07:00
Albert Krewinkel be9fbb3f67 pandoc-lua-engine: add all test files to the cabal file 2025-05-13 23:41:03 +02:00
Albert Krewinkel 31f74fac06 Lua: support sandboxed parsing with pandoc.read.
The function `pandoc.read` is now taking an optional fourth parameter
that specifies the environment in which the parser will be run. Passing
the string `sandbox` as the argument causes the reader to run in a
sandbox, thereby preventing all access to the network and file system.

Closes: #10831
2025-05-13 23:38:36 +02:00
John MacFarlane 9bb805adb0 Use citeproc-0.9. Bump citeproc bounds for pandoc, pandoc-lua-engine. 2025-05-12 00:43:39 -07:00
John MacFarlane da45a9c76a pandoc-lua-engine to 0.4.1.1, allow latest containers 2025-03-16 10:58:49 -07:00
John MacFarlane 26ad26b7e6 pandoc-lua-engine: bump to 0.4.1. 2024-12-23 00:51:49 -08:00
Albert Krewinkel a084731070 Lua: support more elements as input to pandoc.utils.stringify.
Elements of type Caption, Cell, TableHead, and TableFoot can now be
stringified.

Fixes: #10450
2024-12-10 11:45:51 +01:00
Albert Krewinkel 64f45fefa7 Lua: add Caption constructor to pandoc module. 2024-12-10 11:06:37 +01:00
John MacFarlane aaf9223b78 Depend on typst 0.6.1 2024-12-07 13:55:11 -08:00
John MacFarlane 920747918c Depend on released pandoc-lua-marshal 0.3.0. 2024-12-07 13:31:33 -08:00
John MacFarlane 809b7da7ca Bump pandoc-lua-engine to 0.4 and depend on it in pandoc-cli. 2024-12-07 12:32:19 -08:00
Andreas Deininger eeb8b1eb3a Fix typos (#10349) 2024-11-06 10:04:33 -08:00
John MacFarlane ec27d4bd22 Bump upper bound for data-default. 2024-10-28 09:41:10 -07:00
Albert Krewinkel d399943759 Lua: Remove prefixes from Lua type names
Lua type names were inconsistent with regard to the use of prefixes; all
prefixes are removed now, and Lua types now have the same name as the
Haskell types.

The use of app-specific prefixes is suggested by the Lua manual to avoid
collisions. However, this shouldn't be a problem with pandoc, as it
cannot be used as a Lua package.

Closes: #8574
2024-10-14 07:53:12 +02:00
John MacFarlane abe86835e1 Depend on latest pandoc-lua-marshall. 2024-10-05 12:45:40 -07:00
John MacFarlane 8ff24ec4e4 Bump pandoc-lua-engine to 0.3.3. 2024-10-05 12:42:08 -07:00
Albert Krewinkel a37035caa1 doc/lua-filters.md: list functions in pandoc.utils alphabetically 2024-10-01 12:24:13 +02:00
Albert Krewinkel 4cf6ddb027 Lua: allow returning a single filter from filter files
It is now possible to return a single filter from a filter file, e.g.

``` lua
-- Switch single- and double quotes
return {
  Quoted = function (q)
    elem.quotetype = elem.quotetype == 'SingleQuote'
      and 'DoubleQuote' or 'SingleQuote'
    return elem
  end
}

The filter must not contain numerical indexes, or it might be treated as
a list of filters.
2024-10-01 12:23:36 +02:00
Albert Krewinkel 7565a90cec Stop depending on package SHA
Pandoc already depends on `crypton-conntection`, and thus transitively
on `crypton`. The latter provides a vast variety of hashing algorithms
and makes the dependency on SHA unnecessary.
2024-09-29 18:36:56 +02:00
Akash PatelandJohn MacFarlane ca348940e3 Add support for list of figures (lof) and list of tables (lot) (#10029)
Two new command-line options are added:

`--lof[=true|false]`, `--list-of-figures[=true|false]`
`--lot[=true|false]`, `--list-of-tables[=true|false]`

Only docx, latex, and context are supported at this point.

Setting the `lof` and `lot` variables will also work for the formats that are
currently supported.

[API changes]

+ Lua: `list_of_figures` and `list_of_tables` can now be used in writer options.
+ Text.Pandoc.Options:  add `writerListOfFigures` and `writerListOfTables` fields
  to `WriterOptions`.
+ Text.Pandoc.App.Opt: add `optListOfFigures` and `optListOfTables` to `Opt`.

Closes #8245.

Co-authored-by: John MacFarlane <jgm@berkeley.edu>
2024-09-22 11:49:52 -07:00
Albert Krewinkel 8aa796f30a Lua: support character styling via pandoc.layout
The `Doc` values produced and handled by the `pandoc.layout` module can
now be styled using `bold`, `italic`, `underlined`, or `strikeout`. The
style is ignored in normal rendering, but becomes visible when rendering
to ANSI output. The `pandoc.layout.render` function now takes a third
parameter that defines the output style, either *plain* or *ansi*.
2024-09-21 15:20:34 +02:00
Albert Krewinkel 05aa18420f Lua: update List module
The module now comes with a method `:at(index[, def])` that allows to access
indices, accepts negative indices to count from the end, and will return the
`def` value as a default if the list has no item at the given position.

Furthermore, the list constructor `pandoc.List` now accepts iterators. E.g.,
`pandoc.List(text:gmatch '%S+')` returns the list of words in `text`.

Closes: #9835
2024-09-21 10:10:35 +02:00
John MacFarlane a0e0973c63 Bump pandoc-lua-engine to 0.3.2. 2024-09-09 22:13:27 -07:00
John MacFarlane a256f007cf Depend on doclayout 0.5. 2024-09-09 08:18:28 -07:00
John MacFarlane 477e235f6e pandoc-lua-engine: marshall list_tables, epub_title_page writer options. 2024-09-08 09:42:20 -07:00
John MacFarlane 25b9314472 Finishing touches on --link-images:
- Document in defaults file section of MANUAL.
- Add to pandoc-lua-engine writer option marshalling.
- Add to pandoc-server initialization of writer options.
2024-09-08 09:07:55 -07:00