2017-09-30 16:45:31 +02:00
|
|
|
|
---
|
2017-11-21 01:51:45 +01:00
|
|
|
|
author:
|
|
|
|
|
- Albert Krewinkel
|
|
|
|
|
- John MacFarlane
|
2022-02-06 09:43:58 +01:00
|
|
|
|
date: 'January 10, 2020'
|
2017-12-29 07:02:59 +01:00
|
|
|
|
title: Pandoc Lua Filters
|
2017-09-30 16:45:31 +02:00
|
|
|
|
---
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
|
|
|
|
# Introduction
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Pandoc has long supported filters, which allow the pandoc
|
|
|
|
|
abstract syntax tree (AST) to be manipulated between the parsing
|
|
|
|
|
and the writing phase. [Traditional pandoc
|
|
|
|
|
filters](https://pandoc.org/filters.html) accept a JSON
|
2019-08-08 20:21:31 +02:00
|
|
|
|
representation of the pandoc AST and produce an altered JSON
|
2022-02-06 09:43:58 +01:00
|
|
|
|
representation of the AST. They may be written in any
|
|
|
|
|
programming language, and invoked from pandoc using the
|
|
|
|
|
`--filter` option.
|
|
|
|
|
|
|
|
|
|
Although traditional filters are very flexible, they have a
|
|
|
|
|
couple of disadvantages. First, there is some overhead in
|
|
|
|
|
writing JSON to stdout and reading it from stdin (twice, once on
|
|
|
|
|
each side of the filter). Second, whether a filter will work
|
|
|
|
|
will depend on details of the user's environment. A filter may
|
|
|
|
|
require an interpreter for a certain programming language to be
|
|
|
|
|
available, as well as a library for manipulating the pandoc AST
|
|
|
|
|
in JSON form. One cannot simply provide a filter that can be
|
|
|
|
|
used by anyone who has a certain version of the pandoc
|
|
|
|
|
executable.
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
2020-01-11 00:19:26 +01:00
|
|
|
|
Starting with version 2.0, pandoc makes it possible to write
|
2020-01-12 11:22:20 +01:00
|
|
|
|
filters in Lua without any external dependencies at all. A Lua
|
|
|
|
|
interpreter (version 5.3) and a Lua library for creating pandoc
|
2022-02-06 09:43:58 +01:00
|
|
|
|
filters is built into the pandoc executable. Pandoc data types
|
|
|
|
|
are marshaled to Lua directly, avoiding the overhead of writing
|
|
|
|
|
JSON to stdout and reading it from stdin.
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
2020-01-12 11:22:20 +01:00
|
|
|
|
Here is an example of a Lua filter that converts strong emphasis
|
2017-08-22 07:14:26 +02:00
|
|
|
|
to small caps:
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-08-22 07:14:26 +02:00
|
|
|
|
return {
|
|
|
|
|
{
|
|
|
|
|
Strong = function (elem)
|
|
|
|
|
return pandoc.SmallCaps(elem.c)
|
|
|
|
|
end,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
2017-08-21 16:53:00 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
or equivalently,
|
2017-08-21 16:53:00 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-08-22 07:14:26 +02:00
|
|
|
|
function Strong(elem)
|
|
|
|
|
return pandoc.SmallCaps(elem.c)
|
|
|
|
|
end
|
|
|
|
|
```
|
2017-08-21 16:53:00 +02:00
|
|
|
|
|
2017-09-30 16:45:31 +02:00
|
|
|
|
This says: walk the AST, and when you find a Strong element,
|
2017-08-22 07:14:26 +02:00
|
|
|
|
replace it with a SmallCaps element with the same content.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
To run it, save it in a file, say `smallcaps.lua`, and invoke
|
|
|
|
|
pandoc with `--lua-filter=smallcaps.lua`.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2019-08-08 20:02:23 +02:00
|
|
|
|
Here's a quick performance comparison, converting the pandoc
|
2022-02-06 09:43:58 +01:00
|
|
|
|
manual (MANUAL.txt) to HTML, with versions of the same JSON
|
|
|
|
|
filter written in compiled Haskell (`smallcaps`) and interpreted
|
|
|
|
|
Python (`smallcaps.py`):
|
2019-08-08 20:02:23 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Command Time
|
|
|
|
|
--------------------------------------- -------
|
|
|
|
|
`pandoc` 1.01s
|
|
|
|
|
`pandoc --filter ./smallcaps` 1.36s
|
|
|
|
|
`pandoc --filter ./smallcaps.py` 1.40s
|
|
|
|
|
`pandoc --lua-filter ./smallcaps.lua` 1.03s
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2020-01-12 11:22:20 +01:00
|
|
|
|
As you can see, the Lua filter avoids the substantial overhead
|
2020-10-12 16:57:30 +02:00
|
|
|
|
associated with marshaling to and from JSON over a pipe.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
# Lua filter structure
|
|
|
|
|
|
|
|
|
|
Lua filters are tables with element names as keys and values
|
|
|
|
|
consisting of functions acting on those elements.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Filters are expected to be put into separate files and are
|
|
|
|
|
passed via the `--lua-filter` command-line argument. For
|
|
|
|
|
example, if a filter is defined in a file `current-date.lua`,
|
|
|
|
|
then it would be applied like this:
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
|
|
|
|
pandoc --lua-filter=current-date.lua -f markdown MANUAL.txt
|
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
The `--lua-filter` option may be supplied multiple times. Pandoc
|
2017-12-26 19:33:10 +01:00
|
|
|
|
applies all filters (including JSON filters specified via
|
2020-01-12 11:22:20 +01:00
|
|
|
|
`--filter` and Lua filters specified via `--lua-filter`) in the
|
2017-12-29 07:02:59 +01:00
|
|
|
|
order they appear on the command line.
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
2020-01-12 11:22:20 +01:00
|
|
|
|
Pandoc expects each Lua file to return a list of filters. The
|
2017-08-22 07:14:26 +02:00
|
|
|
|
filters in that list are called sequentially, each on the result
|
|
|
|
|
of the previous filter. If there is no value returned by the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
filter script, then pandoc will try to generate a single filter
|
|
|
|
|
by collecting all top-level functions whose names correspond to
|
|
|
|
|
those of pandoc elements (e.g., `Str`, `Para`, `Meta`, or
|
|
|
|
|
`Pandoc`). (That is why the two examples above are equivalent.)
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
|
|
|
|
For each filter, the document is traversed and each element
|
2022-02-06 09:43:58 +01:00
|
|
|
|
subjected to the filter. Elements for which the filter contains
|
|
|
|
|
an entry (i.e. a function of the same name) are passed to Lua
|
|
|
|
|
element filtering function. In other words, filter entries will
|
|
|
|
|
be called for each corresponding element in the document,
|
|
|
|
|
getting the respective element as input.
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
2021-12-13 12:21:26 +01:00
|
|
|
|
The return value of a filter function must be one of the
|
|
|
|
|
following:
|
2017-09-17 10:34:24 +02:00
|
|
|
|
|
|
|
|
|
- nil: this means that the object should remain unchanged.
|
|
|
|
|
- a pandoc object: this must be of the same type as the input
|
|
|
|
|
and will replace the original object.
|
|
|
|
|
- a list of pandoc objects: these will replace the original
|
2022-02-06 09:43:58 +01:00
|
|
|
|
object; the list is merged with the neighbors of the
|
|
|
|
|
original objects (spliced into the list the original object
|
|
|
|
|
belongs to); returning an empty list deletes the object.
|
2017-09-17 10:34:24 +02:00
|
|
|
|
|
|
|
|
|
The function's output must result in an element of the same type
|
|
|
|
|
as the input. This means a filter function acting on an inline
|
|
|
|
|
element must return either nil, an inline, or a list of inlines,
|
2022-02-06 09:43:58 +01:00
|
|
|
|
and a function filtering a block element must return one of nil,
|
|
|
|
|
a block, or a list of block elements. Pandoc will throw an error
|
|
|
|
|
if this condition is violated.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
If there is no function matching the element's node type, then
|
|
|
|
|
the filtering system will look for a more general fallback
|
|
|
|
|
function. Two fallback functions are supported, `Inline` and
|
|
|
|
|
`Block`. Each matches elements of the respective type.
|
2017-08-30 15:09:54 +02:00
|
|
|
|
|
2017-04-30 15:55:45 +02:00
|
|
|
|
Elements without matching functions are left untouched.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See [module documentation](#module-pandoc) for a list of pandoc
|
|
|
|
|
elements.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2020-01-15 23:26:00 +01:00
|
|
|
|
## Filters on element sequences
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
For some filtering tasks, it is necessary to know the order
|
|
|
|
|
in which elements occur in the document. It is not enough then to
|
2020-01-15 23:26:00 +01:00
|
|
|
|
inspect a single element at a time.
|
|
|
|
|
|
|
|
|
|
There are two special function names, which can be used to define
|
|
|
|
|
filters on lists of blocks or lists of inlines.
|
|
|
|
|
|
|
|
|
|
[`Inlines (inlines)`]{#inlines-filter}
|
|
|
|
|
: If present in a filter, this function will be called on all
|
|
|
|
|
lists of inline elements, like the content of a [Para]
|
|
|
|
|
(paragraph) block, or the description of an [Image]. The
|
|
|
|
|
`inlines` argument passed to the function will be a [List] of
|
2022-01-02 14:50:56 +01:00
|
|
|
|
[Inline] elements for each call.
|
2020-01-15 23:26:00 +01:00
|
|
|
|
|
|
|
|
|
[`Blocks (blocks)`]{#blocks-filter}
|
|
|
|
|
: If present in a filter, this function will be called on all
|
|
|
|
|
lists of block elements, like the content of a [MetaBlocks]
|
|
|
|
|
meta element block, on each item of a list, and the main
|
2022-02-06 09:43:58 +01:00
|
|
|
|
content of the [Pandoc] document. The `blocks` argument
|
|
|
|
|
passed to the function will be a [List] of [Block] elements
|
|
|
|
|
for each call.
|
2020-01-15 23:26:00 +01:00
|
|
|
|
|
|
|
|
|
These filter functions are special in that the result must either
|
|
|
|
|
be nil, in which case the list is left unchanged, or must be a
|
|
|
|
|
list of the correct type, i.e., the same type as the input
|
2022-02-06 09:43:58 +01:00
|
|
|
|
argument. Single elements are **not** allowed as return values,
|
|
|
|
|
as a single element in this context usually hints at a bug.
|
2020-01-15 23:26:00 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See ["Remove spaces before normal citations"][Inlines filter
|
|
|
|
|
example] for an example.
|
2020-01-15 23:26:00 +01:00
|
|
|
|
|
|
|
|
|
This functionality has been added in pandoc 2.9.2.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[Inlines filter example]: #remove-spaces-before-citations
|
|
|
|
|
|
2021-12-13 21:02:19 +01:00
|
|
|
|
## Traversal order
|
2021-12-13 12:21:26 +01:00
|
|
|
|
|
|
|
|
|
The traversal order of filters can be selected by setting the key
|
|
|
|
|
`traverse` to either `'topdown'` or `'typewise'`; the default is
|
|
|
|
|
`'typewise'`.
|
|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
|
|
``` lua
|
|
|
|
|
local filter = {
|
|
|
|
|
traverse = 'topdown',
|
|
|
|
|
-- ... filter functions ...
|
|
|
|
|
}
|
|
|
|
|
return {filter}
|
|
|
|
|
```
|
|
|
|
|
|
2022-01-02 14:50:56 +01:00
|
|
|
|
Support for this was added in pandoc 2.17; previous versions
|
2021-12-13 12:21:26 +01:00
|
|
|
|
ignore the `traverse` setting.
|
|
|
|
|
|
|
|
|
|
### Typewise traversal
|
2020-01-11 00:19:26 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Element filter functions within a filter set are called in a
|
|
|
|
|
fixed order, skipping any which are not present:
|
2020-01-11 00:19:26 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
1. functions for [*Inline* elements](#type-inline),
|
|
|
|
|
2. the [`Inlines`](#inlines-filter) filter function,
|
|
|
|
|
2. functions for [*Block* elements](#type-block) ,
|
|
|
|
|
2. the [`Blocks`](#inlines-filter) filter function,
|
|
|
|
|
3. the [`Meta`](#type-meta) filter function, and last
|
|
|
|
|
4. the [`Pandoc`](#type-pandoc) filter function.
|
2020-01-11 00:19:26 +01:00
|
|
|
|
|
|
|
|
|
It is still possible to force a different order by explicitly
|
|
|
|
|
returning multiple filter sets. For example, if the filter for
|
|
|
|
|
*Meta* is to be run before that for *Str*, one can write
|
|
|
|
|
|
|
|
|
|
``` lua
|
|
|
|
|
-- ... filter definitions ...
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
{ Meta = Meta }, -- (1)
|
|
|
|
|
{ Str = Str } -- (2)
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Filter sets are applied in the order in which they are returned.
|
2022-02-06 09:43:58 +01:00
|
|
|
|
All functions in set (1) are thus run before those in (2),
|
|
|
|
|
causing the filter function for *Meta* to be run before the
|
|
|
|
|
filtering of *Str* elements is started.
|
2020-01-11 00:19:26 +01:00
|
|
|
|
|
2021-12-13 12:21:26 +01:00
|
|
|
|
### Topdown traversal
|
|
|
|
|
|
|
|
|
|
It is sometimes more natural to traverse the document tree
|
|
|
|
|
depth-first from the root towards the leaves, and all in a single
|
|
|
|
|
run.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
For example, a block list `[Plain [Str "a"], Para [Str
|
|
|
|
|
"b"]]`{.haskell} will try the following filter functions, in
|
|
|
|
|
order: `Blocks`, `Plain`, `Inlines`, `Str`, `Para`, `Inlines`,
|
|
|
|
|
`Str`.
|
2021-12-13 12:21:26 +01:00
|
|
|
|
|
|
|
|
|
Topdown traversals can be cut short by returning `false` as a
|
2022-02-06 09:43:58 +01:00
|
|
|
|
second value from the filter function. No child-element of
|
|
|
|
|
the returned element is processed in that case.
|
2021-12-13 12:21:26 +01:00
|
|
|
|
|
|
|
|
|
For example, to exclude the contents of a footnote from being
|
|
|
|
|
processed, one might write
|
|
|
|
|
|
|
|
|
|
``` lua
|
|
|
|
|
traverse = 'topdown'
|
|
|
|
|
function Note (n)
|
|
|
|
|
return n, false
|
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2018-02-24 23:32:03 +01:00
|
|
|
|
## Global variables
|
|
|
|
|
|
|
|
|
|
Pandoc passes additional data to Lua filters by setting global
|
|
|
|
|
variables.
|
|
|
|
|
|
|
|
|
|
`FORMAT`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: The global `FORMAT` is set to the format of the pandoc
|
|
|
|
|
writer being used (`html5`, `latex`, etc.), so the behavior
|
|
|
|
|
of a filter can be made conditional on the eventual output
|
|
|
|
|
format.
|
2018-02-24 23:32:03 +01:00
|
|
|
|
|
|
|
|
|
`PANDOC_READER_OPTIONS`
|
|
|
|
|
: Table of the options which were provided to the parser.
|
2022-02-06 09:43:58 +01:00
|
|
|
|
([ReaderOptions](#type-readeroptions))
|
2018-02-24 23:32:03 +01:00
|
|
|
|
|
2021-12-28 16:33:41 +01:00
|
|
|
|
`PANDOC_WRITER_OPTIONS`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Table of the options that will be passed to the writer.
|
|
|
|
|
While the object can be modified, the changes will **not**
|
|
|
|
|
be picked up by pandoc.
|
|
|
|
|
([WriterOptions](#type-writeroptions))
|
2021-12-28 16:33:41 +01:00
|
|
|
|
|
2022-01-02 13:53:39 +01:00
|
|
|
|
This variable is also set in custom writers.
|
|
|
|
|
|
|
|
|
|
*Since: pandoc 2.17*
|
|
|
|
|
|
2018-02-24 23:32:03 +01:00
|
|
|
|
`PANDOC_VERSION`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: Contains the pandoc version as a [Version] object which
|
|
|
|
|
behaves like a numerically indexed table, most significant
|
|
|
|
|
number first. E.g., for pandoc 2.7.3, the value of the
|
|
|
|
|
variable is equivalent to a table `{2, 7, 3}`. Use
|
|
|
|
|
`tostring(PANDOC_VERSION)` to produce a version string. This
|
|
|
|
|
variable is also set in custom writers.
|
2018-02-24 23:32:03 +01:00
|
|
|
|
|
|
|
|
|
`PANDOC_API_VERSION`
|
|
|
|
|
: Contains the version of the pandoc-types API against which
|
|
|
|
|
pandoc was compiled. It is given as a numerically indexed
|
|
|
|
|
table, most significant number first. E.g., if pandoc was
|
|
|
|
|
compiled against pandoc-types 1.17.3, then the value of the
|
2019-05-19 15:26:00 +02:00
|
|
|
|
variable will behave like the table `{1, 17, 3}`. Use
|
|
|
|
|
`tostring(PANDOC_API_VERSION)` to produce a version string.
|
|
|
|
|
This variable is also set in custom writers.
|
2018-02-24 23:32:03 +01:00
|
|
|
|
|
|
|
|
|
`PANDOC_SCRIPT_FILE`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: The name used to involve the filter. This value can be used
|
|
|
|
|
to find files relative to the script file. This variable is
|
|
|
|
|
also set in custom writers.
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2018-10-26 07:12:14 +02:00
|
|
|
|
`PANDOC_STATE`
|
|
|
|
|
: The state shared by all readers and writers. It is used by
|
|
|
|
|
pandoc to collect and pass information. The value of this
|
2022-02-06 09:43:58 +01:00
|
|
|
|
variable is of type [CommonState] and
|
|
|
|
|
is read-only.
|
2017-09-27 05:20:09 +02:00
|
|
|
|
|
2021-11-11 09:13:27 +01:00
|
|
|
|
`pandoc`
|
|
|
|
|
: The *pandoc* module, described in the next section, is
|
|
|
|
|
available through the global `pandoc`. The other modules
|
|
|
|
|
described herein are loaded as subfields under their
|
|
|
|
|
respective name.
|
|
|
|
|
|
|
|
|
|
`lpeg`
|
|
|
|
|
: This variable holds the `lpeg` module, a package based on
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Parsing Expression Grammars (PEG). It provides excellent
|
2021-11-11 09:13:27 +01:00
|
|
|
|
parsing utilities and is documented on the official [LPeg
|
2022-02-06 09:43:58 +01:00
|
|
|
|
homepage]. Pandoc uses a built-int version of the library,
|
2021-11-17 08:47:30 +01:00
|
|
|
|
unless it has been configured by the package maintainer to
|
|
|
|
|
rely on a system-wide installation.
|
|
|
|
|
|
|
|
|
|
Note that the result of `require 'lpeg'` is not necessarily
|
|
|
|
|
equal to this value; the `require` mechanism prefers the
|
|
|
|
|
system's lpeg library over the built-in version.
|
2021-11-11 09:13:27 +01:00
|
|
|
|
|
|
|
|
|
`re`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Contains the LPeg.re module, which is built on top of LPeg
|
|
|
|
|
and offers an implementation of a [regex engine]. Pandoc
|
|
|
|
|
uses a built-in version of the library, unless it has been
|
|
|
|
|
configured by the package maintainer to rely on a system-wide
|
2022-02-05 12:57:19 +01:00
|
|
|
|
installation.
|
2021-11-05 22:37:49 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Note that the result of `require 're` is not necessarily
|
|
|
|
|
equal to this value; the `require` mechanism prefers the
|
|
|
|
|
system's lpeg library over the built-in version.
|
|
|
|
|
|
|
|
|
|
[LPeg homepage]: http://www.inf.puc-rio.br/~roberto/lpeg/
|
|
|
|
|
[regex engine]: http://www.inf.puc-rio.br/~roberto/lpeg/re.html
|
2021-11-05 22:37:49 +01:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
# Pandoc Module
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2020-01-12 11:22:20 +01:00
|
|
|
|
The `pandoc` Lua module is loaded into the filter's Lua
|
2022-02-06 09:43:58 +01:00
|
|
|
|
environment and provides a set of functions and constants to
|
|
|
|
|
make creation and manipulation of elements easier. The global
|
|
|
|
|
variable `pandoc` is bound to the module and should generally
|
|
|
|
|
not be overwritten for this reason.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
Two major functionalities are provided by the module: element
|
|
|
|
|
creator functions and access to some of pandoc's main
|
|
|
|
|
functionalities.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
## Element creation
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
Element creator functions like `Str`, `Para`, and `Pandoc` are
|
2022-02-06 09:43:58 +01:00
|
|
|
|
designed to allow easy creation of new elements that are simple
|
|
|
|
|
to use and can be read back from the Lua environment.
|
|
|
|
|
Internally, pandoc uses these functions to create the Lua
|
|
|
|
|
objects which are passed to element filter functions. This means
|
|
|
|
|
that elements created via this module will behave exactly as
|
|
|
|
|
those elements accessible through the filter function parameter.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
## Exposed pandoc functionality
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2020-01-12 11:22:20 +01:00
|
|
|
|
Some pandoc functions have been made available in Lua:
|
2017-10-03 23:20:48 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- [`walk_block`](#pandoc.walk_block) and
|
|
|
|
|
[`walk_inline`](#pandoc.walk_inline) allow filters to be applied
|
2017-12-29 07:02:59 +01:00
|
|
|
|
inside specific block or inline elements;
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- [`read`](#pandoc.read) allows filters to parse strings into pandoc
|
2017-12-29 07:02:59 +01:00
|
|
|
|
documents;
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- [`pipe`](#pandoc.pipe) runs an external command with input from and
|
|
|
|
|
output to strings;
|
|
|
|
|
- the [`pandoc.mediabag`](#module-pandoc.mediabag) module
|
|
|
|
|
allows access to the "mediabag," which stores binary content
|
|
|
|
|
such as images that may be included in the final document;
|
|
|
|
|
- the [`pandoc.utils`](#module-pandoc.utils) module contains
|
|
|
|
|
various utility functions.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-12-06 20:45:38 +01:00
|
|
|
|
# Lua interpreter initialization
|
|
|
|
|
|
2019-02-09 22:56:49 +01:00
|
|
|
|
Initialization of pandoc's Lua interpreter can be controlled by
|
|
|
|
|
placing a file `init.lua` in pandoc's data directory. A common
|
|
|
|
|
use-case would be to load additional modules, or even to alter
|
|
|
|
|
default modules.
|
2017-12-06 20:45:38 +01:00
|
|
|
|
|
2019-02-09 22:56:49 +01:00
|
|
|
|
The following snippet is an example of code that might be useful
|
2020-10-12 16:57:30 +02:00
|
|
|
|
when added to `init.lua`. The snippet adds all Unicode-aware
|
2022-02-06 09:43:58 +01:00
|
|
|
|
functions defined in the [`text` module](#module-text) to the
|
|
|
|
|
default `string` module, prefixed with the string `uc_`.
|
2017-12-06 20:45:38 +01:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-12-06 20:45:38 +01:00
|
|
|
|
for name, fn in pairs(require 'text') do
|
|
|
|
|
string['uc_' .. name] = fn
|
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
This makes it possible to apply these functions on strings using
|
|
|
|
|
colon syntax (`mystring:uc_upper()`).
|
|
|
|
|
|
2020-10-08 11:56:08 +02:00
|
|
|
|
# Debugging Lua filters
|
|
|
|
|
|
2020-10-12 16:57:30 +02:00
|
|
|
|
It is possible to use a debugging interface to halt execution and
|
|
|
|
|
step through a Lua filter line by line as it is run inside Pandoc.
|
|
|
|
|
This is accomplished using the remote-debugging interface of the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
package [`mobdebug`](https://github.com/pkulchenko/MobDebug).
|
|
|
|
|
Although mobdebug can be run from the terminal, it is more useful
|
|
|
|
|
run within the donation-ware Lua editor and IDE,
|
|
|
|
|
[ZeroBrane](https://studio.zerobrane.com/). ZeroBrane offers a
|
|
|
|
|
REPL console and UI to step-through and view all variables and
|
|
|
|
|
state.
|
|
|
|
|
|
|
|
|
|
If you already have Lua 5.3 installed, you can add
|
|
|
|
|
[`mobdebug`](https://luarocks.org/modules/paulclinger/mobdebug)
|
|
|
|
|
and its dependency
|
|
|
|
|
[`luasocket`](https://luarocks.org/modules/luasocket/luasocket)
|
|
|
|
|
using [`luarocks`](https://luarocks.org), which should then be
|
|
|
|
|
available on the path. ZeroBrane also includes both of these in
|
|
|
|
|
its package, so if you don't want to install Lua separately, you
|
|
|
|
|
should add/modify your `LUA_PATH` and `LUA_CPATH` to include the
|
|
|
|
|
correct locations; [see detailed instructions
|
|
|
|
|
here](https://studio.zerobrane.com/doc-remote-debugging).
|
2020-10-08 11:56:08 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
# Examples
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
The following filters are presented as examples. A repository of
|
2020-01-12 11:22:20 +01:00
|
|
|
|
useful Lua filters (which may also serve as good examples) is
|
2019-08-08 20:21:31 +02:00
|
|
|
|
available at <https://github.com/pandoc/lua-filters>.
|
2018-09-08 01:29:21 +02:00
|
|
|
|
|
2019-12-17 19:01:42 +01:00
|
|
|
|
## Macro substitution
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
The following filter converts the string `{{helloworld}}` into
|
|
|
|
|
emphasized text "Hello, World".
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-04-30 15:55:45 +02:00
|
|
|
|
return {
|
|
|
|
|
{
|
|
|
|
|
Str = function (elem)
|
|
|
|
|
if elem.text == "{{helloworld}}" then
|
|
|
|
|
return pandoc.Emph {pandoc.Str "Hello, World"}
|
|
|
|
|
else
|
|
|
|
|
return elem
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2019-12-23 01:09:30 +01:00
|
|
|
|
## Center images in LaTeX and HTML output
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2019-12-23 01:09:30 +01:00
|
|
|
|
For LaTeX, wrap an image in LaTeX snippets which cause the image
|
|
|
|
|
to be centered horizontally. In HTML, the image element's style
|
|
|
|
|
attribute is used to achieve centering.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2019-12-23 01:09:30 +01:00
|
|
|
|
-- Filter images with this function if the target format is LaTeX.
|
|
|
|
|
if FORMAT:match 'latex' then
|
|
|
|
|
function Image (elem)
|
|
|
|
|
-- Surround all images with image-centering raw LaTeX.
|
|
|
|
|
return {
|
|
|
|
|
pandoc.RawInline('latex', '\\hfill\\break{\\centering'),
|
|
|
|
|
elem,
|
|
|
|
|
pandoc.RawInline('latex', '\\par}')
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
end
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2019-12-23 01:09:30 +01:00
|
|
|
|
-- Filter images with this function if the target format is HTML
|
|
|
|
|
if FORMAT:match 'html' then
|
|
|
|
|
function Image (elem)
|
|
|
|
|
-- Use CSS style to center image
|
|
|
|
|
elem.attributes.style = 'margin:auto; display: block;'
|
|
|
|
|
return elem
|
|
|
|
|
end
|
|
|
|
|
end
|
2017-04-30 15:55:45 +02:00
|
|
|
|
```
|
2017-06-28 15:31:42 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
## Setting the date in the metadata
|
|
|
|
|
|
|
|
|
|
This filter sets the date in the document's metadata to the
|
2020-08-26 12:34:14 +02:00
|
|
|
|
current date, if a date isn't already set:
|
2017-08-14 18:57:01 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-08-14 18:57:01 +02:00
|
|
|
|
function Meta(m)
|
2020-08-26 12:34:14 +02:00
|
|
|
|
if m.date == nil then
|
|
|
|
|
m.date = os.date("%B %e, %Y")
|
|
|
|
|
return m
|
|
|
|
|
end
|
2017-08-14 18:57:01 +02:00
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2020-01-15 23:26:00 +01:00
|
|
|
|
## Remove spaces before citations
|
|
|
|
|
|
|
|
|
|
This filter removes all spaces preceding an "author-in-text"
|
|
|
|
|
citation. In Markdown, author-in-text citations (e.g.,
|
|
|
|
|
`@citekey`), must be preceded by a space. If these spaces are
|
|
|
|
|
undesired, they must be removed with a filter.
|
|
|
|
|
|
|
|
|
|
``` lua
|
|
|
|
|
local function is_space_before_author_in_text(spc, cite)
|
|
|
|
|
return spc and spc.t == 'Space'
|
|
|
|
|
and cite and cite.t == 'Cite'
|
|
|
|
|
-- there must be only a single citation, and it must have
|
|
|
|
|
-- mode 'AuthorInText'
|
|
|
|
|
and #cite.citations == 1
|
|
|
|
|
and cite.citations[1].mode == 'AuthorInText'
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function Inlines (inlines)
|
|
|
|
|
-- Go from end to start to avoid problems with shifting indices.
|
|
|
|
|
for i = #inlines-1, 1, -1 do
|
|
|
|
|
if is_space_before_author_in_text(inlines[i], inlines[i+1]) then
|
|
|
|
|
inlines:remove(i)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return inlines
|
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
## Replacing placeholders with their metadata value
|
|
|
|
|
|
|
|
|
|
Lua filter functions are run in the order
|
|
|
|
|
|
|
|
|
|
> *Inlines → Blocks → Meta → Pandoc*.
|
2017-08-21 19:00:51 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
Passing information from a higher level (e.g., metadata) to a
|
2022-02-06 09:43:58 +01:00
|
|
|
|
lower level (e.g., inlines) is still possible by using two
|
|
|
|
|
filters living in the same file:
|
2017-08-21 19:00:51 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-08-21 19:00:51 +02:00
|
|
|
|
local vars = {}
|
|
|
|
|
|
|
|
|
|
function get_vars (meta)
|
|
|
|
|
for k, v in pairs(meta) do
|
2022-01-02 14:50:56 +01:00
|
|
|
|
if pandoc.utils.type(v) == 'Inlines' then
|
2019-11-03 06:55:58 +01:00
|
|
|
|
vars["%" .. k .. "%"] = {table.unpack(v)}
|
2017-08-21 19:00:51 +02:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function replace (el)
|
|
|
|
|
if vars[el.text] then
|
|
|
|
|
return pandoc.Span(vars[el.text])
|
|
|
|
|
else
|
|
|
|
|
return el
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return {{Meta = get_vars}, {Str = replace}}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
If the contents of file `occupations.md` is
|
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` markdown
|
2017-08-21 19:00:51 +02:00
|
|
|
|
---
|
2017-08-22 07:14:26 +02:00
|
|
|
|
name: Samuel Q. Smith
|
|
|
|
|
occupation: Professor of Phrenology
|
2017-08-21 19:00:51 +02:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Name
|
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
: %name%
|
2017-08-21 19:00:51 +02:00
|
|
|
|
|
|
|
|
|
Occupation
|
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
: %occupation%
|
2017-08-21 19:00:51 +02:00
|
|
|
|
```
|
|
|
|
|
|
2017-09-30 16:45:31 +02:00
|
|
|
|
then running `pandoc --lua-filter=meta-vars.lua occupations.md`
|
|
|
|
|
will output:
|
2017-08-21 19:00:51 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` html
|
2017-08-21 19:00:51 +02:00
|
|
|
|
<dl>
|
|
|
|
|
<dt>Name</dt>
|
2017-08-22 07:14:26 +02:00
|
|
|
|
<dd><p><span>Samuel Q. Smith</span></p>
|
2017-08-21 19:00:51 +02:00
|
|
|
|
</dd>
|
|
|
|
|
<dt>Occupation</dt>
|
2017-08-22 07:14:26 +02:00
|
|
|
|
<dd><p><span>Professor of Phrenology</span></p>
|
2017-08-21 19:00:51 +02:00
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
```
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2017-11-12 01:18:39 +01:00
|
|
|
|
## Modifying pandoc's `MANUAL.txt` for man pages
|
2017-11-11 17:01:38 +01:00
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
This is the filter we use when converting `MANUAL.txt` to man
|
2022-02-06 09:43:58 +01:00
|
|
|
|
pages. It converts level-1 headers to uppercase (using
|
|
|
|
|
[`walk`](#type-block:walk) to transform inline elements inside
|
|
|
|
|
headers), removes footnotes, and replaces links with regular
|
|
|
|
|
text.
|
2017-11-11 17:01:38 +01:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2022-01-02 14:50:56 +01:00
|
|
|
|
-- we use pandoc.text to get a UTF-8 aware 'upper' function
|
|
|
|
|
local text = pandoc.text
|
2017-11-18 22:33:37 +01:00
|
|
|
|
|
2017-11-11 17:01:38 +01:00
|
|
|
|
function Header(el)
|
2017-11-12 01:18:39 +01:00
|
|
|
|
if el.level == 1 then
|
2021-12-06 16:55:19 +01:00
|
|
|
|
return el:walk {
|
2017-11-11 17:01:38 +01:00
|
|
|
|
Str = function(el)
|
2017-11-18 22:33:37 +01:00
|
|
|
|
return pandoc.Str(text.upper(el.text))
|
2021-12-06 16:55:19 +01:00
|
|
|
|
end
|
|
|
|
|
}
|
2017-11-12 01:18:39 +01:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function Link(el)
|
|
|
|
|
return el.content
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function Note(el)
|
|
|
|
|
return {}
|
2017-11-11 17:01:38 +01:00
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2017-11-13 00:36:11 +01:00
|
|
|
|
## Creating a handout from a paper
|
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
This filter extracts all the numbered examples, section headers,
|
2022-02-06 09:43:58 +01:00
|
|
|
|
block quotes, and figures from a document, in addition to any
|
|
|
|
|
divs with class `handout`. (Note that only blocks at the "outer
|
|
|
|
|
level" are included; this ignores blocks inside nested
|
|
|
|
|
constructs, like list items.)
|
2017-11-13 00:36:11 +01:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-11-13 06:48:47 +01:00
|
|
|
|
-- creates a handout from an article, using its headings,
|
|
|
|
|
-- blockquotes, numbered examples, figures, and any
|
|
|
|
|
-- Divs with class "handout"
|
|
|
|
|
|
2017-11-13 00:36:11 +01:00
|
|
|
|
function Pandoc(doc)
|
|
|
|
|
local hblocks = {}
|
|
|
|
|
for i,el in pairs(doc.blocks) do
|
|
|
|
|
if (el.t == "Div" and el.classes[1] == "handout") or
|
|
|
|
|
(el.t == "BlockQuote") or
|
|
|
|
|
(el.t == "OrderedList" and el.style == "Example") or
|
2017-11-13 00:51:10 +01:00
|
|
|
|
(el.t == "Para" and #el.c == 1 and el.c[1].t == "Image") or
|
2017-11-13 00:36:11 +01:00
|
|
|
|
(el.t == "Header") then
|
|
|
|
|
table.insert(hblocks, el)
|
|
|
|
|
end
|
|
|
|
|
end
|
2017-11-13 00:38:10 +01:00
|
|
|
|
return pandoc.Pandoc(hblocks, doc.meta)
|
2017-11-13 00:36:11 +01:00
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2017-11-13 06:48:47 +01:00
|
|
|
|
## Counting words in a document
|
|
|
|
|
|
|
|
|
|
This filter counts the words in the body of a document (omitting
|
2017-12-29 07:02:59 +01:00
|
|
|
|
metadata like titles and abstracts), including words in code. It
|
|
|
|
|
should be more accurate than `wc -w` run directly on a Markdown
|
2022-02-06 09:43:58 +01:00
|
|
|
|
document, since the latter will count markup characters, like
|
|
|
|
|
the `#` in front of an ATX header, or tags in HTML documents, as
|
2017-12-29 07:02:59 +01:00
|
|
|
|
words. To run it, `pandoc --lua-filter wordcount.lua myfile.md`.
|
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-11-13 06:48:47 +01:00
|
|
|
|
-- counts words in a document
|
|
|
|
|
|
|
|
|
|
words = 0
|
|
|
|
|
|
|
|
|
|
wordcount = {
|
|
|
|
|
Str = function(el)
|
|
|
|
|
-- we don't count a word if it's entirely punctuation:
|
2017-11-13 06:55:10 +01:00
|
|
|
|
if el.text:match("%P") then
|
2017-11-13 06:48:47 +01:00
|
|
|
|
words = words + 1
|
|
|
|
|
end
|
|
|
|
|
end,
|
|
|
|
|
|
|
|
|
|
Code = function(el)
|
|
|
|
|
_,n = el.text:gsub("%S+","")
|
|
|
|
|
words = words + n
|
|
|
|
|
end,
|
|
|
|
|
|
|
|
|
|
CodeBlock = function(el)
|
|
|
|
|
_,n = el.text:gsub("%S+","")
|
|
|
|
|
words = words + n
|
|
|
|
|
end
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function Pandoc(el)
|
|
|
|
|
-- skip metadata, just count body:
|
2021-12-06 16:55:19 +01:00
|
|
|
|
el.blocks:walk(wordcount)
|
2017-11-13 06:48:47 +01:00
|
|
|
|
print(words .. " words in body")
|
|
|
|
|
os.exit(0)
|
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2017-10-03 23:20:48 +02:00
|
|
|
|
## Converting ABC code to music notation
|
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
This filter replaces code blocks with class `abc` with images
|
|
|
|
|
created by running their contents through `abcm2ps` and
|
|
|
|
|
ImageMagick's `convert`. (For more on ABC notation, see
|
2019-05-02 02:09:36 +02:00
|
|
|
|
<https://abcnotation.com>.)
|
2017-10-03 23:20:48 +02:00
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
Images are added to the mediabag. For output to binary formats,
|
|
|
|
|
pandoc will use images in the mediabag. For textual formats, use
|
|
|
|
|
`--extract-media` to specify a directory where the files in the
|
|
|
|
|
mediabag will be written, or (for HTML only) use
|
|
|
|
|
`--self-contained`.
|
2017-10-03 23:20:48 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-10-03 23:20:48 +02:00
|
|
|
|
-- Pandoc filter to process code blocks with class "abc" containing
|
|
|
|
|
-- ABC notation into images.
|
|
|
|
|
--
|
|
|
|
|
-- * Assumes that abcm2ps and ImageMagick's convert are in the path.
|
|
|
|
|
-- * For textual output formats, use --extract-media=abc-images
|
|
|
|
|
-- * For HTML formats, you may alternatively use --self-contained
|
|
|
|
|
|
|
|
|
|
local filetypes = { html = {"png", "image/png"}
|
|
|
|
|
, latex = {"pdf", "application/pdf"}
|
|
|
|
|
}
|
|
|
|
|
local filetype = filetypes[FORMAT][1] or "png"
|
|
|
|
|
local mimetype = filetypes[FORMAT][2] or "image/png"
|
|
|
|
|
|
|
|
|
|
local function abc2eps(abc, filetype)
|
|
|
|
|
local eps = pandoc.pipe("abcm2ps", {"-q", "-O", "-", "-"}, abc)
|
|
|
|
|
local final = pandoc.pipe("convert", {"-", filetype .. ":-"}, eps)
|
|
|
|
|
return final
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function CodeBlock(block)
|
|
|
|
|
if block.classes[1] == "abc" then
|
|
|
|
|
local img = abc2eps(block.text, filetype)
|
|
|
|
|
local fname = pandoc.sha1(img) .. "." .. filetype
|
|
|
|
|
pandoc.mediabag.insert(fname, mimetype, img)
|
|
|
|
|
return pandoc.Para{ pandoc.Image({pandoc.Str("abc tune")}, fname) }
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Building images with Ti*k*Z
|
2017-11-21 21:20:28 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
This filter converts raw LaTeX Ti*k*Z environments into images. It
|
|
|
|
|
works with both PDF and HTML output. The Ti*k*Z code is compiled
|
2022-02-06 09:43:58 +01:00
|
|
|
|
to an image using `pdflatex`, and the image is converted from
|
|
|
|
|
pdf to svg format using
|
|
|
|
|
[`pdf2svg`](https://github.com/dawbarton/pdf2svg), so both of
|
|
|
|
|
these must be in the system path. Converted images are cached in
|
|
|
|
|
the working directory and given filenames based on a hash of the
|
|
|
|
|
source, so that they need not be regenerated each time the
|
|
|
|
|
document is built. (A more sophisticated version of this might
|
|
|
|
|
put these in a special cache directory.)
|
2017-12-29 07:02:59 +01:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2020-05-25 09:10:26 +02:00
|
|
|
|
local system = require 'pandoc.system'
|
|
|
|
|
|
|
|
|
|
local tikz_doc_template = [[
|
|
|
|
|
\documentclass{standalone}
|
|
|
|
|
\usepackage{xcolor}
|
|
|
|
|
\usepackage{tikz}
|
|
|
|
|
\begin{document}
|
|
|
|
|
\nopagecolor
|
|
|
|
|
%s
|
|
|
|
|
\end{document}
|
|
|
|
|
]]
|
|
|
|
|
|
2017-11-21 21:20:28 +01:00
|
|
|
|
local function tikz2image(src, filetype, outfile)
|
2020-05-25 09:10:26 +02:00
|
|
|
|
system.with_temporary_directory('tikz2image', function (tmpdir)
|
|
|
|
|
system.with_working_directory(tmpdir, function()
|
|
|
|
|
local f = io.open('tikz.tex', 'w')
|
|
|
|
|
f:write(tikz_doc_template:format(src))
|
|
|
|
|
f:close()
|
|
|
|
|
os.execute('pdflatex tikz.tex')
|
|
|
|
|
if filetype == 'pdf' then
|
|
|
|
|
os.rename('tikz.pdf', outfile)
|
|
|
|
|
else
|
|
|
|
|
os.execute('pdf2svg tikz.pdf ' .. outfile)
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end)
|
2017-11-21 21:20:28 +01:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
extension_for = {
|
2020-05-25 09:10:26 +02:00
|
|
|
|
html = 'svg',
|
|
|
|
|
html4 = 'svg',
|
|
|
|
|
html5 = 'svg',
|
|
|
|
|
latex = 'pdf',
|
|
|
|
|
beamer = 'pdf' }
|
2017-11-21 21:20:28 +01:00
|
|
|
|
|
|
|
|
|
local function file_exists(name)
|
2020-05-25 09:10:26 +02:00
|
|
|
|
local f = io.open(name, 'r')
|
|
|
|
|
if f ~= nil then
|
|
|
|
|
io.close(f)
|
|
|
|
|
return true
|
|
|
|
|
else
|
|
|
|
|
return false
|
|
|
|
|
end
|
2017-11-21 21:20:28 +01:00
|
|
|
|
end
|
|
|
|
|
|
2019-04-16 06:39:03 +02:00
|
|
|
|
local function starts_with(start, str)
|
2020-05-25 09:10:26 +02:00
|
|
|
|
return str:sub(1, #start) == start
|
2019-04-16 06:39:03 +02:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
2017-11-21 21:20:28 +01:00
|
|
|
|
function RawBlock(el)
|
2020-05-25 09:10:26 +02:00
|
|
|
|
if starts_with('\\begin{tikzpicture}', el.text) then
|
|
|
|
|
local filetype = extension_for[FORMAT] or 'svg'
|
2021-08-30 12:52:45 +02:00
|
|
|
|
local fbasename = pandoc.sha1(el.text) .. '.' .. filetype
|
|
|
|
|
local fname = system.get_working_directory() .. '/' .. fbasename
|
2020-05-25 09:10:26 +02:00
|
|
|
|
if not file_exists(fname) then
|
|
|
|
|
tikz2image(el.text, filetype, fname)
|
2017-11-21 21:20:28 +01:00
|
|
|
|
end
|
2021-08-30 12:52:45 +02:00
|
|
|
|
return pandoc.Para({pandoc.Image({}, fbasename)})
|
2020-05-25 09:10:26 +02:00
|
|
|
|
else
|
|
|
|
|
return el
|
|
|
|
|
end
|
2017-11-21 21:20:28 +01:00
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Example of use:
|
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
pandoc --lua-filter tikz.lua -s -o cycle.html <<EOF
|
|
|
|
|
Here is a diagram of the cycle:
|
2017-11-21 21:20:28 +01:00
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
\begin{tikzpicture}
|
2017-11-21 21:20:28 +01:00
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
\def \n {5}
|
|
|
|
|
\def \radius {3cm}
|
|
|
|
|
\def \margin {8} % margin in angles, depends on the radius
|
2017-11-21 21:20:28 +01:00
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
\foreach \s in {1,...,\n}
|
|
|
|
|
{
|
|
|
|
|
\node[draw, circle] at ({360/\n * (\s - 1)}:\radius) {$\s$};
|
|
|
|
|
\draw[->, >=latex] ({360/\n * (\s - 1)+\margin}:\radius)
|
|
|
|
|
arc ({360/\n * (\s - 1)+\margin}:{360/\n * (\s)-\margin}:\radius);
|
|
|
|
|
}
|
|
|
|
|
\end{tikzpicture}
|
|
|
|
|
EOF
|
2017-11-21 21:20:28 +01:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
# Lua type reference
|
|
|
|
|
|
|
|
|
|
This section describes the types of objects available to Lua
|
2022-02-06 09:43:58 +01:00
|
|
|
|
filters. See the [pandoc module](#module-pandoc) for
|
2019-08-08 20:21:31 +02:00
|
|
|
|
functions to create these objects.
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2019-06-12 18:58:38 +02:00
|
|
|
|
## Shared Properties
|
|
|
|
|
|
|
|
|
|
### `clone`
|
|
|
|
|
|
|
|
|
|
`clone ()`
|
|
|
|
|
|
|
|
|
|
All instances of the types listed here, with the exception of
|
|
|
|
|
read-only objects, can be cloned via the `clone()` method.
|
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
local emph = pandoc.Emph {pandoc.Str 'important'}
|
|
|
|
|
local cloned_emph = emph:clone() -- note the colon
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Pandoc {#type-pandoc}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Pandoc document
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Pandoc`](#pandoc.pandoc) constructor. Pandoc values are
|
|
|
|
|
equal in Lua if and only if they are equal in Haskell.
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`blocks`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: document content ([Blocks][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`meta`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: document meta information ([Meta] object)
|
|
|
|
|
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
### walk {#type-pandoc:walk}
|
|
|
|
|
|
|
|
|
|
`walk(self, lua_filter)`
|
|
|
|
|
|
|
|
|
|
Applies a Lua filter to the Pandoc element. Just as for
|
2021-12-13 21:02:19 +01:00
|
|
|
|
full-document filters, the order in which elements are traversed
|
|
|
|
|
can be controlled by setting the `traverse` field of the filter;
|
2022-02-06 09:43:58 +01:00
|
|
|
|
see the section on [traversal order][Traversal order].
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`self`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: the element ([Pandoc](#type-pandoc))
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
`lua_filter`
|
|
|
|
|
: map of filter functions (table)
|
|
|
|
|
|
|
|
|
|
Result:
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- filtered document ([Pandoc][])
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
-- returns `pandoc.Pandoc{pandoc.Para{pandoc.Str 'Bye'}}`
|
|
|
|
|
return pandoc.Pandoc{pandoc.Para('Hi')}:walk {
|
|
|
|
|
Str = function (_) return 'Bye' end,
|
|
|
|
|
}
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Meta {#type-meta}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Meta information on a document; string-indexed collection of
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[MetaValues].
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Meta`](#pandoc.meta) constructor. Meta values are equal
|
|
|
|
|
in Lua if and only if they are equal in Haskell.
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## MetaValue {#type-metavalue}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2021-11-28 14:34:01 +01:00
|
|
|
|
Document meta information items. This is not a separate type, but
|
|
|
|
|
describes a set of types that can be used in places were a
|
|
|
|
|
MetaValue is expected. The types correspond to the following
|
|
|
|
|
Haskell type constructors:
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- boolean → MetaBool
|
|
|
|
|
- string or number → MetaString
|
|
|
|
|
- Inlines → MetaInlines
|
|
|
|
|
- Blocks → MetaBlocks
|
|
|
|
|
- List/integer indexed table → MetaList
|
|
|
|
|
- string-indexed table → MetaMap
|
|
|
|
|
|
|
|
|
|
The corresponding constructors
|
|
|
|
|
[`pandoc.MetaBool`](#pandoc.metabool),
|
|
|
|
|
[`pandoc.MetaString`](#pandoc.metastring),
|
|
|
|
|
[`pandoc.MetaInlines`](#pandoc.metainlines),
|
|
|
|
|
[`pandoc.MetaBlocks`](#pandoc.metablocks),
|
|
|
|
|
[`pandoc.MetaList`](#pandoc.metalist), and
|
|
|
|
|
[`pandoc.MetaMap`](#pandoc.metamap)
|
|
|
|
|
can be used to ensure that a value is treated in the intended
|
|
|
|
|
way. E.g., an empty table is normally treated as a `MetaMap`, but
|
|
|
|
|
can be made into an empty `MetaList` by calling
|
|
|
|
|
`pandoc.MetaList{}`. However, the same can be accomplished by
|
|
|
|
|
using the generic functions like `pandoc.List`, `pandoc.Inlines`,
|
|
|
|
|
or `pandoc.Blocks`.
|
|
|
|
|
|
|
|
|
|
Use the function [`pandoc.utils.type`](#pandoc.utils.type) to
|
|
|
|
|
get the type of a metadata value.
|
2022-01-02 14:50:56 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Block {#type-block}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2021-12-21 18:53:37 +01:00
|
|
|
|
Block values are equal in Lua if and only if they are equal in
|
|
|
|
|
Haskell.
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2021-12-13 21:02:19 +01:00
|
|
|
|
### Common methods
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
#### walk {#type-block:walk}
|
|
|
|
|
|
|
|
|
|
`walk(self, lua_filter)`
|
|
|
|
|
|
|
|
|
|
Applies a Lua filter to the block element. Just as for
|
2021-12-13 21:02:19 +01:00
|
|
|
|
full-document filters, the order in which elements are traversed
|
|
|
|
|
can be controlled by setting the `traverse` field of the filter;
|
2022-02-06 09:43:58 +01:00
|
|
|
|
see the section on [traversal order][Traversal order].
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Note that the filter is applied to the subtree, but not to the
|
2021-12-13 21:02:19 +01:00
|
|
|
|
`self` block element. The rationale is that otherwise the element
|
|
|
|
|
could be deleted by the filter, or replaced with multiple block
|
|
|
|
|
elements, which might lead to possibly unexpected results.
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`self`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: the element ([Block](#type-block))
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
`lua_filter`
|
|
|
|
|
: map of filter functions (table)
|
|
|
|
|
|
|
|
|
|
Result:
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- filtered block ([Block][])
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
-- returns `pandoc.Para{pandoc.Str 'Bye'}`
|
|
|
|
|
return pandoc.Para('Hi'):walk {
|
|
|
|
|
Str = function (_) return 'Bye' end,
|
|
|
|
|
}
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### BlockQuote {#type-blockquote}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
A block quote element.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.BlockQuote`](#pandoc.blockquote) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: block content ([Blocks][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `BlockQuote` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### BulletList {#type-bulletlist}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
A bullet list.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.BulletList`](#pandoc.bulletlist) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: list items ([List] of items, i.e., [List] of [Blocks][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `BulletList` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### CodeBlock {#type-codeblock}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Block of code.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.CodeBlock`](#pandoc.codeblock) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`text`
|
|
|
|
|
: code string (string)
|
|
|
|
|
|
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: element attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.classes` ([List] of strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.attributes` ([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `CodeBlock` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### DefinitionList {#type-definitionlist}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Definition list, containing terms and their explanation.
|
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Values of this type can be created with the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[`pandoc.DefinitionList`](#pandoc.definitionlist) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
|
|
|
|
: list of items
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `DefinitionList` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Div {#type-div}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Generic block container with attributes.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Div`](#pandoc.div) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: block content ([Blocks][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: element attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: alias for `attr.classes` ([List] of
|
|
|
|
|
strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.attributes` ([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Div` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Header {#type-header}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Creates a header element.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Header`](#pandoc.header) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`level`
|
|
|
|
|
: header level (integer)
|
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: element attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.classes` ([List] of strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: alias for `attr.attributes`
|
|
|
|
|
([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Header` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### HorizontalRule {#type-horizontalrule}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
A horizontal rule.
|
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Values of this type can be created with the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[`pandoc.HorizontalRule`](#pandoc.horizontalrule) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `HorizontalRule` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### LineBlock {#type-lineblock}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
A line block, i.e. a list of lines, each separated from the next
|
2018-10-19 08:12:57 +02:00
|
|
|
|
by a newline.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.LineBlock`](#pandoc.lineblock) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([List] of lines, i.e. [List] of [Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `LineBlock` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Null {#type-null}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
A null element; this element never produces any output in the
|
|
|
|
|
target format.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Null`](#pandoc.null) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Null` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### OrderedList {#type-orderedlist}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
An ordered list.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.OrderedList`](#pandoc.orderedlist) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2019-02-01 21:03:05 +01:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: list items ([List] of items, i.e., [List] of [Blocks][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`listAttributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: list parameters ([ListAttributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`start`
|
|
|
|
|
: alias for `listAttributes.start` (integer)
|
|
|
|
|
|
|
|
|
|
`style`
|
|
|
|
|
: alias for `listAttributes.style` (string)
|
|
|
|
|
|
|
|
|
|
`delimiter`
|
|
|
|
|
: alias for `listAttributes.delimiter` (string)
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `OrderedList` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Para {#type-para}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
A paragraph.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Para`](#pandoc.para) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Para` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Plain {#type-plain}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Plain text, not a paragraph.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Plain`](#pandoc.plain) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Plain` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### RawBlock {#type-rawblock}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Raw content of a specified format.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.RawBlock`](#pandoc.rawblock) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`format`
|
|
|
|
|
: format of content (string)
|
|
|
|
|
|
|
|
|
|
`text`
|
|
|
|
|
: raw content (string)
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `RawBlock` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Table {#type-table}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
A table.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Table`](#pandoc.table) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2020-07-25 20:29:21 +02:00
|
|
|
|
`attr`
|
|
|
|
|
: table attributes ([Attr])
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`caption`
|
2020-07-25 19:26:40 +02:00
|
|
|
|
: table caption ([Caption])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-07-25 19:26:40 +02:00
|
|
|
|
`colspecs`
|
|
|
|
|
: column specifications, i.e., alignments and widths ([List] of
|
|
|
|
|
[ColSpec]s)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-07-25 19:26:40 +02:00
|
|
|
|
`head`
|
|
|
|
|
: table head ([TableHead])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-07-25 19:26:40 +02:00
|
|
|
|
`bodies`
|
|
|
|
|
: table bodies ([List] of [TableBody]s)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-07-25 19:26:40 +02:00
|
|
|
|
`foot`
|
|
|
|
|
: table foot ([TableFoot])
|
|
|
|
|
|
2020-07-25 20:29:21 +02:00
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
|
|
|
|
: alias for `attr.classes` ([List] of strings)
|
|
|
|
|
|
|
|
|
|
`attributes`
|
|
|
|
|
: alias for `attr.attributes` ([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Table` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
A [table cell]{#type-table-cell} is a list of blocks.
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
*[Alignment]{#type-alignment}* is a string value indicating the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
horizontal alignment of a table column. `AlignLeft`,
|
|
|
|
|
`AlignRight`, and `AlignCenter` leads cell content to be
|
|
|
|
|
left-aligned, right-aligned, and centered, respectively. The
|
|
|
|
|
default alignment is `AlignDefault` (often equivalent to
|
|
|
|
|
centered).
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2021-11-28 14:34:01 +01:00
|
|
|
|
## Blocks {#type-blocks}
|
|
|
|
|
|
|
|
|
|
List of [Block] elements, with the same methods as a generic
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[List](#type-list). It is usually not necessary to create values
|
|
|
|
|
of this type in user scripts, as pandoc can convert other types
|
|
|
|
|
into Blocks wherever a value of this type is expected:
|
2021-11-28 14:34:01 +01:00
|
|
|
|
|
|
|
|
|
- a list of [Block] (or Block-like) values is used directly;
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- a single [Inlines][] value is wrapped into a [Plain] element;
|
|
|
|
|
- string values are turned into an [Inlines][] value by splitting
|
|
|
|
|
the string into words (see [Inlines](#type-inlines)), and
|
|
|
|
|
then wrapping the result into a Plain singleton.
|
2021-11-28 14:34:01 +01:00
|
|
|
|
|
2021-12-06 16:55:19 +01:00
|
|
|
|
### Methods
|
|
|
|
|
|
|
|
|
|
Lists of type `Blocks` share all methods available in generic
|
2022-02-06 09:43:58 +01:00
|
|
|
|
lists, see the [`pandoc.List` module](#module-pandoc.list).
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Additionally, the following methods are available on Blocks
|
|
|
|
|
values:
|
|
|
|
|
|
|
|
|
|
#### walk {#type-blocks:walk}
|
|
|
|
|
|
|
|
|
|
`walk(self, lua_filter)`
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Applies a Lua filter to the Blocks list. Just as for
|
|
|
|
|
full-document filters, the order in which elements are traversed
|
|
|
|
|
can be controlled by setting the `traverse` field of the filter;
|
|
|
|
|
see the section on [traversal order][Traversal order].
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`self`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: the list ([Blocks][])
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
`lua_filter`
|
|
|
|
|
: map of filter functions (table)
|
|
|
|
|
|
|
|
|
|
Result:
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- filtered list ([Blocks][])
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
-- returns `pandoc.Blocks{pandoc.Para('Salve!')}`
|
|
|
|
|
return pandoc.Blocks{pandoc.Plain('Salve!)}:walk {
|
|
|
|
|
Plain = function (p) return pandoc.Para(p.content) end,
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Inline {#type-inline}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2021-12-21 18:53:37 +01:00
|
|
|
|
Inline values are equal in Lua if and only if they are equal in
|
|
|
|
|
Haskell.
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2021-12-13 21:02:19 +01:00
|
|
|
|
### Common methods
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
#### walk {#type-inline:walk}
|
|
|
|
|
|
|
|
|
|
`walk(self, lua_filter)`
|
|
|
|
|
|
|
|
|
|
Applies a Lua filter to the Inline element. Just as for
|
2021-12-13 21:02:19 +01:00
|
|
|
|
full-document filters, the order in which elements are traversed
|
|
|
|
|
can be controlled by setting the `traverse` field of the filter;
|
2022-02-06 09:43:58 +01:00
|
|
|
|
see the section on [traversal order][Traversal order].
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
2021-12-13 21:02:19 +01:00
|
|
|
|
Note that the filter is applied to the subtree, but not to the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
`self` inline element. The rationale is that otherwise the
|
|
|
|
|
element could be deleted by the filter, or replaced with multiple
|
|
|
|
|
inline elements, which might lead to possibly unexpected results.
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`self`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: the element ([Inline](#type-inline))
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
`lua_filter`
|
|
|
|
|
: map of filter functions (table)
|
|
|
|
|
|
|
|
|
|
Result:
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- filtered inline element ([Inline][])
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
-- returns `pandoc.SmallCaps('SPQR)`
|
|
|
|
|
return pandoc.SmallCaps('spqr'):walk {
|
|
|
|
|
Str = function (s) return string.upper(s.text) end,
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Cite {#type-cite}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Citation.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Cite`](#pandoc.cite) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`citations`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: citation entries ([List] of [Citations])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Cite` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Code {#type-code}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Inline code
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Code`](#pandoc.code) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`text`
|
|
|
|
|
: code string (string)
|
|
|
|
|
|
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.classes` ([List] of strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.attributes` ([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Code` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Emph {#type-emph}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Emphasized text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Emph`](#pandoc.emph) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Emph` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Image {#type-image}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
|
|
|
|
Image: alt text (list of inlines), target
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Image`](#pandoc.image) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`caption`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: text used to describe the image ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`src`
|
|
|
|
|
: path to the image file (string)
|
|
|
|
|
|
|
|
|
|
`title`
|
2021-09-03 16:17:23 +02:00
|
|
|
|
: brief image description (string)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2021-09-03 16:24:03 +02:00
|
|
|
|
`attr`
|
|
|
|
|
: attributes ([Attr])
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.classes` ([List] of strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.attributes` ([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Image` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### LineBreak {#type-linebreak}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Hard line break
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.LineBreak`](#pandoc.linebreak) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `LineBreak` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Link {#type-link}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Hyperlink: alt text (list of inlines), target
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Link`](#pandoc.link) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: text for this link ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`target`
|
|
|
|
|
: the link target (string)
|
|
|
|
|
|
2020-08-07 11:26:52 +02:00
|
|
|
|
`title`
|
|
|
|
|
: brief link description
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.classes` ([List] of strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.attributes` ([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Link` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Math {#type-math}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
TeX math (literal)
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Math`](#pandoc.math) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2019-06-05 23:48:48 +02:00
|
|
|
|
`mathtype`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: specifier determining whether the math content should be
|
|
|
|
|
shown inline (`InlineMath`) or on a separate line
|
|
|
|
|
(`DisplayMath`) (string)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`text`
|
|
|
|
|
: math content (string)
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Math` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Note {#type-note}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Footnote or endnote
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Note`](#pandoc.note) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: ([Blocks][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Note` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Quoted {#type-quoted}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Quoted text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Quoted`](#pandoc.quoted) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`quotetype`
|
|
|
|
|
: type of quotes to be used; one of `SingleQuote` or
|
|
|
|
|
`DoubleQuote` (string)
|
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: quoted text ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Quoted` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### RawInline {#type-rawinline}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Raw inline
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.RawInline`](#pandoc.rawinline) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`format`
|
|
|
|
|
: the format of the content (string)
|
|
|
|
|
|
|
|
|
|
`text`
|
|
|
|
|
: raw content (string)
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `RawInline` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### SmallCaps {#type-smallcaps}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Small caps text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.SmallCaps`](#pandoc.smallcaps) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `SmallCaps` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### SoftBreak {#type-softbreak}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Soft line break
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.SoftBreak`](#pandoc.softbreak) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `SoftBreak` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Space {#type-space}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Inter-word space
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Space`](#pandoc.space) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Space` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Span {#type-span}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Generic inline container with attributes
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Span`](#pandoc.span) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: wrapped content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.classes` ([List] of strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.attributes` ([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Span` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Str {#type-str}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Str`](#pandoc.str) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`text`
|
|
|
|
|
: content (string)
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Str` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Strikeout {#type-strikeout}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Strikeout text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Strikeout`](#pandoc.strikeout) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Strikeout` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Strong {#type-strong}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Strongly emphasized text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Strong`](#pandoc.strong) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Strong` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Subscript {#type-subscript}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Subscripted text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Subscript`](#pandoc.subscript) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Subscript` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Superscript {#type-superscript}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Superscripted text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Superscript`](#pandoc.superscript) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Superscript` (string)
|
|
|
|
|
|
2020-10-04 21:55:09 +02:00
|
|
|
|
### Underline {#type-underline}
|
|
|
|
|
|
|
|
|
|
Underlined text
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Underline`](#pandoc.underline) constructor.
|
2020-10-04 21:55:09 +02:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`content`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: inline content ([Inlines][])
|
2020-10-04 21:55:09 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Underline` (string)
|
|
|
|
|
|
2021-11-28 14:34:01 +01:00
|
|
|
|
## Inlines {#type-inlines}
|
|
|
|
|
|
|
|
|
|
List of [Inline] elements, with the same methods as a generic
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[List](#type-list). It is usually not necessary to create values
|
|
|
|
|
of this type in user scripts, as pandoc can convert other types
|
|
|
|
|
into Blocks wherever a value of this type is expected:
|
2021-11-28 14:34:01 +01:00
|
|
|
|
|
|
|
|
|
- lists of [Inline] (or Inline-like) values are used directly;
|
|
|
|
|
- single [Inline] values are converted into a list containing
|
|
|
|
|
just that element;
|
|
|
|
|
- String values are split into words, converting line breaks
|
2022-02-06 09:43:58 +01:00
|
|
|
|
into [SoftBreak](#type-softbreak) elements, and other
|
|
|
|
|
whitespace characters into [Spaces](#type-space).
|
2021-11-28 14:34:01 +01:00
|
|
|
|
|
2021-12-06 16:55:19 +01:00
|
|
|
|
### Methods
|
|
|
|
|
|
|
|
|
|
Lists of type `Inlines` share all methods available in generic
|
2022-02-06 09:43:58 +01:00
|
|
|
|
lists, see the [`pandoc.List` module](#module-pandoc.list).
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Additionally, the following methods are available on *Inlines*
|
|
|
|
|
values:
|
|
|
|
|
|
|
|
|
|
#### walk {#type-inlines:walk}
|
|
|
|
|
|
|
|
|
|
`walk(self, lua_filter)`
|
|
|
|
|
|
|
|
|
|
Applies a Lua filter to the Inlines list. Just as for
|
2022-02-06 09:43:58 +01:00
|
|
|
|
full-document filters, the order in which elements are handled
|
|
|
|
|
are are Inline → Inlines → Block → Blocks. The filter is applied
|
|
|
|
|
to all list items *and* to the list itself.
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`self`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: the list ([Inlines](#type-inlines))
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
`lua_filter`
|
|
|
|
|
: map of filter functions (table)
|
|
|
|
|
|
|
|
|
|
Result:
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- filtered list ([Inlines](#type-inlines))
|
2021-12-06 16:55:19 +01:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
2021-12-21 18:53:37 +01:00
|
|
|
|
-- returns `pandoc.Inlines{pandoc.SmallCaps('SPQR')}`
|
2021-12-06 16:55:19 +01:00
|
|
|
|
return pandoc.Inlines{pandoc.Emph('spqr')}:walk {
|
|
|
|
|
Str = function (s) return string.upper(s.text) end,
|
|
|
|
|
Emph = function (e) return pandoc.SmallCaps(e.content) end,
|
|
|
|
|
}
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
## Element components
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Attr {#type-attr}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
Lua filters: allow passing of HTML-like tables instead of Attr (#5750)
Attr values can now be given as normal Lua tables; this can be used as a
convenient alternative to define Attr values, instead of constructing
values with `pandoc.Attr`. Identifiers are taken from the *id* field,
classes must be given as space separated words in the *class* field. All
remaining fields are included as misc attributes.
With this change, the following lines now create equal elements:
pandoc.Span('test', {id = 'test', class = 'a b', check = 1})
pandoc.Span('test', pandoc.Attr('test', {'a','b'}, {check = 1}))
This also works when using the *attr* setter:
local span = pandoc.Span 'text'
span.attr = {id = 'test', class = 'a b', check = 1}
Furthermore, the *attributes* field of AST elements can now be a plain
key-value table even when using the `attributes` accessor:
local span = pandoc.Span 'test'
span.attributes = {check = 1} -- works as expected now
Closes: #5744
2019-09-15 21:11:58 +02:00
|
|
|
|
A set of element attributes. Values of this type can be created
|
2022-02-06 09:43:58 +01:00
|
|
|
|
with the [`pandoc.Attr`](#pandoc.attr) constructor. For
|
|
|
|
|
convenience, it is usually not necessary to construct the value
|
|
|
|
|
directly if it is part of an element, and it is sufficient to
|
|
|
|
|
pass an HTML-like table. E.g., to create a span with identifier
|
|
|
|
|
"text" and classes "a" and "b", one can write:
|
Lua filters: allow passing of HTML-like tables instead of Attr (#5750)
Attr values can now be given as normal Lua tables; this can be used as a
convenient alternative to define Attr values, instead of constructing
values with `pandoc.Attr`. Identifiers are taken from the *id* field,
classes must be given as space separated words in the *class* field. All
remaining fields are included as misc attributes.
With this change, the following lines now create equal elements:
pandoc.Span('test', {id = 'test', class = 'a b', check = 1})
pandoc.Span('test', pandoc.Attr('test', {'a','b'}, {check = 1}))
This also works when using the *attr* setter:
local span = pandoc.Span 'text'
span.attr = {id = 'test', class = 'a b', check = 1}
Furthermore, the *attributes* field of AST elements can now be a plain
key-value table even when using the `attributes` accessor:
local span = pandoc.Span 'test'
span.attributes = {check = 1} -- works as expected now
Closes: #5744
2019-09-15 21:11:58 +02:00
|
|
|
|
|
|
|
|
|
local span = pandoc.Span('text', {id = 'text', class = 'a b'})
|
|
|
|
|
|
|
|
|
|
This also works when using the `attr` setter:
|
|
|
|
|
|
|
|
|
|
local span = pandoc.Span 'text'
|
|
|
|
|
span.attr = {id = 'text', class = 'a b', other_attribute = '1'}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2021-12-21 18:53:37 +01:00
|
|
|
|
Attr values are equal in Lua if and only if they are equal in
|
|
|
|
|
Haskell.
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`identifier`
|
|
|
|
|
: element identifier (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: element classes ([List] of strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: collection of key/value pairs ([Attributes])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Attributes {#type-attributes}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
List of key/value pairs. Values can be accessed by using keys as
|
|
|
|
|
indices to the list table.
|
|
|
|
|
|
2021-12-21 18:53:37 +01:00
|
|
|
|
Attributes values are equal in Lua if and only if they are equal
|
|
|
|
|
in Haskell.
|
|
|
|
|
|
2020-07-25 19:26:40 +02:00
|
|
|
|
### Caption {#type-caption}
|
|
|
|
|
|
|
|
|
|
The caption of a table, with an optional short caption.
|
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`long`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: long caption ([Blocks][])
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
|
|
|
|
`short`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: short caption ([Inlines][])
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
|
|
|
|
### Cell {#type-cell}
|
|
|
|
|
|
|
|
|
|
A table cell.
|
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`attr`
|
|
|
|
|
: cell attributes
|
|
|
|
|
|
|
|
|
|
`alignment`
|
|
|
|
|
: individual cell alignment ([Alignment]).
|
|
|
|
|
|
|
|
|
|
`contents`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: cell contents ([Blocks][]).
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
|
|
|
|
`col_span`
|
2021-12-14 09:13:38 +01:00
|
|
|
|
: number of columns spanned by the cell; the width of the cell
|
|
|
|
|
in columns (integer).
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
|
|
|
|
`row_span`
|
2021-12-14 09:13:38 +01:00
|
|
|
|
: number of rows spanned by the cell; the height of the cell in
|
|
|
|
|
rows (integer).
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2021-12-10 14:07:41 +01:00
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
|
|
|
|
: alias for `attr.classes` ([List] of strings)
|
|
|
|
|
|
|
|
|
|
`attributes`
|
|
|
|
|
: alias for `attr.attributes` ([Attributes])
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Citation {#type-citation}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Single citation entry
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.Citation`](#pandoc.citation) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2021-12-21 18:53:37 +01:00
|
|
|
|
Citation values are equal in Lua if and only if they are equal in
|
|
|
|
|
Haskell.
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`id`
|
|
|
|
|
: citation identifier, e.g., a bibtex key (string)
|
|
|
|
|
|
|
|
|
|
`mode`
|
|
|
|
|
: citation mode, one of `AuthorInText`, `SuppressAuthor`, or
|
|
|
|
|
`NormalCitation` (string)
|
|
|
|
|
|
|
|
|
|
`prefix`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: citation prefix ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`suffix`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: citation suffix ([Inlines][])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`note_num`
|
|
|
|
|
: note number (integer)
|
|
|
|
|
|
|
|
|
|
`hash`
|
|
|
|
|
: hash (integer)
|
|
|
|
|
|
2020-07-25 19:26:40 +02:00
|
|
|
|
### ColSpec {#type-colspec}
|
|
|
|
|
|
|
|
|
|
Column alignment and width specification for a single table
|
|
|
|
|
column.
|
|
|
|
|
|
2021-12-21 09:40:23 +01:00
|
|
|
|
This is a pair, i.e., a plain table, with the following
|
|
|
|
|
components:
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
1. cell alignment ([Alignment]).
|
|
|
|
|
2. table column width, as a fraction of the page width (number).
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### ListAttributes {#type-listattributes}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
List attributes
|
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Values of this type can be created with the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[`pandoc.ListAttributes`](#pandoc.listattributes) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`start`
|
|
|
|
|
: number of the first list item (integer)
|
|
|
|
|
|
|
|
|
|
`style`
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: style used for list numbers; possible values are
|
|
|
|
|
`DefaultStyle`, `Example`, `Decimal`, `LowerRoman`,
|
|
|
|
|
`UpperRoman`, `LowerAlpha`, and `UpperAlpha` (string)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`delimiter`
|
|
|
|
|
: delimiter of list numbers; one of `DefaultDelim`, `Period`,
|
|
|
|
|
`OneParen`, and `TwoParens` (string)
|
|
|
|
|
|
2020-07-25 19:26:40 +02:00
|
|
|
|
### Row {#type-row}
|
|
|
|
|
|
|
|
|
|
A table row.
|
|
|
|
|
|
2021-12-19 09:17:54 +01:00
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`attr`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: element attributes ([Attr][])
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2021-12-19 09:17:54 +01:00
|
|
|
|
`cells`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: list of table cells ([List][] of [Cell][]s)
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
|
|
|
|
### TableBody {#type-tablebody}
|
|
|
|
|
|
|
|
|
|
A body of a table, with an intermediate head and the specified
|
|
|
|
|
number of row header columns.
|
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`attr`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: table body attributes ([Attr][])
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2020-07-25 20:57:09 +02:00
|
|
|
|
`body`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: table body rows ([List][] of [Row][]s)
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
|
|
|
|
`head`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: intermediate head ([List][] of [Row][]s)
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2020-07-25 20:57:09 +02:00
|
|
|
|
`row_head_columns`
|
|
|
|
|
: number of columns taken up by the row head of each row of a
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[TableBody][]. The row body takes up the remaining columns.
|
2020-07-25 20:57:09 +02:00
|
|
|
|
|
2020-07-25 19:26:40 +02:00
|
|
|
|
### TableFoot {#type-tablefoot}
|
|
|
|
|
|
|
|
|
|
The foot of a table.
|
|
|
|
|
|
2021-12-19 09:17:54 +01:00
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`attr`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: element attributes ([Attr][])
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
|
|
|
|
`rows`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: list of rows ([List][] of [Row][]s)
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
|
|
|
|
|
|
|
|
|
`classes`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: alias for `attr.classes` ([List][] of strings)
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2021-12-19 09:17:54 +01:00
|
|
|
|
`attributes`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: alias for `attr.attributes` ([Attributes][])
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2020-07-29 18:32:19 +02:00
|
|
|
|
### TableHead {#type-tablehead}
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
|
|
|
|
The head of a table.
|
|
|
|
|
|
2021-12-19 09:17:54 +01:00
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`attr`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: element attributes ([Attr][])
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
|
|
|
|
`rows`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: list of rows ([List][] of [Row][]s)
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
|
|
|
|
`identifier`
|
|
|
|
|
: alias for `attr.identifier` (string)
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2021-12-19 09:17:54 +01:00
|
|
|
|
`classes`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: alias for `attr.classes` ([List][] of strings)
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
|
|
|
|
`attributes`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: alias for `attr.attributes` ([Attributes][])
|
2020-07-25 19:26:40 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## ReaderOptions {#type-readeroptions}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Pandoc reader options
|
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`abbreviations`
|
|
|
|
|
: set of known abbreviations (set of strings)
|
|
|
|
|
|
|
|
|
|
`columns`
|
|
|
|
|
: number of columns in terminal (integer)
|
|
|
|
|
|
|
|
|
|
`default_image_extension`
|
|
|
|
|
: default extension for images (string)
|
|
|
|
|
|
|
|
|
|
`extensions`
|
|
|
|
|
: string representation of the syntax extensions bit field
|
2022-01-01 01:11:41 +01:00
|
|
|
|
(sequence of strings)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`indented_code_classes`
|
|
|
|
|
: default classes for indented code blocks (list of strings)
|
|
|
|
|
|
|
|
|
|
`standalone`
|
|
|
|
|
: whether the input was a standalone document with header
|
|
|
|
|
(boolean)
|
|
|
|
|
|
|
|
|
|
`strip_comments`
|
|
|
|
|
: HTML comments are stripped instead of parsed as raw HTML
|
|
|
|
|
(boolean)
|
|
|
|
|
|
|
|
|
|
`tab_stop`
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: width (i.e. equivalent number of spaces) of tab stops
|
2018-10-19 08:12:57 +02:00
|
|
|
|
(integer)
|
|
|
|
|
|
|
|
|
|
`track_changes`
|
2022-01-01 01:11:41 +01:00
|
|
|
|
: track changes setting for docx; one of `accept-changes`,
|
|
|
|
|
`reject-changes`, and `all-changes` (string)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2021-12-31 20:12:23 +01:00
|
|
|
|
## WriterOptions {#type-writeroptions}
|
|
|
|
|
|
|
|
|
|
Pandoc writer options
|
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`cite_method`
|
|
|
|
|
: How to print cites -- one of 'citeproc', 'natbib', or
|
|
|
|
|
'biblatex' (string)
|
|
|
|
|
|
|
|
|
|
`columns`
|
|
|
|
|
: Characters in a line (for text wrapping) (integer)
|
|
|
|
|
|
|
|
|
|
`dpi`
|
|
|
|
|
: DPI for pixel to/from inch/cm conversions (integer)
|
|
|
|
|
|
|
|
|
|
`email_obfuscation`
|
|
|
|
|
: How to obfuscate emails -- one of 'none', 'references', or
|
|
|
|
|
'javascript' (string)
|
|
|
|
|
|
|
|
|
|
`epub_chapter_level`
|
|
|
|
|
: Header level for chapters, i.e., how the document is split
|
|
|
|
|
into separate files (integer)
|
|
|
|
|
|
|
|
|
|
`epub_fonts`
|
|
|
|
|
: Paths to fonts to embed (sequence of strings)
|
|
|
|
|
|
|
|
|
|
`epub_metadata`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Metadata to include in EPUB (string|nil)
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
|
|
|
|
`epub_subdirectory`
|
|
|
|
|
: Subdir for epub in OCF (string)
|
|
|
|
|
|
|
|
|
|
`extensions`
|
|
|
|
|
: Markdown extensions that can be used (sequence of strings)
|
|
|
|
|
|
|
|
|
|
`highlight_style`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Style to use for highlighting; see the output of `pandoc
|
|
|
|
|
--print-highlight-style=...` for an example structure. The
|
|
|
|
|
value `nil` means that no highlighting is used. (table|nil)
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
|
|
|
|
`html_math_method`
|
|
|
|
|
: How to print math in HTML; one 'plain', 'gladtex', 'webtex',
|
2022-02-06 09:43:58 +01:00
|
|
|
|
'mathml', 'mathjax', or a table with keys `method` and
|
|
|
|
|
`url`. (string|table)
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
|
|
|
|
`html_q_tags`
|
|
|
|
|
: Use `<q>` tags for quotes in HTML (boolean)
|
|
|
|
|
|
|
|
|
|
`identifier_prefix`
|
|
|
|
|
: Prefix for section & note ids in HTML and for footnote marks
|
|
|
|
|
in markdown (string)
|
|
|
|
|
|
|
|
|
|
`incremental`
|
|
|
|
|
: True if lists should be incremental (boolean)
|
|
|
|
|
|
|
|
|
|
`listings`
|
|
|
|
|
: Use listings package for code (boolean)
|
|
|
|
|
|
|
|
|
|
`number_offset`
|
|
|
|
|
: Starting number for section, subsection, ... (sequence of
|
|
|
|
|
integers)
|
|
|
|
|
|
|
|
|
|
`number_sections`
|
|
|
|
|
: Number sections in LaTeX (boolean)
|
|
|
|
|
|
|
|
|
|
`prefer_ascii`
|
|
|
|
|
: Prefer ASCII representations of characters when possible
|
|
|
|
|
(boolean)
|
|
|
|
|
|
|
|
|
|
`reference_doc`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Path to reference document if specified (string|nil)
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
|
|
|
|
`reference_links`
|
|
|
|
|
: Use reference links in writing markdown, rst (boolean)
|
|
|
|
|
|
|
|
|
|
`reference_location`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Location of footnotes and references for writing markdown;
|
|
|
|
|
one of 'end-of-block', 'end-of-section', 'end-of-document'.
|
|
|
|
|
The common prefix may be omitted when setting this value.
|
|
|
|
|
(string)
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
|
|
|
|
`section_divs`
|
|
|
|
|
: Put sections in div tags in HTML (boolean)
|
|
|
|
|
|
|
|
|
|
`setext_headers`
|
|
|
|
|
: Use setext headers for levels 1-2 in markdown (boolean)
|
|
|
|
|
|
|
|
|
|
`slide_level`
|
|
|
|
|
: Force header level of slides (integer\|nil)
|
|
|
|
|
|
|
|
|
|
`tab_stop`
|
|
|
|
|
: Tabstop for conversion btw spaces and tabs (integer)
|
|
|
|
|
|
|
|
|
|
`table_of_contents`
|
|
|
|
|
: Include table of contents (boolean)
|
|
|
|
|
|
2022-01-03 21:23:15 +01:00
|
|
|
|
`template`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Template to use ([Template](#type-template)|nil)
|
2022-01-03 21:23:15 +01:00
|
|
|
|
|
2021-12-31 20:12:23 +01:00
|
|
|
|
`toc_depth`
|
|
|
|
|
: Number of levels to include in TOC (integer)
|
|
|
|
|
|
|
|
|
|
`top_level_division`
|
|
|
|
|
: Type of top-level divisions; one of 'top-level-part',
|
|
|
|
|
'top-level-chapter', 'top-level-section', or
|
|
|
|
|
'top-level-default'. The prefix `top-level` may be omitted
|
|
|
|
|
when setting this value. (string)
|
|
|
|
|
|
|
|
|
|
`variables`
|
|
|
|
|
: Variables to set in template; string-indexed table (table)
|
|
|
|
|
|
|
|
|
|
`wrap_text`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Option for wrapping text; one of 'wrap-auto', 'wrap-none',
|
|
|
|
|
or 'wrap-preserve'. The `wrap-` prefix may be omitted when
|
2021-12-31 20:12:23 +01:00
|
|
|
|
setting this value. (string)
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## CommonState {#type-commonstate}
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
|
|
|
|
The state used by pandoc to collect information and make it
|
|
|
|
|
available to readers and writers.
|
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Fields:
|
|
|
|
|
|
2018-10-26 07:12:14 +02:00
|
|
|
|
`input_files`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: List of input files from command line
|
|
|
|
|
([List] of strings)
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
|
|
|
|
`output_file`
|
|
|
|
|
: Output file from command line (string or nil)
|
|
|
|
|
|
|
|
|
|
`log`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: A list of log messages in reverse order ([List] of
|
|
|
|
|
[LogMessage]s)
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
|
|
|
|
`request_headers`
|
|
|
|
|
: Headers to add for HTTP requests; table with header names as
|
|
|
|
|
keys and header contents as value (table)
|
|
|
|
|
|
|
|
|
|
`resource_path`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Path to search for resources like included images
|
|
|
|
|
([List] of strings)
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
|
|
|
|
`source_url`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Absolute URL or directory of first source file (string or
|
|
|
|
|
nil)
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
|
|
|
|
`user_data_dir`
|
|
|
|
|
: Directory to search for data files (string or nil)
|
|
|
|
|
|
|
|
|
|
`trace`
|
|
|
|
|
: Whether tracing messages are issued (boolean)
|
|
|
|
|
|
|
|
|
|
`verbosity`
|
|
|
|
|
: Verbosity level; one of `INFO`, `WARNING`, `ERROR` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## List {#type-list}
|
|
|
|
|
|
|
|
|
|
A list is any Lua table with integer indices. Indices start at
|
|
|
|
|
one, so if `alist = {'value'}` then `alist[1] == 'value'`.
|
|
|
|
|
|
|
|
|
|
Lists, when part of an element, or when generated during
|
2020-10-12 16:57:30 +02:00
|
|
|
|
marshaling, are made instances of the `pandoc.List` type for
|
2020-01-11 20:55:02 +01:00
|
|
|
|
convenience. The `pandoc.List` type is defined in the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[*pandoc.List*](#module-pandoc.list) module. See there for
|
2020-01-11 20:55:02 +01:00
|
|
|
|
available methods.
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Values of this type can be created with the
|
|
|
|
|
[`pandoc.List`](#pandoc.list) constructor, turning a normal Lua
|
|
|
|
|
table into a List.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## LogMessage {#type-logmessage}
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
A pandoc log message. Objects have no fields, but can be
|
|
|
|
|
converted to a string via `tostring`.
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
2020-09-21 00:48:31 +02:00
|
|
|
|
## SimpleTable {#type-simpletable}
|
|
|
|
|
|
|
|
|
|
A simple table is a table structure which resembles the old (pre
|
|
|
|
|
pandoc 2.10) Table type. Bi-directional conversion from and to
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[Tables](#type-table) is possible with the
|
|
|
|
|
[`pandoc.utils.to_simple_table`](#pandoc.utils.to_simple_table)
|
|
|
|
|
and
|
|
|
|
|
[`pandoc.utils.from_simple_table`](#pandoc.utils.from_simple_table)
|
|
|
|
|
function, respectively. Instances of this type can also be created
|
|
|
|
|
directly with the [`pandoc.SimpleTable`](#pandoc.simpletable)
|
|
|
|
|
constructor.
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`caption`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: [Inlines][]
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`aligns`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: column alignments ([List] of [Alignments](#type-alignment))
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`widths`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: column widths; a ([List] of numbers)
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`headers`
|
2022-01-02 14:50:56 +01:00
|
|
|
|
: table header row ([List] of simple cells, i.e., [List] of
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[Blocks][])
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`rows`
|
2022-01-02 14:50:56 +01:00
|
|
|
|
: table rows ([List] of rows, where a row is a list of simple
|
2022-02-06 09:43:58 +01:00
|
|
|
|
cells, i.e., [List] of [Blocks][])
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-04 10:38:02 +01:00
|
|
|
|
## Template {#type-template}
|
|
|
|
|
|
|
|
|
|
Opaque type holding a compiled template.
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Version {#type-version}
|
2019-05-19 15:26:00 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
A version object. This represents a software version like
|
|
|
|
|
"2.7.3". The object behaves like a numerically indexed table,
|
|
|
|
|
i.e., if `version` represents the version `2.7.3`, then
|
2019-05-19 15:26:00 +02:00
|
|
|
|
|
|
|
|
|
version[1] == 2
|
|
|
|
|
version[2] == 7
|
|
|
|
|
version[3] == 3
|
|
|
|
|
#version == 3 -- length
|
|
|
|
|
|
|
|
|
|
Comparisons are performed element-wise, i.e.
|
|
|
|
|
|
|
|
|
|
Version '1.12' > Version '1.9'
|
|
|
|
|
|
2020-01-11 23:19:19 +01:00
|
|
|
|
Values of this type can be created with the
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[`pandoc.types.Version`](#pandoc.types.version) constructor.
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2019-05-19 15:26:00 +02:00
|
|
|
|
### `must_be_at_least`
|
|
|
|
|
|
|
|
|
|
`must_be_at_least(actual, expected [, error_message])`
|
|
|
|
|
|
|
|
|
|
Raise an error message if the actual version is older than the
|
2021-12-21 18:53:37 +01:00
|
|
|
|
expected version; does nothing if `actual` is equal to or newer
|
2019-05-29 22:58:35 +02:00
|
|
|
|
than the expected version.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`actual`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: actual version specifier ([Version])
|
2019-05-29 22:58:35 +02:00
|
|
|
|
|
|
|
|
|
`expected`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: minimum expected version ([Version])
|
2019-05-29 22:58:35 +02:00
|
|
|
|
|
|
|
|
|
`error_message`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: optional error message template. The string is used as
|
|
|
|
|
format string, with the expected and actual versions as
|
|
|
|
|
arguments. Defaults to
|
|
|
|
|
`"expected version %s or newer, got %s"`.
|
2019-05-19 15:26:00 +02:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
2019-05-29 22:58:35 +02:00
|
|
|
|
PANDOC_VERSION:must_be_at_least '2.7.3'
|
|
|
|
|
PANDOC_API_VERSION:must_be_at_least(
|
|
|
|
|
'1.17.4',
|
|
|
|
|
'pandoc-types is too old: expected version %s, got %s'
|
|
|
|
|
)
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[Alignment]: #type-alignment
|
|
|
|
|
[Attr]: #type-attr
|
|
|
|
|
[Attributes]: #type-attributes
|
|
|
|
|
[Block]: #type-block
|
|
|
|
|
[Blocks]: #type-blocks
|
|
|
|
|
[Caption]: #type-caption
|
|
|
|
|
[Cell]: #type-cell
|
|
|
|
|
[Cells]: #type-cell
|
|
|
|
|
[Citation]: #type-citation
|
|
|
|
|
[Citations]: #type-citation
|
|
|
|
|
[ColSpec]: #type-colspec
|
|
|
|
|
[CommonState]: #type-commonstate
|
|
|
|
|
[Image]: #type-image
|
|
|
|
|
[Inline]: #type-inline
|
|
|
|
|
[Inlines]: #type-inlines
|
|
|
|
|
[List]: #type-list
|
|
|
|
|
[ListAttributes]: #type-listattributes
|
|
|
|
|
[Meta]: #type-meta
|
|
|
|
|
[MetaBlocks]: #type-metablocks
|
|
|
|
|
[MetaValue]: #type-metavalue
|
|
|
|
|
[MetaValues]: #type-metavalue
|
|
|
|
|
[LogMessage]: #type-logmessage
|
|
|
|
|
[Pandoc]: #type-pandoc
|
|
|
|
|
[Para]: #type-para
|
|
|
|
|
[Plain]: #type-plain
|
|
|
|
|
[Row]: #type-row
|
|
|
|
|
[Rows]: #type-row
|
|
|
|
|
[SimpleTable]: #type-simpletable
|
|
|
|
|
[Table]: #type-table
|
|
|
|
|
[TableBody]: #type-tablebody
|
|
|
|
|
[TableFoot]: #type-tablefoot
|
|
|
|
|
[TableHead]: #type-tablehead
|
|
|
|
|
[Version]: #type-version
|
|
|
|
|
|
2017-11-18 22:40:47 +01:00
|
|
|
|
# Module text
|
|
|
|
|
|
|
|
|
|
UTF-8 aware text manipulation functions, implemented in Haskell.
|
2019-02-09 09:52:51 +01:00
|
|
|
|
The module is made available as part of the `pandoc` module via
|
|
|
|
|
`pandoc.text`. The text module can also be loaded explicitly:
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-11-18 22:40:47 +01:00
|
|
|
|
-- uppercase all regular text in a document:
|
|
|
|
|
text = require 'text'
|
|
|
|
|
function Str (s)
|
|
|
|
|
s.text = text.upper(s.text)
|
|
|
|
|
return s
|
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### lower {#text.lower}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`lower (s)`
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns a copy of a UTF-8 string, converted to lowercase.
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### upper {#text.upper}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`upper (s)`
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns a copy of a UTF-8 string, converted to uppercase.
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### reverse {#text.reverse}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`reverse (s)`
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns a copy of a UTF-8 string, with characters reversed.
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### len {#text.len}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`len (s)`
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns the length of a UTF-8 string.
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### sub {#text.sub}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`sub (s)`
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns a substring of a UTF-8 string, using Lua's string
|
|
|
|
|
indexing rules.
|
2017-11-18 22:40:47 +01:00
|
|
|
|
|
2017-08-31 13:23:24 +02:00
|
|
|
|
# Module pandoc
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Lua functions for pandoc scripts; includes constructors for
|
2022-02-06 09:43:58 +01:00
|
|
|
|
document tree elements, functions to parse text in a given
|
|
|
|
|
format, and functions to filter and modify a subtree.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## Pandoc
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Pandoc (blocks[, meta])` {#pandoc.pandoc}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
A complete pandoc document
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`blocks`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: document content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`meta`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: document meta data
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [Pandoc] object
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## Meta
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Meta (table)` {#pandoc.meta}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Create a new Meta object.
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`table`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: table containing document meta information
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Meta] object
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## MetaValue
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `MetaBlocks (blocks)` {#pandoc.metablocks}
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a value to be used as a MetaBlocks value in meta
|
|
|
|
|
data; creates a copy of the input list via `pandoc.Blocks`,
|
|
|
|
|
discarding all non-list keys.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`blocks`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: blocks
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Blocks][]
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `MetaInlines (inlines)` {#pandoc.metainlines}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a value to be used as a MetaInlines value in meta
|
|
|
|
|
data; creates a copy of the input list via `pandoc.Inlines`,
|
|
|
|
|
discarding all non-list keys.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`inlines`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inlines
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Inlines][]
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `MetaList (meta_values)` {#pandoc.metalist}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a value to be used as a MetaList in meta data;
|
|
|
|
|
creates a copy of the input list via `pandoc.List`,
|
|
|
|
|
discarding all non-list keys.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`meta_values`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list of meta values
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [List]
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `MetaMap (key_value_map)` {#pandoc.metamap}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a value to be used as a MetaMap in meta data; creates
|
|
|
|
|
a copy of the input table, keeping only pairs with string
|
|
|
|
|
keys and discards all other keys.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`key_value_map`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: a string-indexed map of meta values
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: table
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `MetaString (str)` {#pandoc.metastring}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a value to be used as a MetaString in meta data; this
|
|
|
|
|
is the identity function for boolean values and exists only
|
|
|
|
|
for completeness.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`str`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: string value
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: string
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `MetaBool (bool)` {#pandoc.metabool}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a value to be used as MetaBool in meta data; this is
|
|
|
|
|
the identity function for boolean values and exists only for
|
2022-01-08 08:22:18 +01:00
|
|
|
|
completeness.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`bool`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: boolean value
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: boolean
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## Block
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `BlockQuote (content)` {#pandoc.blockquote}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a block quote element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: block content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [BlockQuote] object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `BulletList (items)` {#pandoc.bulletlist}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a bullet list.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`items`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list items
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [BulletList] object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `CodeBlock (text[, attr])` {#pandoc.codeblock}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a code block element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`text`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: code string
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: element attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [CodeBlock] object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `DefinitionList (content)` {#pandoc.definitionlist}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a definition list, containing terms and their
|
|
|
|
|
explanation.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list of items
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [DefinitionList] object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Div (content[, attr])` {#pandoc.div}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a div element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: block content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: element attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [Div] object
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Header (level, content[, attr])` {#pandoc.header}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a header element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`level`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: header level
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: element attributes
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [Header] object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `HorizontalRule ()` {#pandoc.horizontalrule}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a horizontal rule.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [HorizontalRule] object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `LineBlock (content)` {#pandoc.lineblock}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a line block element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [LineBlock] object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Null ()` {#pandoc.null}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a null element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [Null] object
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `OrderedList (items[, listAttributes])` {#pandoc.orderedlist}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates an ordered list.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`items`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list items
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`listAttributes`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list parameters
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [OrderedList](#type-orderedlist) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Para (content)` {#pandoc.para}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a para element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Para](#type-para) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Plain (content)` {#pandoc.plain}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a plain element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Plain](#type-plain) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `RawBlock (format, text)` {#pandoc.rawblock}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a raw content block of the specified format.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`format`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: format of content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`text`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: string content
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [RawBlock](#type-rawblock) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Table (caption, colspecs, head, bodies, foot[, attr])` {#pandoc.table}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a table element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`caption`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: table [caption](#type-caption)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`colspecs`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: column alignments and widths (list of [ColSpec](#type-colspec)s)
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`head`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: [table head](#type-tablehead)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`bodies`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: [table bodies](#type-tablebody)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`foot`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: [table foot](#type-tablefoot)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: element attributes
|
2020-07-25 20:29:21 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Table](#type-table) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## Blocks
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Blocks (block_like_elements)` {#pandoc.blocks}
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a [Blocks][] list.
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`block_like_elements`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: List where each element can be treated as a [Block]
|
|
|
|
|
value, or a single such value.
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Blocks][]
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## Inline
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Cite (content, citations)` {#pandoc.cite}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Cite inline element
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: List of inlines
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`citations`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: List of citations
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Cite](#type-cite) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Code (text[, attr])` {#pandoc.code}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Code inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`text`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: code string
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: additional attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Code](#type-code) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Emph (content)` {#pandoc.emph}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates an inline element representing emphasized text.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Emph](#type-emph) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Image (caption, src[, title[, attr]])` {#pandoc.image}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Image inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`caption`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: text used to describe the image
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`src`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: path to the image file
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`title`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: brief image description
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: additional attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Image](#type-image) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `LineBreak ()` {#pandoc.linebreak}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Create a LineBreak inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [LineBreak](#type-linebreak) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Link (content, target[, title[, attr]])` {#pandoc.link}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a link inline element, usually a hyperlink.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: text for this link
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`target`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: the link target
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`title`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: brief link description
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: additional attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Link](#type-link) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Math (mathtype, text)` {#pandoc.math}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Math element, either inline or displayed.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`mathtype`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: rendering specifier
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`text`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: Math content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Math](#type-math) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `DisplayMath (text)` {#pandoc.displaymath}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a math element of type "DisplayMath" (DEPRECATED).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`text`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: Math content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Math](#type-math) object
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `InlineMath (text)` {#pandoc.inlinemath}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a math element of type "InlineMath" (DEPRECATED).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`text`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: Math content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Math](#type-math) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Note (content)` {#pandoc.note}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Note inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: footnote block content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Note](#type-note) object
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Quoted (quotetype, content)` {#pandoc.quoted}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a Quoted inline element given the quote type and
|
|
|
|
|
quoted content.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`quotetype`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: type of quotes to be used
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Quoted](#type-quoted) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `SingleQuoted (content)` {#pandoc.singlequoted}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a single-quoted inline element (DEPRECATED).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Quoted](#type-quoted)
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `DoubleQuoted (content)` {#pandoc.doublequoted}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a single-quoted inline element (DEPRECATED).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Quoted](#type-quoted)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `RawInline (format, text)` {#pandoc.rawinline}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a raw inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`format`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: format of the contents
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`text`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: string content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [RawInline](#type-rawinline) object
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `SmallCaps (content)` {#pandoc.smallcaps}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates text rendered in small caps
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [SmallCaps](#type-smallcaps) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `SoftBreak ()` {#pandoc.softbreak}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a SoftBreak inline element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [SoftBreak](#type-softbreak) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Space ()` {#pandoc.space}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Create a Space inline element
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Space](#type-space) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Span (content[, attr])` {#pandoc.span}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Span inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: additional attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Span](#type-span) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Str (text)` {#pandoc.str}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Str inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`text`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Str](#type-str) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Strikeout (content)` {#pandoc.strikeout}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates text which is struck out.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Strikeout](#type-strikeout) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Strong (content)` {#pandoc.strong}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a Strong element, whose text is usually displayed in
|
|
|
|
|
a bold font.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Strong](#type-strong) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Subscript (content)` {#pandoc.subscript}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Subscript inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Subscript](#type-subscript) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Superscript (content)` {#pandoc.superscript}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a Superscript inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Superscript](#type-superscript) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Underline (content)` {#pandoc.underline}
|
2020-10-04 21:55:09 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates an Underline inline element
|
2020-10-04 21:55:09 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2020-10-04 21:55:09 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`content`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: inline content
|
2020-10-04 21:55:09 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Underline](#type-underline) object
|
2020-10-04 21:55:09 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## Inlines
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Inlines (inline_like_elements)` {#pandoc.inlines}
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Converts its argument into an [Inlines][] list:
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
- copies a list of [Inline] elements into a fresh list; any
|
|
|
|
|
string `s` within the list is treated as `pandoc.Str(s)`;
|
|
|
|
|
- turns a single [Inline] into a singleton list;
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- splits a string into `Str`-wrapped words, treating
|
|
|
|
|
interword spaces as `Space`s or `SoftBreak`s.
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`inline_like_elements`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: List where each element can be treated as an [Inline]
|
|
|
|
|
values, or just a single such value.
|
|
|
|
|
|
|
|
|
|
Returns: [Inlines][] list
|
2021-11-28 15:07:30 +01:00
|
|
|
|
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Element components
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Attr ([identifier[, classes[, attributes]]])` {#pandoc.attr}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Create a new set of attributes (Attr).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`identifier`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: element identifier
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`classes`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: element classes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attributes`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: table containing string keys and values
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Attr](#type-attr) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `Cell (blocks[, align[, rowspan[, colspan[, attr]]]])` {#pandoc.cell}
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Create a new table cell.
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`blocks`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: cell contents ([Blocks][])
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`align`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: text alignment; defaults to `AlignDefault` (Alignment)
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`rowspan`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: number of rows occupied by the cell; defaults to `1`
|
|
|
|
|
(integer)
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`colspan`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: number of columns spanned by the cell; defaults to `1`
|
|
|
|
|
(integer)
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: cell attributes ([Attr](#type-attr))
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns:
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- [Cell](#type-cell) object
|
2021-12-14 09:13:38 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Citation (id, mode[, prefix[, suffix[, note_num[, hash]]]])` {#pandoc.citation}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a single citation.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`id`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: citation identifier (like a bibtex key)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`mode`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: citation mode
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`prefix`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: citation prefix
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`suffix`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: citation suffix
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`note_num`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: note number
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`hash`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: hash number
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [Citation](#type-citation) object
|
2020-01-11 23:19:19 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `ListAttributes ([start[, style[, delimiter]]])` {#pandoc.listattributes}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a set of list attributes.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`start`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: number of the first list item
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`style`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: style used for list numbering
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`delimiter`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: delimiter of list numbers
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: [ListAttributes](#type-listattributes) object
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `Row ([cells[, attr]])` {#pandoc.row}
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a table row.
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`cells`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list of table cells in this row
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: row attributes
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `TableFoot ([rows[, attr]])` {#pandoc.tablefoot}
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a table foot.
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`rows`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list of table rows
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: table foot attributes
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `TableHead ([rows[, attr]])` {#pandoc.tablehead}
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a table head.
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`rows`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list of table rows
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`attr`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: table head attributes
|
2021-12-19 09:17:54 +01:00
|
|
|
|
|
2020-09-21 00:48:31 +02:00
|
|
|
|
## Legacy types
|
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `SimpleTable (caption, aligns, widths, headers, rows)` {#pandoc.simpletable}
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a simple table resembling the old (pre pandoc 2.10)
|
|
|
|
|
table type.
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`caption`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: [Inlines][]
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`aligns`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: column alignments ([List] of [Alignments](#type-alignment))
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`widths`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: column widths; a ([List] of numbers)
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`headers`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: table header row ([List] of [Blocks][])
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`rows`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: table rows ([List] of rows, where a row is a list
|
|
|
|
|
of [Blocks][])
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: [SimpleTable] object
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Usage:
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
local caption = "Overview"
|
|
|
|
|
local aligns = {pandoc.AlignDefault, pandoc.AlignDefault}
|
|
|
|
|
local widths = {0, 0} -- let pandoc determine col widths
|
|
|
|
|
local headers = {{pandoc.Plain({pandoc.Str "Language"})},
|
|
|
|
|
{pandoc.Plain({pandoc.Str "Typing"})}}
|
|
|
|
|
local rows = {
|
|
|
|
|
{{pandoc.Plain "Haskell"}, {pandoc.Plain "static"}},
|
|
|
|
|
{{pandoc.Plain "Lua"}, {pandoc.Plain "Dynamic"}},
|
|
|
|
|
}
|
|
|
|
|
simple_table = pandoc.SimpleTable(
|
|
|
|
|
caption,
|
|
|
|
|
aligns,
|
|
|
|
|
widths,
|
|
|
|
|
headers,
|
|
|
|
|
rows
|
|
|
|
|
)
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
## Constants
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`AuthorInText`]{#pandoc.authorintext}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Author name is mentioned in the text.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [Citation](#type-citation)
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`SuppressAuthor`]{#pandoc.suppressauthor}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Author name is suppressed.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [Citation](#type-citation)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`NormalCitation`]{#pandoc.normalcitation}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Default citation style is used.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [Citation](#type-citation)
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`AlignLeft`]{#pandoc.alignleft}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Table cells aligned left.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [Table](#type-alignment)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`AlignRight`]{#pandoc.alignright}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Table cells right-aligned.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [Table](#type-alignment)
|
2018-01-07 22:41:59 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`AlignCenter`]{#pandoc.aligncenter}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Table cell content is centered.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [Table](#type-alignment)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`AlignDefault`]{#pandoc.aligndefault}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Table cells are alignment is unaltered.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [Table](#type-alignment)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`DefaultDelim`]{#pandoc.defaultdelim}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Default list number delimiters are used.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Period`]{#pandoc.period}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: List numbers are delimited by a period.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`OneParen`]{#pandoc.oneparen}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: List numbers are delimited by a single parenthesis.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`TwoParens`]{#pandoc.twoparens}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: List numbers are delimited by a double parentheses.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`DefaultStyle`]{#pandoc.defaultstyle}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: List are numbered in the default style
|
2018-10-11 22:28:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2018-10-11 22:28:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Example`]{#pandoc.example}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
|
|
|
|
: List items are numbered as examples.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Decimal`]{#pandoc.decimal}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
|
|
|
|
: List are numbered using decimal integers.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`LowerRoman`]{#pandoc.lowerroman}
|
2018-10-11 22:28:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: List are numbered using lower-case roman numerals.
|
2018-10-11 22:28:24 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2018-10-11 22:28:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`UpperRoman`]{#pandoc.upperroman}
|
2018-10-11 22:28:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: List are numbered using upper-case roman numerals
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`LowerAlpha`]{#pandoc.loweralpha}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
|
|
|
|
: List are numbered using lower-case alphabetic characters.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`UpperAlpha`]{#pandoc.upperalpha}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
|
|
|
|
: List are numbered using upper-case alphabetic characters.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
See also: [ListAttributes](#type-listattributes)
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`sha1`]{#pandoc.sha1}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Alias for [`pandoc.utils.sha1`](#pandoc.utils.sha1)
|
|
|
|
|
(DEPRECATED, use `pandoc.utils.sha1` instead).
|
2021-11-06 11:00:26 +01:00
|
|
|
|
|
|
|
|
|
## Other constructors
|
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `ReaderOptions (opts)` {#pandoc.readeroptions}
|
2021-11-06 11:00:26 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Creates a new [ReaderOptions] value.
|
2021-11-06 11:00:26 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters
|
2021-11-06 11:00:26 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`opts`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: Either a table with a subset of the properties of a
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[ReaderOptions] object, or another ReaderOptions object.
|
|
|
|
|
Uses the defaults specified in the manual for all
|
|
|
|
|
properties that are not explicitly specified. Throws an
|
|
|
|
|
error if a table contains properties which are not present
|
|
|
|
|
in a ReaderOptions object. ([ReaderOptions]|table)
|
2021-11-06 11:00:26 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: new [ReaderOptions] object
|
2021-11-06 11:00:26 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Usage:
|
2021-11-06 11:00:26 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
-- copy of the reader options that were defined on the command line.
|
|
|
|
|
local cli_opts = pandoc.ReaderOptions(PANDOC_READER_OPTIONS)
|
2021-11-06 11:00:26 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
-- default reader options, but columns set to 66.
|
|
|
|
|
local short_colums_opts = pandoc.ReaderOptions {columns = 66}
|
2018-10-11 22:28:24 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `WriterOptions (opts)` {#pandoc.writeroptions}
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a new [WriterOptions][] value.
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`opts`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: Either a table with a subset of the properties of a
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[WriterOptions] object, or another WriterOptions object.
|
|
|
|
|
Uses the defaults specified in the manual for all
|
|
|
|
|
properties that are not explicitly specified. Throws an
|
|
|
|
|
error if a table contains properties which are not present
|
|
|
|
|
in a WriterOptions object. ([WriterOptions]|table)
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: new [WriterOptions] object
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Usage:
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
-- copy of the writer options that were defined on the command line.
|
|
|
|
|
local cli_opts = pandoc.WriterOptions(PANDOC_WRITER_OPTIONS)
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
-- default writer options, but DPI set to 300.
|
|
|
|
|
local short_colums_opts = pandoc.WriterOptions {dpi = 300}
|
2021-12-31 20:12:23 +01:00
|
|
|
|
|
2017-12-29 09:58:47 +01:00
|
|
|
|
## Helper functions
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `pipe (command, args, input)` {#pandoc.pipe}
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Runs command with arguments, passing it some input, and returns
|
|
|
|
|
the output.
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2020-10-11 12:58:52 +02:00
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`command`
|
|
|
|
|
: program to run; the executable will be resolved using default
|
|
|
|
|
system methods (string).
|
|
|
|
|
|
|
|
|
|
`args`
|
|
|
|
|
: list of arguments to pass to the program (list of strings).
|
|
|
|
|
|
|
|
|
|
`input`
|
|
|
|
|
: data which is piped into the program via stdin (string).
|
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- Output of command, i.e. data printed to stdout (string)
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Raises:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
- A table containing the keys `command`, `error_code`, and
|
2022-02-06 09:43:58 +01:00
|
|
|
|
`output` is thrown if the command exits with a non-zero
|
|
|
|
|
error code.
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local output = pandoc.pipe("sed", {"-e","s/a/b/"}, "abc")
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `walk_block (element, filter)` {#pandoc.walk_block}
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Apply a filter inside a block element, walking its contents.
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`element`
|
2019-01-30 21:37:14 +01:00
|
|
|
|
: the block element
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`filter`
|
2020-01-12 11:22:20 +01:00
|
|
|
|
: a Lua filter (table of functions) to be applied within the
|
2019-08-08 20:21:31 +02:00
|
|
|
|
block element
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns: the transformed block element
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `walk_inline (element, filter)` {#pandoc.walk_inline}
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Apply a filter inside an inline element, walking its contents.
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`element`
|
2019-01-30 21:37:14 +01:00
|
|
|
|
: the inline element
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`filter`
|
2020-01-12 11:22:20 +01:00
|
|
|
|
: a Lua filter (table of functions) to be applied within the
|
2019-08-08 20:21:31 +02:00
|
|
|
|
inline element
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns: the transformed inline element
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `read (markup[, format[, reader_options]])` {#pandoc.read}
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parse the given string into a Pandoc document.
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2021-12-31 10:23:32 +01:00
|
|
|
|
The parser is run in the same environment that was used to read
|
|
|
|
|
the main input files; it has full access to the file-system and
|
|
|
|
|
the mediabag. This means that if the document specifies files to
|
|
|
|
|
be included, as is possible in formats like LaTeX,
|
|
|
|
|
reStructuredText, and Org, then these will be included in the
|
|
|
|
|
resulting document. Any media elements are added to those
|
|
|
|
|
retrieved from the other parsed input files.
|
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`markup`
|
2021-11-06 11:00:26 +01:00
|
|
|
|
: the markup to be parsed (string)
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`format`
|
2021-11-06 11:00:26 +01:00
|
|
|
|
: format specification, defaults to `"markdown"` (string)
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`reader_options`
|
2021-11-06 11:00:26 +01:00
|
|
|
|
: options passed to the reader; may be a ReaderOptions object or
|
|
|
|
|
a table with a subset of the keys and values of a
|
|
|
|
|
ReaderOptions object; defaults to the default values
|
2022-02-06 09:43:58 +01:00
|
|
|
|
documented in the manual. ([ReaderOptions]|table)
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: pandoc document ([Pandoc](#type-pandoc))
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local org_markup = "/emphasis/" -- Input to be read
|
|
|
|
|
local document = pandoc.read(org_markup, "org")
|
|
|
|
|
-- Get the first block of the document
|
|
|
|
|
local block = document.blocks[1]
|
|
|
|
|
-- The inline element in that block is an `Emph`
|
|
|
|
|
assert(block.content[1].t == "Emph")
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[ReaderOptions]: #type-readeroptions
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `write (doc[, format[, writer_options]])` {#pandoc.write}
|
2021-12-31 18:59:52 +01:00
|
|
|
|
|
|
|
|
|
Converts a document to the given target format.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`doc`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: document to convert ([Pandoc](#type-pandoc))
|
2021-12-31 18:59:52 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`format`
|
2021-12-31 18:59:52 +01:00
|
|
|
|
: format specification, defaults to `'html'` (string)
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`writer_options`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: options passed to the writer; may be a WriterOptions object
|
|
|
|
|
or a table with a subset of the keys and values of a
|
2021-12-31 18:59:52 +01:00
|
|
|
|
WriterOptions object; defaults to the default values
|
2022-02-06 09:43:58 +01:00
|
|
|
|
documented in the manual. ([WriterOptions]|table)
|
2021-12-31 18:59:52 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns:
|
|
|
|
|
- converted document (string)
|
2021-12-31 18:59:52 +01:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
local doc = pandoc.Pandoc(
|
|
|
|
|
{pandoc.Para {pandoc.Strong 'Tea'}}
|
|
|
|
|
)
|
|
|
|
|
local html = pandoc.write(doc, 'html')
|
|
|
|
|
assert(html == "<p><strong>Tea</strong></p>")
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[WriterOptions]: #type-writeroptions
|
|
|
|
|
|
2017-12-21 22:30:59 +01:00
|
|
|
|
# Module pandoc.utils
|
|
|
|
|
|
|
|
|
|
This module exposes internal pandoc functions and utility
|
|
|
|
|
functions.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
The module is loaded as part of the `pandoc` module and
|
|
|
|
|
available as `pandoc.utils`. In versions up-to and including
|
|
|
|
|
pandoc 2.6, this module had to be loaded explicitly. Example:
|
2019-02-07 09:50:06 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
pandoc.utils = require 'pandoc.utils'
|
2019-02-07 09:50:06 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Use the above for backwards compatibility.
|
2019-02-07 09:50:06 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `blocks_to_inlines (blocks[, sep])` {#pandoc.utils.blocks_to_inlines}
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Squash a list of blocks into a list of inlines.
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`blocks`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: List of [Block](#type-block) elements to be flattened.
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`sep`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: List of [Inline](#type-inline) elements inserted as
|
|
|
|
|
separator between two consecutive blocks; defaults to `{
|
|
|
|
|
pandoc.Space(), pandoc.Str'¶', pandoc.Space()}`.
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- [Inlines][]
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local blocks = {
|
|
|
|
|
pandoc.Para{ pandoc.Str 'Paragraph1' },
|
|
|
|
|
pandoc.Para{ pandoc.Emph 'Paragraph2' }
|
|
|
|
|
}
|
|
|
|
|
local inlines = pandoc.utils.blocks_to_inlines(blocks)
|
|
|
|
|
-- inlines = {
|
|
|
|
|
-- pandoc.Str 'Paragraph1',
|
|
|
|
|
-- pandoc.Space(), pandoc.Str'¶', pandoc.Space(),
|
|
|
|
|
-- pandoc.Emph{ pandoc.Str 'Paragraph2' }
|
|
|
|
|
-- }
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `equals (element1, element2)` {#pandoc.utils.equals}
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Test equality of AST elements. Elements in Lua are considered
|
|
|
|
|
equal if and only if the objects obtained by unmarshaling are
|
|
|
|
|
equal.
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2021-12-21 18:53:37 +01:00
|
|
|
|
**This function is deprecated.** Use the normal Lua `==` equality
|
|
|
|
|
operator instead.
|
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`element1`, `element2`
|
2021-12-21 18:53:37 +01:00
|
|
|
|
: Objects to be compared (any type)
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
- Whether the two objects represent the same element (boolean)
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `from_simple_table (table)` {#pandoc.utils.from_simple_table}
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a [Table] block element from a [SimpleTable]. This is
|
|
|
|
|
useful for dealing with legacy code which was written for pandoc
|
|
|
|
|
versions older than 2.10.
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- table block element ([Table])
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
local simple = pandoc.SimpleTable(table)
|
|
|
|
|
-- modify, using pre pandoc 2.10 methods
|
|
|
|
|
simple.caption = pandoc.SmallCaps(simple.caption)
|
|
|
|
|
-- create normal table block again
|
|
|
|
|
table = pandoc.utils.from_simple_table(simple)
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
### `make_sections (number_sections, base_level, blocks)` {#pandoc.utils.make_sections}
|
2017-12-23 22:39:05 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Converts list of [Block](#type-block) elements into sections.
|
|
|
|
|
`Div`s will be created beginning at each `Header`
|
|
|
|
|
and containing following content until the next `Header`
|
|
|
|
|
of comparable level. If `number_sections` is true,
|
|
|
|
|
a `number` attribute will be added to each `Header`
|
|
|
|
|
containing the section number. If `base_level` is
|
|
|
|
|
non-null, `Header` levels will be reorganized so
|
|
|
|
|
that there are no gaps, and so that the base level
|
|
|
|
|
is the level specified.
|
2017-12-23 22:39:05 +01:00
|
|
|
|
|
2021-12-28 12:35:22 +01:00
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`number_sections`
|
|
|
|
|
: whether section divs should get an additional `number`
|
|
|
|
|
attribute containing the section number. (boolean)
|
|
|
|
|
|
|
|
|
|
`base_level`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: shift top-level headings to this level. (integer|nil)
|
2021-12-28 12:35:22 +01:00
|
|
|
|
|
|
|
|
|
`blocks`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: list of blocks to process ([Blocks][])
|
2021-12-28 12:35:22 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-12-23 22:39:05 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- [Blocks][].
|
2017-12-23 22:39:05 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-12-23 22:39:05 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local blocks = {
|
|
|
|
|
pandoc.Header(2, pandoc.Str 'first'),
|
|
|
|
|
pandoc.Header(2, pandoc.Str 'second'),
|
|
|
|
|
}
|
2019-09-07 20:23:12 +02:00
|
|
|
|
local newblocks = pandoc.utils.make_sections(true, 1, blocks)
|
2017-12-23 22:39:05 +01:00
|
|
|
|
|
2021-12-17 17:32:28 +01:00
|
|
|
|
### references {#pandoc.references}
|
|
|
|
|
|
|
|
|
|
`references (doc)`
|
|
|
|
|
|
|
|
|
|
Get references defined inline in the metadata and via an external
|
|
|
|
|
bibliography. Only references that are actually cited in the
|
|
|
|
|
document (either with a genuine citation or with `nocite`) are
|
|
|
|
|
returned. URL variables are converted to links.
|
|
|
|
|
|
|
|
|
|
The structure used represent reference values corresponds to that
|
|
|
|
|
used in CSL JSON; the return value can be use as `references`
|
|
|
|
|
metadata, which is one of the values used by pandoc and citeproc
|
|
|
|
|
when generating bibliographies.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`doc`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: document ([Pandoc](#type-pandoc))
|
2021-12-17 17:32:28 +01:00
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- list of references. (table)
|
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
-- Include all cited references in document
|
|
|
|
|
function Pandoc (doc)
|
|
|
|
|
doc.meta.references = pandoc.utils.references(doc)
|
|
|
|
|
doc.meta.bibliography = nil
|
|
|
|
|
return doc
|
|
|
|
|
end
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### run\_json\_filter {#pandoc.utils.run_json_filter}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`run_json_filter (doc, filter[, args])`
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Filter the given doc by passing it through the a JSON filter.
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`doc`
|
2019-01-30 21:37:14 +01:00
|
|
|
|
: the Pandoc document to filter
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`filter`
|
2019-01-30 21:37:14 +01:00
|
|
|
|
: filter to run
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`args`
|
2019-01-30 21:37:14 +01:00
|
|
|
|
: list of arguments passed to the filter. Defaults to
|
|
|
|
|
`{FORMAT}`.
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- ([Pandoc](#type-pandoc)) Filtered document
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
-- Assumes `some_blocks` contains blocks for which a
|
|
|
|
|
-- separate literature section is required.
|
|
|
|
|
local sub_doc = pandoc.Pandoc(some_blocks, metadata)
|
|
|
|
|
sub_doc_with_bib = pandoc.utils.run_json_filter(
|
|
|
|
|
sub_doc,
|
|
|
|
|
'pandoc-citeproc'
|
|
|
|
|
)
|
|
|
|
|
some_blocks = sub_doc.blocks -- some blocks with bib
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### normalize\_date {#pandoc.utils.normalize_date}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`normalize_date (date_string)`
|
2017-12-23 13:35:27 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Parse a date and convert (if possible) to "YYYY-MM-DD" format.
|
|
|
|
|
We limit years to the range 1601-9999 (ISO 8601 accepts greater
|
|
|
|
|
than or equal to 1583, but MS Word only accepts dates starting
|
|
|
|
|
1601).
|
2017-12-23 13:35:27 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-12-23 13:35:27 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
- A date string, or nil when the conversion failed.
|
2017-12-23 13:35:27 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### sha1 {#pandoc.utils.sha1}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`sha1 (contents)`
|
2017-12-21 22:30:59 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns the SHA1 has of the contents.
|
2017-12-21 22:30:59 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-12-21 22:30:59 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
- SHA1 hash of the contents.
|
2017-12-21 22:30:59 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-12-21 22:30:59 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local fp = pandoc.utils.sha1("foobar")
|
2017-12-21 22:30:59 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### stringify {#pandoc.utils.stringify}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`stringify (element)`
|
2017-12-22 20:29:00 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Converts the given element (Pandoc, Meta, Block, or Inline) into
|
|
|
|
|
a string with all formatting removed.
|
2017-12-22 20:29:00 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-12-22 20:29:00 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
- A plain string representation of the given element.
|
2017-12-22 20:29:00 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-12-22 20:29:00 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local inline = pandoc.Emph{pandoc.Str 'Moin'}
|
|
|
|
|
-- outputs "Moin"
|
|
|
|
|
print(pandoc.utils.stringify(inline))
|
2017-12-22 20:29:00 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### to\_roman\_numeral {#pandoc.utils.to_roman_numeral}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`to_roman_numeral (integer)`
|
2017-12-23 11:53:26 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Converts an integer \< 4000 to uppercase roman numeral.
|
2017-12-23 11:53:26 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-12-23 11:53:26 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
- A roman numeral string.
|
2017-12-23 11:53:26 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-12-23 11:53:26 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local to_roman_numeral = pandoc.utils.to_roman_numeral
|
|
|
|
|
local pandoc_birth_year = to_roman_numeral(2006)
|
|
|
|
|
-- pandoc_birth_year == 'MMVI'
|
2017-12-23 11:53:26 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### to\_simple\_table {#pandoc.utils.to_simple_table}
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
|
|
|
|
`to_simple_table (table)`
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Creates a [SimpleTable] out of a [Table] block.
|
2020-09-21 00:48:31 +02:00
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- a simple table object ([SimpleTable])
|
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
local simple = pandoc.utils.to_simple_table(table)
|
|
|
|
|
-- modify, using pre pandoc 2.10 methods
|
|
|
|
|
simple.caption = pandoc.SmallCaps(simple.caption)
|
|
|
|
|
-- create normal table block again
|
|
|
|
|
table = pandoc.utils.from_simple_table(simple)
|
|
|
|
|
|
2021-12-21 09:40:23 +01:00
|
|
|
|
### type {#pandoc.utils.type}
|
|
|
|
|
|
|
|
|
|
`type (value)`
|
|
|
|
|
|
|
|
|
|
Pandoc-friendly version of Lua's default `type` function,
|
|
|
|
|
returning the type of a value. This function works with all types
|
2022-02-06 09:43:58 +01:00
|
|
|
|
listed in section [Lua type reference][], except if noted
|
|
|
|
|
otherwise.
|
2021-12-21 09:40:23 +01:00
|
|
|
|
|
|
|
|
|
The function works by checking the metafield `__name`. If the
|
|
|
|
|
argument has a string-valued metafield `__name`, then it returns
|
|
|
|
|
that string. Otherwise it behaves just like the normal `type`
|
|
|
|
|
function.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`value`
|
|
|
|
|
: any Lua value
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- type of the given value (string)
|
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
-- Prints one of 'string', 'boolean', 'Inlines', 'Blocks',
|
|
|
|
|
-- 'table', and 'nil', corresponding to the Haskell constructors
|
|
|
|
|
-- MetaString, MetaBool, MetaInlines, MetaBlocks, MetaMap,
|
|
|
|
|
-- and an unset value, respectively.
|
|
|
|
|
function Meta (meta)
|
|
|
|
|
print('type of metavalue `author`:', pandoc.utils.type(meta.author))
|
|
|
|
|
end
|
|
|
|
|
|
2017-12-21 22:30:59 +01:00
|
|
|
|
# Module pandoc.mediabag
|
|
|
|
|
|
|
|
|
|
The `pandoc.mediabag` module allows accessing pandoc's media
|
2017-09-30 09:56:08 +02:00
|
|
|
|
storage. The "media bag" is used when pandoc is called with the
|
2019-10-27 23:09:20 +01:00
|
|
|
|
`--extract-media` or (for HTML only) `--self-contained` option.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
The module is loaded as part of module `pandoc` and can either
|
|
|
|
|
be accessed via the `pandoc.mediabag` field, or explicitly
|
|
|
|
|
required, e.g.:
|
2019-02-09 09:52:51 +01:00
|
|
|
|
|
|
|
|
|
local mb = require 'pandoc.mediabag'
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### delete {#pandoc.mediabag.delete}
|
2019-02-16 13:35:16 +01:00
|
|
|
|
|
|
|
|
|
`delete (filepath)`
|
|
|
|
|
|
|
|
|
|
Removes a single entry from the media bag.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`filepath`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: filename of the item to be deleted. The media bag will be
|
|
|
|
|
left unchanged if no entry with the given filename exists.
|
2019-02-16 13:35:16 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### empty {#pandoc.mediabag.empty}
|
2019-02-16 13:20:33 +01:00
|
|
|
|
|
|
|
|
|
`empty ()`
|
|
|
|
|
|
|
|
|
|
Clear-out the media bag, deleting all items.
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### insert {#pandoc.mediabag.insert}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`insert (filepath, mime_type, contents)`
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2021-02-04 19:07:59 +01:00
|
|
|
|
Adds a new entry to pandoc's media bag. Replaces any existing
|
|
|
|
|
mediabag entry with the same `filepath`.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`filepath`
|
2019-01-30 21:37:14 +01:00
|
|
|
|
: filename and path relative to the output folder.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`mime_type`
|
2021-02-04 19:07:59 +01:00
|
|
|
|
: the file's MIME type; use `nil` if unknown or unavailable.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`contents`
|
2019-01-30 21:37:14 +01:00
|
|
|
|
: the binary contents of the file.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local fp = "media/hello.txt"
|
|
|
|
|
local mt = "text/plain"
|
|
|
|
|
local contents = "Hello, World!"
|
2019-05-30 20:03:23 +02:00
|
|
|
|
pandoc.mediabag.insert(fp, mt, contents)
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### items {#pandoc.mediabag.items}
|
2019-02-15 17:13:04 +01:00
|
|
|
|
|
|
|
|
|
`items ()`
|
|
|
|
|
|
|
|
|
|
Returns an iterator triple to be used with Lua's generic `for`
|
|
|
|
|
statement. The iterator returns the filepath, MIME type, and
|
|
|
|
|
content of a media bag item on each invocation. Items are
|
|
|
|
|
processed one-by-one to avoid excessive memory use.
|
|
|
|
|
|
|
|
|
|
This function should be used only when full access to all items,
|
|
|
|
|
including their contents, is required. For all other cases,
|
2022-02-06 09:43:58 +01:00
|
|
|
|
[`list`](#pandoc.mediabag.list) should be preferred.
|
2019-02-15 17:13:04 +01:00
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
- The iterator function; must be called with the iterator
|
|
|
|
|
state and the current iterator value.
|
|
|
|
|
- Iterator state -- an opaque value to be passed to the
|
|
|
|
|
iterator function.
|
2019-08-08 20:21:31 +02:00
|
|
|
|
- Initial iterator value.
|
2019-02-15 17:13:04 +01:00
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
|
|
for fp, mt, contents in pandoc.mediabag.items() do
|
|
|
|
|
-- print(fp, mt, contents)
|
|
|
|
|
end
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### list {#pandoc.mediabag.list}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`list ()`
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Get a summary of the current media bag contents.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: A list of elements summarizing each entry in the media
|
|
|
|
|
bag. The summary item contains the keys `path`, `type`, and
|
|
|
|
|
`length`, giving the filepath, MIME type, and length of contents
|
|
|
|
|
in bytes, respectively.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
-- calculate the size of the media bag.
|
|
|
|
|
local mb_items = pandoc.mediabag.list()
|
|
|
|
|
local sum = 0
|
2019-10-27 23:09:20 +01:00
|
|
|
|
for i = 1, #mb_items do
|
2019-01-30 21:37:14 +01:00
|
|
|
|
sum = sum + mb_items[i].length
|
|
|
|
|
end
|
|
|
|
|
print(sum)
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### lookup {#pandoc.mediabag.lookup}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`lookup (filepath)`
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Lookup a media item in the media bag, and return its MIME type
|
|
|
|
|
and contents.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`filepath`
|
2019-01-30 21:37:14 +01:00
|
|
|
|
: name of the file to look up.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-02-16 12:11:58 +01:00
|
|
|
|
- the entry's MIME type, or nil if the file was not found.
|
2019-01-30 21:37:14 +01:00
|
|
|
|
- contents of the file, or nil if the file was not found.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local filename = "media/diagram.png"
|
|
|
|
|
local mt, contents = pandoc.mediabag.lookup(filename)
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### fetch {#pandoc.mediabag.fetch}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2021-02-04 15:29:39 +01:00
|
|
|
|
`fetch (source)`
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Fetches the given source from a URL or local file. Returns two
|
|
|
|
|
values: the contents of the file and the MIME type (or an empty
|
|
|
|
|
string).
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2021-02-04 15:29:39 +01:00
|
|
|
|
The function will first try to retrieve `source` from the
|
|
|
|
|
mediabag; if that fails, it will try to download it or read it
|
|
|
|
|
from the local file system while respecting pandoc's "resource
|
|
|
|
|
path" setting.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`source`
|
2021-02-04 15:29:39 +01:00
|
|
|
|
: path to a resource; either a local file path or URI
|
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-10-01 08:00:14 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
- the entries MIME type, or nil if the file was not found.
|
|
|
|
|
- contents of the file, or nil if the file was not found.
|
2017-10-01 08:00:14 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Usage:
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
local diagram_url = "https://pandoc.org/diagram.jpg"
|
2021-02-04 15:29:39 +01:00
|
|
|
|
local mt, contents = pandoc.mediabag.fetch(diagram_url)
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
|
|
|
|
# Module pandoc.List
|
|
|
|
|
|
2021-03-28 09:14:58 +02:00
|
|
|
|
This module defines pandoc's list type. It comes with useful
|
2020-01-10 20:13:06 +01:00
|
|
|
|
methods and convenience functions.
|
|
|
|
|
|
|
|
|
|
## Constructor
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List([table])`]{#pandoc.list}
|
2020-01-10 20:13:06 +01:00
|
|
|
|
|
|
|
|
|
: Create a new List. If the optional argument `table` is given,
|
|
|
|
|
set the metatable of that value to `pandoc.List`. This is an
|
2022-02-06 09:43:58 +01:00
|
|
|
|
alias for [`pandoc.List:new([table])`](#pandoc.list:new).
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
|
|
|
|
## Metamethods
|
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:__concat (list)` {#pandoc.list:__concat}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Concatenates two lists.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`list`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: second list concatenated to the first
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: a new list containing all elements from list1 and
|
|
|
|
|
list2
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-30 20:07:44 +01:00
|
|
|
|
### `pandoc.List:__eq (a, b)` {#pandoc.list:__eq}
|
2021-12-23 15:48:09 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Compares two lists for equality. The lists are taken as equal
|
|
|
|
|
if and only if they are of the same type (i.e., have the same
|
|
|
|
|
non-nil metatable), have the same length, and if all elements
|
|
|
|
|
are equal.
|
2021-12-23 15:48:09 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2021-12-23 15:48:09 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`a`, `b`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: any Lua object
|
2021-12-23 15:48:09 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns:
|
2021-12-23 15:48:09 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
- `true` if the two lists are equal, `false` otherwise.
|
2021-12-23 15:48:09 +01:00
|
|
|
|
|
2017-12-01 17:14:28 +01:00
|
|
|
|
## Methods
|
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:clone ()` {#pandoc.list:clone}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns a (shallow) copy of the list.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:extend (list)` {#pandoc.list:extend}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Adds the given list to the end of this list.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`list`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: list to appended
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:find (needle, init)` {#pandoc.list:find}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns the value and index of the first occurrence of the
|
|
|
|
|
given item.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`needle`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: item to search for
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`init`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: index at which the search is started
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: first item equal to the needle, or nil if no such
|
|
|
|
|
item exists.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:find_if (pred, init)` {#pandoc.list:find_if}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns the value and index of the first element for which
|
|
|
|
|
the predicate holds true.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`pred`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: the predicate function
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`init`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: index at which the search is started
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: first item for which \`test\` succeeds, or nil if
|
|
|
|
|
no such item exists.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:filter (pred)` {#pandoc.list:filter}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns a new list containing all items satisfying a given
|
|
|
|
|
condition.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`pred`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: condition items must satisfy.
|
2020-01-11 20:00:02 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns: a new list containing all items for which \`test\`
|
|
|
|
|
was true.
|
2020-01-11 20:00:02 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:includes (needle, init)` {#pandoc.list:includes}
|
2020-01-11 20:00:02 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Checks if the list has an item equal to the given needle.
|
2020-01-11 20:00:02 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2020-01-11 20:00:02 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`needle`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: item to search for
|
2020-01-11 20:00:02 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`init`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: index at which the search is started
|
2020-01-11 20:00:02 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: true if a list item is equal to the needle, false
|
|
|
|
|
otherwise
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:insert ([pos], value)` {#pandoc.list:insert}
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Inserts element `value` at position `pos` in list, shifting
|
|
|
|
|
elements to the next-greater index if necessary.
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
This function is identical to
|
|
|
|
|
[`table.insert`](https://www.lua.org/manual/5.3/manual.html#6.6).
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`pos`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: index of the new value; defaults to length of the list + 1
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`value`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: value to insert into the list
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:map (fn)` {#pandoc.list:map}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Returns a copy of the current list by applying the given
|
|
|
|
|
function to all elements.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`fn`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: function which is applied to all list items.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:new([table])` {#pandoc.list:new}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Create a new List. If the optional argument `table` is given,
|
|
|
|
|
set the metatable of that value to `pandoc.List`.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`table`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: table which should be treatable as a list; defaults to an
|
|
|
|
|
empty table
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: the updated input value
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:remove ([pos])` {#pandoc.list:remove}
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Removes the element at position `pos`, returning the value
|
|
|
|
|
of the removed element.
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
This function is identical to
|
|
|
|
|
[`table.remove`](https://www.lua.org/manual/5.3/manual.html#6.6).
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`pos`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: position of the list value that will be removed; defaults
|
|
|
|
|
to the index of the last element
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Returns: the removed element
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:24:39 +01:00
|
|
|
|
### `pandoc.List:sort ([comp])` {#pandoc.list:sort}
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Sorts list elements in a given order, in-place. If `comp` is
|
2022-02-06 09:43:58 +01:00
|
|
|
|
given, then it must be a function that receives two list
|
|
|
|
|
elements and returns true when the first element must come
|
|
|
|
|
before the second in the final order (so that, after the
|
|
|
|
|
sort, `i < j` implies `not comp(list[j],list[i]))`. If comp
|
|
|
|
|
is not given, then the standard Lua operator `<` is used
|
|
|
|
|
instead.
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Note that the comp function must define a strict partial
|
|
|
|
|
order over the elements in the list; that is, it must be
|
|
|
|
|
asymmetric and transitive. Otherwise, no valid sort may be
|
|
|
|
|
possible.
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
The sort algorithm is not stable: elements considered equal
|
|
|
|
|
by the given order may have their relative positions changed
|
|
|
|
|
by the sort.
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
This function is identical to
|
|
|
|
|
[`table.sort`](https://www.lua.org/manual/5.3/manual.html#6.6).
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:22:18 +01:00
|
|
|
|
Parameters:
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`comp`
|
2022-01-08 08:22:18 +01:00
|
|
|
|
: Comparison function as described above.
|
2020-01-11 20:35:56 +01:00
|
|
|
|
|
2021-01-27 15:17:39 +01:00
|
|
|
|
# Module pandoc.path
|
|
|
|
|
|
|
|
|
|
Module for file path manipulations.
|
|
|
|
|
|
|
|
|
|
## Static Fields {#pandoc.path-fields}
|
|
|
|
|
|
|
|
|
|
### separator {#pandoc.path.separator}
|
|
|
|
|
|
|
|
|
|
The character that separates directories.
|
|
|
|
|
|
|
|
|
|
### search_path_separator {#pandoc.path.search_path_separator}
|
|
|
|
|
|
|
|
|
|
The character that is used to separate the entries in the `PATH`
|
|
|
|
|
environment variable.
|
|
|
|
|
|
|
|
|
|
## Functions {#pandoc.path-functions}
|
|
|
|
|
|
|
|
|
|
### directory (filepath) {#pandoc.path.directory}
|
|
|
|
|
|
2021-02-02 18:21:29 +01:00
|
|
|
|
Gets the directory name, i.e., removes the last directory
|
|
|
|
|
separator and everything after from the given path.
|
2021-01-27 15:17:39 +01:00
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`filepath`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path (string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- The filepath up to the last directory separator. (string)
|
|
|
|
|
|
|
|
|
|
### filename (filepath) {#pandoc.path.filename}
|
|
|
|
|
|
|
|
|
|
Get the file name.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`filepath`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path (string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- File name part of the input path. (string)
|
|
|
|
|
|
|
|
|
|
### is_absolute (filepath) {#pandoc.path.is_absolute}
|
|
|
|
|
|
|
|
|
|
Checks whether a path is absolute, i.e. not fixed to a root.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`filepath`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path (string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
2021-09-05 07:47:01 +02:00
|
|
|
|
- `true` if `filepath` is an absolute path, `false` otherwise.
|
2021-01-27 15:17:39 +01:00
|
|
|
|
(boolean)
|
|
|
|
|
|
|
|
|
|
### is_relative (filepath) {#pandoc.path.is_relative}
|
|
|
|
|
|
|
|
|
|
Checks whether a path is relative or fixed to a root.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`filepath`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path (string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
2021-09-05 07:47:01 +02:00
|
|
|
|
- `true` if `filepath` is a relative path, `false` otherwise.
|
2021-01-27 15:17:39 +01:00
|
|
|
|
(boolean)
|
|
|
|
|
|
|
|
|
|
### join (filepaths) {#pandoc.path.join}
|
|
|
|
|
|
|
|
|
|
Join path elements back together by the directory separator.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`filepaths`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path components (list of strings)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- The joined path. (string)
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### make_relative (path, root[, unsafe]) {#pandoc.path.make_relative}
|
2021-01-27 15:17:39 +01:00
|
|
|
|
|
|
|
|
|
Contract a filename, based on a relative path. Note that the
|
|
|
|
|
resulting path will usually not introduce `..` paths, as the
|
|
|
|
|
presence of symlinks means `../b` may not reach `a/b` if it starts
|
2022-02-06 09:43:58 +01:00
|
|
|
|
from `a/c`. For a worked example see [this blog
|
|
|
|
|
post](https://neilmitchell.blogspot.co.uk/2015/10/filepaths-are-subtle-symlinks-are-hard.html).
|
2021-01-27 15:17:39 +01:00
|
|
|
|
|
|
|
|
|
Set `unsafe` to a truthy value to a allow `..` in paths.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`path`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path to be made relative (string)
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`root`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: root path (string)
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`unsafe`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: whether to allow `..` in the result. (boolean)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- contracted filename (string)
|
|
|
|
|
|
|
|
|
|
### normalize (filepath) {#pandoc.path.normalize}
|
|
|
|
|
|
|
|
|
|
Normalizes a path.
|
|
|
|
|
|
2021-02-02 18:21:29 +01:00
|
|
|
|
- `//` makes sense only as part of a (Windows) network drive;
|
|
|
|
|
elsewhere, multiple slashes are reduced to a single
|
|
|
|
|
`path.separator` (platform dependent).
|
|
|
|
|
- `/` becomes `path.separator` (platform dependent)
|
2021-01-27 15:17:39 +01:00
|
|
|
|
- `./` -\> ''
|
|
|
|
|
- an empty path becomes `.`
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`filepath`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path (string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- The normalized path. (string)
|
|
|
|
|
|
|
|
|
|
### split (filepath) {#pandoc.path.split}
|
|
|
|
|
|
|
|
|
|
Splits a path by the directory separator.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`filepath`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path (string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- List of all path components. (list of strings)
|
|
|
|
|
|
|
|
|
|
### split_extension (filepath) {#pandoc.path.split_extension}
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Splits the last extension from a file path and returns the parts. The
|
|
|
|
|
extension, if present, includes the leading separator; if the path has
|
|
|
|
|
no extension, then the empty string is returned as the extension.
|
2021-01-27 15:17:39 +01:00
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`filepath`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: path (string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- filepath without extension (string)
|
|
|
|
|
|
|
|
|
|
- extension or empty string (string)
|
|
|
|
|
|
|
|
|
|
### split_search_path (search_path) {#pandoc.path.split_search_path}
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Takes a string and splits it on the `search_path_separator` character.
|
|
|
|
|
Blank items are ignored on Windows, and converted to `.` on Posix. On
|
|
|
|
|
Windows path elements are stripped of quotes.
|
2021-01-27 15:17:39 +01:00
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-30 20:06:30 +01:00
|
|
|
|
`search_path`
|
2021-01-27 15:17:39 +01:00
|
|
|
|
: platform-specific search path (string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- list of directories in search path (list of strings)
|
|
|
|
|
|
2019-05-04 07:06:30 +02:00
|
|
|
|
# Module pandoc.system
|
|
|
|
|
|
|
|
|
|
Access to system information and functionality.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## Static Fields
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### arch {#pandoc.system.arch}
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
The machine architecture on which the program is running.
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### os {#pandoc.system.os}
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
The operating system on which the program is running.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
## Functions
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### environment {#pandoc.system.environment}
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
`environment ()`
|
|
|
|
|
|
|
|
|
|
Retrieve the entire environment as a string-indexed table.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
- A table mapping environment variables names to their string
|
|
|
|
|
value (table).
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### get\_working\_directory {#pandoc.system.get_working_directory}
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
`get_working_directory ()`
|
|
|
|
|
|
|
|
|
|
Obtain the current working directory as an absolute path.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
- The current working directory (string).
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### with\_environment {#pandoc.system.with_environment}
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
`with_environment (environment, callback)`
|
|
|
|
|
|
|
|
|
|
Run an action within a custom environment. Only the environment
|
|
|
|
|
variables given by `environment` will be set, when `callback` is
|
|
|
|
|
called. The original environment is restored after this function
|
|
|
|
|
finishes, even if an error occurs while running the callback
|
|
|
|
|
action.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`environment`
|
|
|
|
|
: Environment variables and their values to be set before
|
2022-02-06 09:43:58 +01:00
|
|
|
|
running `callback`. (table with string keys and string
|
|
|
|
|
values)
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
`callback`
|
|
|
|
|
: Action to execute in the custom environment (function)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- The result(s) of the call to `callback`
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### with\_temporary\_directory {#pandoc.system.with_temporary_directory}
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
`with_temporary_directory ([parent_dir,] templ, callback)`
|
|
|
|
|
|
|
|
|
|
Create and use a temporary directory inside the given directory.
|
|
|
|
|
The directory is deleted after the callback returns.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`parent_dir`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: Parent directory to create the directory in (string). If
|
|
|
|
|
this parameter is omitted, the system's canonical temporary
|
2019-05-04 07:06:30 +02:00
|
|
|
|
directory is used.
|
|
|
|
|
|
|
|
|
|
`templ`
|
|
|
|
|
: Directory name template (string).
|
|
|
|
|
|
|
|
|
|
`callback`
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Function which takes the name of the temporary directory as
|
|
|
|
|
its first argument (function).
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- The result of the call to `callback`.
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
### with\_working\_directory {#pandoc.system.with_working_directory}
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
`with_working_directory (directory, callback)`
|
|
|
|
|
|
|
|
|
|
Run an action within a different directory. This function will
|
|
|
|
|
change the working directory to `directory`, execute `callback`,
|
|
|
|
|
then switch back to the original working directory, even if an
|
|
|
|
|
error occurs while running the callback action.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`directory`
|
|
|
|
|
: Directory in which the given `callback` should be executed
|
|
|
|
|
(string)
|
|
|
|
|
|
|
|
|
|
`callback`
|
|
|
|
|
: Action to execute in the given directory (function)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- The result(s) of the call to `callback`
|
2019-05-19 15:26:00 +02:00
|
|
|
|
|
2022-01-04 10:38:02 +01:00
|
|
|
|
# Module pandoc.template
|
|
|
|
|
|
|
|
|
|
Handle pandoc templates.
|
|
|
|
|
|
|
|
|
|
### compile {#pandoc.template.compile}
|
|
|
|
|
|
|
|
|
|
`compile (template[, templates_path])`
|
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
Compiles a template string into a [Template](#type-template)
|
|
|
|
|
object usable by pandoc.
|
2022-01-04 10:38:02 +01:00
|
|
|
|
|
2022-02-06 09:43:58 +01:00
|
|
|
|
If the `templates_path` parameter is specified, should be the
|
|
|
|
|
file path associated with the template. It is used when checking
|
|
|
|
|
for partials. Partials will be taken only from the default data
|
|
|
|
|
files if this parameter is omitted.
|
2022-01-04 10:38:02 +01:00
|
|
|
|
|
|
|
|
|
An error is raised if compilation fails.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`template`
|
2022-01-04 10:38:02 +01:00
|
|
|
|
: template string (string)
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`templates_path`
|
2022-01-04 10:38:02 +01:00
|
|
|
|
: parameter to determine a default path and extension for
|
|
|
|
|
partials; uses the data files templates path by default.
|
|
|
|
|
(string)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- compiled template (Template)
|
|
|
|
|
|
|
|
|
|
### default {#pandoc.template.default}
|
|
|
|
|
|
|
|
|
|
`default ([writer])`
|
|
|
|
|
|
|
|
|
|
Returns the default template for a given writer as a string. An
|
|
|
|
|
error if no such template can be found.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`writer`
|
2022-02-06 09:43:58 +01:00
|
|
|
|
: name of the writer for which the template should be
|
|
|
|
|
retrieved; defaults to the global `FORMAT`.
|
2022-01-04 10:38:02 +01:00
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- raw template (string)
|
|
|
|
|
|
2019-05-19 15:26:00 +02:00
|
|
|
|
# Module pandoc.types
|
|
|
|
|
|
|
|
|
|
Constructors for types which are not part of the pandoc AST.
|
2019-05-29 22:58:35 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Version {#pandoc.types.version}
|
2019-05-29 22:58:35 +02:00
|
|
|
|
|
|
|
|
|
`Version (version_specifier)`
|
|
|
|
|
|
|
|
|
|
Creates a Version object.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
2022-01-08 08:32:53 +01:00
|
|
|
|
`version_specifier`
|
2019-05-29 22:58:35 +02:00
|
|
|
|
: Version specifier: this can be a version string like
|
|
|
|
|
`'2.7.3'`, a list of integers like `{2, 7, 3}`, a single
|
2020-01-11 20:55:02 +01:00
|
|
|
|
integer, or a [Version].
|
2019-05-29 22:58:35 +02:00
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
- A new [Version] object.
|