2017-09-30 16:45:31 +02:00
|
|
|
|
---
|
2017-11-21 01:51:45 +01:00
|
|
|
|
author:
|
|
|
|
|
- Albert Krewinkel
|
|
|
|
|
- John MacFarlane
|
2020-01-11 00:19:26 +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
|
|
|
|
|
|
|
|
|
|
Pandoc has long supported filters, which allow the pandoc
|
|
|
|
|
abstract syntax tree (AST) to be manipulated between the parsing
|
2018-09-08 01:29:21 +02:00
|
|
|
|
and the writing phase. [Traditional pandoc
|
2019-08-08 20:21:31 +02:00
|
|
|
|
filters](https://pandoc.org/filters.html) accept a JSON
|
|
|
|
|
representation of the pandoc AST and produce an altered JSON
|
|
|
|
|
representation of the AST. They may be written in any
|
|
|
|
|
programming language, and invoked from pandoc using the
|
|
|
|
|
`--filter` option.
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
|
|
|
|
Although traditional filters are very flexible, they have a
|
2017-09-30 16:45:31 +02:00
|
|
|
|
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
|
2017-09-30 16:45:31 +02:00
|
|
|
|
filters in lua without any external dependencies at all. A lua
|
2019-11-13 08:16:51 +01:00
|
|
|
|
interpreter (version 5.3) and a lua library for creating pandoc
|
|
|
|
|
filters is built into the pandoc executable. Pandoc data types
|
|
|
|
|
are marshalled to lua directly, avoiding the overhead of writing
|
2017-08-22 07:14:26 +02:00
|
|
|
|
JSON to stdout and reading it from stdin.
|
|
|
|
|
|
|
|
|
|
Here is an example of a lua filter that converts strong emphasis
|
|
|
|
|
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
|
|
|
|
|
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: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
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
As you can see, the lua filter avoids the substantial overhead
|
|
|
|
|
associated with marshalling 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.
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
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
|
2017-12-29 07:02:59 +01:00
|
|
|
|
`--filter` and lua filters specified via `--lua-filter`) in the
|
|
|
|
|
order they appear on the command line.
|
2017-08-22 07:14:26 +02:00
|
|
|
|
|
|
|
|
|
Pandoc expects each lua file to return a list of filters. The
|
|
|
|
|
filters in that list are called sequentially, each on the result
|
|
|
|
|
of the previous filter. If there is no value returned by the
|
|
|
|
|
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
|
2017-09-30 16:45:31 +02:00
|
|
|
|
`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
|
|
|
|
|
subjected to the filter. Elements for which the filter contains
|
2017-09-30 16:45:31 +02:00
|
|
|
|
an entry (i.e. a function of the same name) are passed to lua
|
|
|
|
|
element filtering function. In other words, filter entries will
|
2017-08-22 07:14:26 +02:00
|
|
|
|
be called for each corresponding element in the document,
|
|
|
|
|
getting the respective element as input.
|
|
|
|
|
|
2017-09-17 10:34:24 +02:00
|
|
|
|
The return of a filter function must one of the following:
|
|
|
|
|
|
|
|
|
|
- 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
|
2019-08-08 20:21:31 +02: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,
|
|
|
|
|
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
|
|
|
|
|
2017-08-30 15:09:54 +02: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-04-30 15:55:45 +02:00
|
|
|
|
Elements without matching functions are left untouched.
|
|
|
|
|
|
2017-12-29 07:02:59 +01:00
|
|
|
|
See [module documentation](#module-pandoc) for a list of pandoc
|
|
|
|
|
elements.
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2020-01-11 00:19:26 +01:00
|
|
|
|
## Execution order
|
|
|
|
|
|
|
|
|
|
Element filter functions within a filter set are called in a
|
|
|
|
|
fixed order, skipping any which are not present:
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
1. functions for [*Inline* elements](#type-inline),
|
|
|
|
|
2. functions for [*Block* elements](#type-block) ,
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
|
2018-02-24 23:32:03 +01:00
|
|
|
|
## Global variables
|
|
|
|
|
|
|
|
|
|
Pandoc passes additional data to Lua filters by setting global
|
|
|
|
|
variables.
|
|
|
|
|
|
|
|
|
|
`FORMAT`
|
|
|
|
|
: 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.
|
|
|
|
|
|
|
|
|
|
`PANDOC_READER_OPTIONS`
|
|
|
|
|
: Table of the options which were provided to the parser.
|
|
|
|
|
|
|
|
|
|
`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`
|
|
|
|
|
: 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
|
2020-01-11 20:55:02 +01:00
|
|
|
|
variable is of type [CommonState] and
|
2018-10-26 07:12:14 +02:00
|
|
|
|
is read-only.
|
2017-09-27 05:20:09 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
# Pandoc Module
|
2017-04-30 15:55:45 +02:00
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
The `pandoc` lua module is loaded into the filter's lua
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
2017-10-03 23:20:48 +02:00
|
|
|
|
Some pandoc functions have been made available in lua:
|
|
|
|
|
|
2020-01-11 20:55:02 +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;
|
2020-01-11 20:55:02 +01:00
|
|
|
|
- [`read`](#pandoc.read) allows filters to parse strings into pandoc
|
2017-12-29 07:02:59 +01:00
|
|
|
|
documents;
|
2020-01-11 20:55:02 +01:00
|
|
|
|
- [`pipe`](#pandoc.pipe) runs an external command with input from and
|
2017-12-29 07:02:59 +01:00
|
|
|
|
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
|
|
|
|
|
when added to `init.lua`. The snippet adds all unicode-aware
|
2019-08-08 20:21:31 +02: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()`).
|
|
|
|
|
|
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
|
|
|
|
|
useful lua filters (which may also serve as good examples) is
|
|
|
|
|
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
|
|
|
|
|
current date:
|
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)
|
|
|
|
|
m.date = os.date("%B %e, %Y")
|
|
|
|
|
return m
|
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2017-08-22 07:14:26 +02:00
|
|
|
|
## Extracting information about links
|
2017-06-28 15:31:42 +02:00
|
|
|
|
|
2017-09-30 16:45:31 +02:00
|
|
|
|
This filter prints a table of all the URLs linked to in the
|
|
|
|
|
document, together with the number of links to that URL.
|
2017-06-28 15:31:42 +02:00
|
|
|
|
|
2019-11-03 06:55:58 +01:00
|
|
|
|
``` lua
|
2017-06-28 15:31:42 +02:00
|
|
|
|
links = {}
|
|
|
|
|
|
|
|
|
|
function Link (el)
|
|
|
|
|
if links[el.target] then
|
|
|
|
|
links[el.target] = links[el.target] + 1
|
|
|
|
|
else
|
|
|
|
|
links[el.target] = 1
|
|
|
|
|
end
|
|
|
|
|
return el
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function Doc (blocks, meta)
|
|
|
|
|
function strCell(str)
|
|
|
|
|
return {pandoc.Plain{pandoc.Str(str)}}
|
|
|
|
|
end
|
|
|
|
|
local caption = {pandoc.Str "Link", pandoc.Space(), pandoc.Str "count"}
|
|
|
|
|
local aligns = {pandoc.AlignDefault, pandoc.AlignLeft}
|
|
|
|
|
local widths = {0.8, 0.2}
|
|
|
|
|
local headers = {strCell "Target", strCell "Count"}
|
|
|
|
|
local rows = {}
|
|
|
|
|
for link, count in pairs(links) do
|
|
|
|
|
rows[#rows + 1] = {strCell(link), strCell(count)}
|
|
|
|
|
end
|
|
|
|
|
return pandoc.Doc(
|
|
|
|
|
{pandoc.Table(caption, aligns, widths, headers, rows)},
|
|
|
|
|
meta
|
|
|
|
|
)
|
|
|
|
|
end
|
|
|
|
|
```
|
2017-08-21 19:00:51 +02:00
|
|
|
|
|
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
|
|
|
|
|
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
|
2019-11-03 06:55:58 +01:00
|
|
|
|
if type(v) == 'table' and v.t == 'MetaInlines' then
|
|
|
|
|
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
|
|
|
|
|
pages. It converts level-1 headers to uppercase (using
|
|
|
|
|
`walk_block` 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
|
2017-11-18 22:33:37 +01:00
|
|
|
|
-- we use preloaded text to get a UTF-8 aware 'upper' function
|
|
|
|
|
local text = require('text')
|
|
|
|
|
|
2017-11-11 17:01:38 +01:00
|
|
|
|
function Header(el)
|
2017-11-12 01:18:39 +01:00
|
|
|
|
if el.level == 1 then
|
|
|
|
|
return pandoc.walk_block(el, {
|
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))
|
2017-11-11 17:01:38 +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,
|
|
|
|
|
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
|
|
|
|
|
document, since the latter will count markup characters, like
|
|
|
|
|
the `#` in front of an ATX header, or tags in HTML documents, as
|
|
|
|
|
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:
|
|
|
|
|
pandoc.walk_block(pandoc.Div(el.blocks), wordcount)
|
|
|
|
|
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
|
2019-08-08 20:21:31 +02: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
|
2017-11-21 21:20:28 +01:00
|
|
|
|
local function tikz2image(src, filetype, outfile)
|
|
|
|
|
local tmp = os.tmpname()
|
|
|
|
|
local tmpdir = string.match(tmp, "^(.*[\\/])") or "."
|
|
|
|
|
local f = io.open(tmp .. ".tex", 'w')
|
2019-04-16 06:39:03 +02:00
|
|
|
|
f:write("\\documentclass{standalone}\n\\usepackage{xcolor}\n\\usepackage{tikz}\n\\begin{document}\n\\nopagecolor\n")
|
2017-11-21 21:20:28 +01:00
|
|
|
|
f:write(src)
|
|
|
|
|
f:write("\n\\end{document}\n")
|
|
|
|
|
f:close()
|
|
|
|
|
os.execute("pdflatex -output-directory " .. tmpdir .. " " .. tmp)
|
|
|
|
|
if filetype == 'pdf' then
|
|
|
|
|
os.rename(tmp .. ".pdf", outfile)
|
|
|
|
|
else
|
2019-04-16 06:39:03 +02:00
|
|
|
|
os.execute("pdf2svg " .. tmp .. ".pdf " .. outfile)
|
2017-11-21 21:20:28 +01:00
|
|
|
|
end
|
|
|
|
|
os.remove(tmp .. ".tex")
|
|
|
|
|
os.remove(tmp .. ".pdf")
|
|
|
|
|
os.remove(tmp .. ".log")
|
|
|
|
|
os.remove(tmp .. ".aux")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
extension_for = {
|
2019-04-16 06:39:03 +02:00
|
|
|
|
html = 'svg',
|
|
|
|
|
html4 = 'svg',
|
|
|
|
|
html5 = 'svg',
|
2017-11-21 21:20:28 +01:00
|
|
|
|
latex = 'pdf',
|
|
|
|
|
beamer = 'pdf' }
|
|
|
|
|
|
|
|
|
|
local function file_exists(name)
|
|
|
|
|
local f = io.open(name, 'r')
|
|
|
|
|
if f ~= nil then
|
|
|
|
|
io.close(f)
|
|
|
|
|
return true
|
|
|
|
|
else
|
|
|
|
|
return false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2019-04-16 06:39:03 +02:00
|
|
|
|
local function starts_with(start, str)
|
|
|
|
|
return str:sub(1, #start) == start
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
2017-11-21 21:20:28 +01:00
|
|
|
|
function RawBlock(el)
|
2019-04-16 06:39:03 +02:00
|
|
|
|
if starts_with("\\begin{tikzpicture}", el.text) then
|
|
|
|
|
local filetype = extension_for[FORMAT] or "svg"
|
|
|
|
|
local fname = pandoc.sha1(el.text) .. "." .. filetype
|
|
|
|
|
if not file_exists(fname) then
|
|
|
|
|
tikz2image(el.text, filetype, fname)
|
|
|
|
|
end
|
|
|
|
|
return pandoc.Para({pandoc.Image({}, fname)})
|
|
|
|
|
else
|
|
|
|
|
return el
|
2017-11-21 21:20:28 +01:00
|
|
|
|
end
|
|
|
|
|
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
|
2020-01-11 20:55:02 +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
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Object equality is determined via [`pandoc.utils.equals`].
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
`blocks`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: document content ([List] of [Blocks])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`meta`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: document meta information ([Meta] object)
|
2018-10-19 08:12:57 +02: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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Object equality is determined via [`pandoc.utils.equals`].
|
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
|
|
|
|
|
|
|
|
|
Document meta information items.
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Object equality is determined via [`pandoc.utils.equals`].
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### MetaBlocks {#type-metablocks}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
A list of blocks usable as meta value ([List] of [Blocks])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `MetaBlocks` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### MetaBool {#type-metabool}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Plain Lua boolean value (boolean)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### MetaInlines {#type-metainlines}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
List of inlines used in metadata ([List] of [Inlines])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `MetaInlines` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### MetaList {#type-metalist}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
A list of other [MetaValues]. ([List] of [MetaValues])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `MetaList` (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### MetaMap {#type-metamap}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
A string-indexed map of meta-values. (table)
|
|
|
|
|
|
|
|
|
|
Fields:
|
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `MetaMap` (string)
|
|
|
|
|
|
|
|
|
|
*Note*: The fields will be shadowed if the map contains a field
|
|
|
|
|
with the same name as those listed.
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### MetaString {#type-metastring}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Plain Lua string value (string)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Block {#type-block}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Object equality is determined via [`pandoc.utils.equals`].
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### BlockQuote {#type-blockquote}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
A block quote element
|
|
|
|
|
|
|
|
|
|
content:
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: block content ([List] of [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
|
|
|
|
|
|
|
|
|
A bullet list
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: list of items ([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.
|
|
|
|
|
|
|
|
|
|
`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.
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
Generic block container with attributes
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: block content ([List] of [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`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: alias for `attr.classes` ([List] of
|
2019-08-08 20:21:31 +02:00
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
`level`
|
|
|
|
|
: header level (integer)
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: inline content ([List] of [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`
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: alias for `attr.attributes`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
([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.
|
|
|
|
|
|
|
|
|
|
`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.
|
|
|
|
|
|
|
|
|
|
`content`
|
|
|
|
|
: inline content
|
|
|
|
|
|
|
|
|
|
`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.
|
|
|
|
|
|
|
|
|
|
`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.
|
|
|
|
|
|
2019-02-01 21:03:05 +01:00
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: list items ([List] of [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
|
|
|
|
|
|
|
|
|
A paragraph
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: inline content ([List] of [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
|
|
|
|
|
|
|
|
|
Plain text, not a paragraph
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: inline content ([List] of [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.
|
|
|
|
|
|
|
|
|
|
`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.
|
|
|
|
|
|
|
|
|
|
`caption`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: table caption ([List] of [Inlines])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`aligns`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: column alignments ([List] of [Alignment]s)
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`widths`
|
|
|
|
|
: column widths (number)
|
|
|
|
|
|
|
|
|
|
`headers`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: header row ([List] of [table cells](#type-table-cell))
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`rows`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: table rows ([List] of [List]s of [table
|
|
|
|
|
cells](#type-table-cell))
|
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
|
2018-10-19 08:12:57 +02:00
|
|
|
|
horizontal alignment of a table column. `AlignLeft`,
|
|
|
|
|
`AlignRight`, and `AlignCenter` leads cell content tob be
|
|
|
|
|
left-aligned, right-aligned, and centered, respectively. The
|
|
|
|
|
default alignment is `AlignDefault` (often equivalent to
|
|
|
|
|
centered).
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Inline {#type-inline}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Object equality is determined via [`pandoc.utils.equals`].
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Cite {#type-cite}
|
2019-08-08 20:21:31 +02:00
|
|
|
|
|
2018-10-19 08:12:57 +02:00
|
|
|
|
Citation
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: ([List] of [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
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: inline content ([List] of [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
|
|
|
|
|
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`caption`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: text used to describe the image ([List] of [Inlines])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`src`
|
|
|
|
|
: path to the image file (string)
|
|
|
|
|
|
|
|
|
|
`title`
|
|
|
|
|
: brief image description
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: text for this link ([List] of [Inlines])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`target`
|
|
|
|
|
: the link target (string)
|
|
|
|
|
|
|
|
|
|
`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)
|
|
|
|
|
|
2019-06-05 23:48:48 +02:00
|
|
|
|
`mathtype`
|
2018-10-19 08:12:57 +02:00
|
|
|
|
: specifier determining whether the math content should be
|
|
|
|
|
shown inline (`InlineMath`) or on a separate line
|
|
|
|
|
(`DisplayMath`) (string)
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: ([List] of [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
|
|
|
|
|
|
|
|
|
|
`quotetype`
|
|
|
|
|
: type of quotes to be used; one of `SingleQuote` or
|
|
|
|
|
`DoubleQuote` (string)
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: quoted text ([List] of [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
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: ([List] of [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
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
|
`attr`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: attributes ([Attr])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: wrapped content ([List] of [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
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: inline content ([List] of [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
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: inline content ([List] of [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
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: inline content ([List] of [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
|
|
|
|
|
|
|
|
|
|
`content`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: inline content ([List] of [Inlines])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`tag`, `t`
|
|
|
|
|
: the literal `Superscript` (string)
|
|
|
|
|
|
|
|
|
|
## 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
|
2020-01-11 20:55:02 +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", on 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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Object equality is determined via [`pandoc.utils.equals`].
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
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.
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### Citation {#type-citation}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Single citation entry
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Object equality is determined via [`pandoc.utils.equals`].
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
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`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: citation prefix ([List] of [Inlines])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`suffix`
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: citation suffix ([List] of [Inlines])
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
`note_num`
|
|
|
|
|
: note number (integer)
|
|
|
|
|
|
|
|
|
|
`hash`
|
|
|
|
|
: hash (integer)
|
|
|
|
|
|
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 20:55:02 +01:00
|
|
|
|
Object equality is determined via [`pandoc.utils.equals`].
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
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-01-11 20:55:02 +01:00
|
|
|
|
## ReaderOptions {#type-readeroptions}
|
2018-10-19 08:12:57 +02:00
|
|
|
|
|
|
|
|
|
Pandoc reader options
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
(string)
|
|
|
|
|
|
|
|
|
|
`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`
|
|
|
|
|
: track changes setting for docx; one of `AcceptChanges`,
|
|
|
|
|
`RejectChanges`, and `AllChanges` (string)
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
`input_files`
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: List of input files from command line
|
2020-01-11 20:55:02 +01:00
|
|
|
|
([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`
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Path to search for resources like included images
|
2020-01-11 20:55:02 +01:00
|
|
|
|
([List] of strings)
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
|
|
|
|
`source_url`
|
|
|
|
|
: Absolute URL or directory of first source file (string or
|
|
|
|
|
nil)
|
|
|
|
|
|
|
|
|
|
`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
|
|
|
|
|
marshalling, are made instances of the `pandoc.List` type for
|
|
|
|
|
convenience. The `pandoc.List` type is defined in the
|
|
|
|
|
[*pandoc.List*](#module-pandoc.list) module. See there for
|
|
|
|
|
available methods.
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## LogMessage {#type-logmessage}
|
|
|
|
|
|
|
|
|
|
A pandoc log message. Objects have no fields, but can be
|
2019-08-08 20:21:31 +02:00
|
|
|
|
converted to a string via `tostring`.
|
2018-10-26 07:12:14 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Version {#type-version}
|
2019-05-19 15:26:00 +02: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
|
|
|
|
|
|
|
|
|
|
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'
|
|
|
|
|
|
|
|
|
|
### `must_be_at_least`
|
|
|
|
|
|
|
|
|
|
`must_be_at_least(actual, expected [, error_message])`
|
|
|
|
|
|
|
|
|
|
Raise an error message if the actual version is older than the
|
2019-05-29 22:58:35 +02:00
|
|
|
|
expected version; does nothing if actual is equal to or newer
|
|
|
|
|
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`
|
2019-08-08 20:21:31 +02: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'
|
|
|
|
|
)
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[Alignment]: #type-alignment
|
|
|
|
|
[Attr]: #type-attr
|
|
|
|
|
[Attributes]: #type-attributes
|
|
|
|
|
[Block]: #type-block
|
|
|
|
|
[Blocks]: #type-block
|
|
|
|
|
[Citation]: #type-citation
|
|
|
|
|
[Citations]: #type-citation
|
|
|
|
|
[CommonState]: #type-commonstate
|
|
|
|
|
[Inline]: #type-inline
|
|
|
|
|
[Inlines]: #type-inline
|
|
|
|
|
[List]: #type-list
|
|
|
|
|
[ListAttributes]: #type-listattributes
|
|
|
|
|
[Meta]: #type-meta
|
|
|
|
|
[MetaValue]: #type-metavalue
|
|
|
|
|
[MetaValues]: #type-metavalue
|
|
|
|
|
[LogMessage]: #type-logmessage
|
|
|
|
|
[Pandoc]: #type-pandoc
|
|
|
|
|
[Version]: #type-version
|
|
|
|
|
[`pandoc.utils.equals`]: #pandoc.utils.equals
|
|
|
|
|
|
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
|
|
|
|
|
2019-01-30 21:37:14 +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
|
|
|
|
|
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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Pandoc
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Pandoc (blocks[, meta])`]{#pandoc.pandoc}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: A complete pandoc document
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`blocks`:
|
|
|
|
|
: document content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`meta`:
|
|
|
|
|
: document meta data
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Meta
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Meta (table)`]{#pando.meta}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Create a new Meta object.
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`table`:
|
|
|
|
|
: table containing document meta information
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## MetaValue
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`MetaBlocks (blocks)`]{#pandoc.metablocks}
|
2017-12-01 17:58:12 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Meta blocks
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`blocks`:
|
|
|
|
|
: blocks
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`MetaInlines (inlines)`]{#pandoc.metainlines}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Meta inlines
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`inlines`:
|
|
|
|
|
: inlines
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`MetaList (meta_values)`]{#pandoc.metalist}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Meta list
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`meta_values`:
|
|
|
|
|
: list of meta values
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`MetaMap (key_value_map)`]{#pandoc.metamap}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Meta map
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`key_value_map`:
|
|
|
|
|
: a string-indexed map of meta values
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`MetaString (str)`]{#pandoc.metastring}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates string to be used in meta data.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`str`:
|
|
|
|
|
: string value
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`MetaBool (bool)`]{#pandoc.metabool}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates boolean to be used in meta data.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`bool`:
|
|
|
|
|
: boolean value
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
## Blocks
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`BlockQuote (content)`]{#pandoc.blockquote}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a block quote element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: block content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: block quote element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`BulletList (content)`]{#pandoc.bulletlist}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a bullet (i.e.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: list of items
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: bullet list element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`CodeBlock (text[, attr])`]{#pandoc.codeblock}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a code block element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`text`:
|
|
|
|
|
: code string
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`attr`:
|
|
|
|
|
: element attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: code block element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`DefinitionList (content)`]{#pandoc.definitionlist}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a definition list, containing terms and their
|
|
|
|
|
explanation.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: list of items
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: definition list element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Div (content[, attr])`]{#pandoc.div}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a div element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: block content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`attr`:
|
|
|
|
|
: element attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: div element
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Header (level, content[, attr])`]{#pandoc.header}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a header element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`level`:
|
|
|
|
|
: header level
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`attr`:
|
|
|
|
|
: element attributes
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: header element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`HorizontalRule ()`]{#pandoc.horizontalrule}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a horizontal rule.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: horizontal rule
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`LineBlock (content)`]{#pandoc.lineblock}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a line block element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: line block element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Null ()`]{#pandoc.null}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a null element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: null element
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`OrderedList (items[, listAttributes])`]{#pandoc.orderedlist}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates an ordered list.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`items`:
|
|
|
|
|
: list items
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`listAttributes`:
|
|
|
|
|
: list parameters
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: ordered list element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Para (content)`]{#pandoc.para}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a para element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: paragraph element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Plain (content)`]{#pandoc.plain}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a plain element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: plain element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`RawBlock (format, text)`]{#pandoc.rawblock}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a raw content block of the specified format.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`format`:
|
|
|
|
|
: format of content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`text`:
|
|
|
|
|
: string content
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: raw block element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Table (caption, aligns, widths, headers, rows)`]{#pandoc.table}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a table element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`caption`:
|
|
|
|
|
: table caption
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`aligns`:
|
|
|
|
|
: alignments
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`widths`:
|
|
|
|
|
: column widths
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`headers`:
|
|
|
|
|
: header row
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`rows`:
|
|
|
|
|
: table rows
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: table element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Inline
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Cite (content, citations)`]{#pandoc.cite}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Cite inline element
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: List of inlines
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`citations`:
|
|
|
|
|
: List of citations
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: citations element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Code (text[, attr])`]{#pandoc.code}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Code inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`text`:
|
|
|
|
|
: code string
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`attr`:
|
|
|
|
|
: additional attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: code element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Emph (content)`]{#pandoc.emph}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates an inline element representing emphasised text.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: emphasis element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Image (caption, src[, title[, attr]])`]{#pandoc.image}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Image inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`caption`:
|
|
|
|
|
: text used to describe the image
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`src`:
|
|
|
|
|
: path to the image file
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`title`:
|
|
|
|
|
: brief image description
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`attr`:
|
|
|
|
|
: additional attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: image element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`LineBreak ()`]{#pandoc.linebreak}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Create a LineBreak inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: linebreak element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Link (content, target[, title[, attr]])`]{#pandoc.link}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a link inline element, usually a hyperlink.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: text for this link
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`target`:
|
|
|
|
|
: the link target
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`title`:
|
|
|
|
|
: brief link description
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`attr`:
|
|
|
|
|
: additional attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: image element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Math (mathtype, text)`]{#pandoc.math}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Math element, either inline or displayed.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`mathtype`:
|
|
|
|
|
: rendering specifier
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`text`:
|
|
|
|
|
: Math content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: Math element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`DisplayMath (text)`]{#pandoc.displaymath}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a DisplayMath element (DEPRECATED).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`text`:
|
|
|
|
|
: Math content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: Math element
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`InlineMath (text)`]{#pandoc.inlinemath}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates an InlineMath inline element (DEPRECATED).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`text`:
|
|
|
|
|
: Math content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: Math element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Note (content)`]{#pandoc.note}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Note inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: footnote block content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Quoted (quotetype, content)`]{#pandoc.quoted}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Quoted inline element given the quote type and
|
|
|
|
|
quoted content.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`quotetype`:
|
|
|
|
|
: type of quotes to be used
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: quoted element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`SingleQuoted (content)`]{#pandoc.singlequoted}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a single-quoted inline element (DEPRECATED).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: quoted element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
See also: [Quoted](#type-quoted)
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`DoubleQuoted (content)`]{#pandoc.doublequoted}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a single-quoted inline element (DEPRECATED).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: quoted element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
See also: [Quoted](#type-quoted)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`RawInline (format, text)`]{#pandoc.rawinline}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a RawInline inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`format`:
|
|
|
|
|
: format of the contents
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`text`:
|
|
|
|
|
: string content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: raw inline element
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`SmallCaps (content)`]{#pandoc.smallcaps}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates text rendered in small caps
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: smallcaps element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`SoftBreak ()`]{#pandoc.softbreak}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a SoftBreak inline element.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: softbreak element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Space ()`]{#pandoc.space}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Create a Space inline element
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: space element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Span (content[, attr])`]{#pandoc.span}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Span inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`attr`:
|
|
|
|
|
: additional attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: span element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Str (text)`]{#pandoc.str}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Str inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`text`:
|
|
|
|
|
: content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: string element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Strikeout (content)`]{#pandoc.strikeout}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates text which is striked out.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: strikeout element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Strong (content)`]{#pandoc.strong}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Strong element, whose text is usually displayed in
|
|
|
|
|
a bold font.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: strong element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Subscript (content)`]{#pandoc.subscript}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Subscript inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: subscript element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Superscript (content)`]{#pandoc.superscript}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a Superscript inline element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`content`:
|
|
|
|
|
: inline content
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: strong element
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
## Element components
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Attr ([identifier[, classes[, attributes]]])`]{#pandoc.attr}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Create a new set of attributes (Attr).
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`identifier`:
|
|
|
|
|
: element identifier
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`classes`:
|
|
|
|
|
: element classes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`attributes`:
|
|
|
|
|
: table containing string keys and values
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: element attributes
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`Citation (id, mode[, prefix[, suffix[, note_num[, hash]]]])`]{#pandoc.citation}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a single citation.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`id`:
|
|
|
|
|
: citation identifier (like a bibtex key)
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`mode`:
|
|
|
|
|
: citation mode
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`prefix`:
|
|
|
|
|
: citation prefix
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`suffix`:
|
|
|
|
|
: citation suffix
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`note_num`:
|
|
|
|
|
: note number
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`hash`:
|
|
|
|
|
: hash number
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`ListAttributes ([start[, style[, delimiter]]])`]{#pandoc.listattributes}
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Creates a set of list attributes.
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`start`:
|
|
|
|
|
: number of the first list item
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`style`:
|
|
|
|
|
: style used for list numbering
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`delimiter`:
|
|
|
|
|
: delimiter of list numbers
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: list attributes table
|
2017-08-31 13:23:24 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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.
|
|
|
|
|
|
2020-01-11 20:55:02 +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.
|
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
|
2020-01-11 20:55:02 +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.
|
|
|
|
|
|
2020-01-11 20:55:02 +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.
|
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
|
|
|
|
: Functions which have moved to different modules
|
2018-10-11 22:28:24 +02:00
|
|
|
|
|
2017-12-29 09:58:47 +01:00
|
|
|
|
## Helper functions
|
2017-08-31 13:23:24 +02:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### pipe {#pandoc.pipe}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`pipe (command, args, input)`
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
- Output of command.
|
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
|
|
|
|
|
`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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### walk\_block {#pandoc.walk_block}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`walk_block (element, filter)`
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`element`:
|
|
|
|
|
: the block element
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`filter`:
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: a lua filter (table of functions) to be applied within the
|
|
|
|
|
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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### walk\_inline {#pandoc.walk_inline}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`walk_inline (element, filter)`
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`element`:
|
|
|
|
|
: the inline element
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`filter`:
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: a lua filter (table of functions) to be applied within the
|
|
|
|
|
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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### read {#pandoc.read}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`read (markup[, format])`
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`markup`:
|
|
|
|
|
: the markup to be parsed
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`format`:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
: format specification, defaults to `"markdown"`.
|
2017-12-29 09:04:21 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns: pandoc document
|
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
|
|
|
|
|
2017-12-21 22:30:59 +01:00
|
|
|
|
# Module pandoc.utils
|
|
|
|
|
|
|
|
|
|
This module exposes internal pandoc functions and utility
|
|
|
|
|
functions.
|
|
|
|
|
|
2019-08-08 20:21:31 +02: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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### blocks\_to\_inlines {#pandoc.utils.blocks_to_inlines}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`blocks_to_inlines (blocks[, sep])`
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`blocks`:
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: List of [Blocks](#type-block) to be flattened.
|
2018-07-30 19:55:25 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`sep`:
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: List of [Inlines](#type-inline) inserted as separator between
|
2019-08-08 20:21:31 +02:00
|
|
|
|
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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
- [List](#type-list) of [Inlines](#type-inline)
|
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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### equals {#pandoc.utils.equals}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
|
|
|
|
`equals (element1, element2)`
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Parameters:
|
2018-11-19 21:36:02 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`element1`, `element2`:
|
2020-01-11 20:55:02 +01:00
|
|
|
|
: Objects to be compared. Acceptable input types are [Pandoc],
|
|
|
|
|
[Meta], [MetaValue], [Block], [Inline], [Attr],
|
|
|
|
|
[ListAttributes], and [Citation].
|
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
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
### make\_sections {#pandoc.utils.make_sections}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-09-07 20:23:12 +02:00
|
|
|
|
`make_sections (number_sections, base_level, blocks)`
|
2017-12-23 22:39:05 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
Converst list of [Blocks](#type-block) into sections.
|
2019-09-07 20:23:12 +02:00
|
|
|
|
`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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Returns:
|
2017-12-23 22:39:05 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
- List of [Blocks](#type-block).
|
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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`doc`:
|
|
|
|
|
: the Pandoc document to filter
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`filter`:
|
|
|
|
|
: filter to run
|
2018-01-10 22:26:12 +01:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`args`:
|
|
|
|
|
: 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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2019-08-08 20:21:31 +02: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
|
|
|
|
|
2019-08-08 20:21:31 +02: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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
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
|
|
|
|
|
2019-08-08 20:21:31 +02: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:
|
|
|
|
|
|
|
|
|
|
`filepath`:
|
|
|
|
|
: filename of the item to be deleted. The media bag will be
|
|
|
|
|
left unchanged if no entry with the given filename exists.
|
|
|
|
|
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
Adds a new entry to pandoc's media bag.
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`filepath`:
|
|
|
|
|
: filename and path relative to the output folder.
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`mime_type`:
|
|
|
|
|
: the file's MIME type
|
2017-09-30 09:56:08 +02:00
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`contents`:
|
|
|
|
|
: 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,
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`list`](#pandoc.mediabag.list) should be preferred.
|
2019-02-15 17:13:04 +01:00
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
2019-08-08 20:21:31 +02: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.
|
|
|
|
|
- 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
|
|
|
|
|
2019-02-16 12:11:58 +01:00
|
|
|
|
Lookup a media item in the media bag, and return its MIME type
|
2019-01-30 21:37:14 +01:00
|
|
|
|
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
|
|
|
|
|
2019-01-30 21:37:14 +01:00
|
|
|
|
`filepath`:
|
|
|
|
|
: 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
|
|
|
|
|
|
|
|
|
`fetch (source, base_url)`
|
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
|
|
|
|
|
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"
|
2019-10-27 23:09:20 +01:00
|
|
|
|
local mt, contents = pandoc.mediabag.fetch(diagram_url, ".")
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
|
|
|
|
# Module pandoc.List
|
|
|
|
|
|
2020-01-10 20:13:06 +01:00
|
|
|
|
The this module defines pandoc's list type. It comes with useful
|
|
|
|
|
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
|
|
|
|
|
alias for [`pandoc.List:new([table])`](#pandoc.list:new).
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
|
|
|
|
## Metamethods
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:__concat (list)`]{#pandoc.list:__concat}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Concatenates two lists.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`list`:
|
|
|
|
|
: second list concatenated to the first
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: a new list containing all elements from list1 and
|
|
|
|
|
list2
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
|
|
|
|
## Methods
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:clone ()`]{#pandoc.list:clone}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Returns a (shallow) copy of the list.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:new([table])`]{#pandoc.list:new}
|
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`.
|
|
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
|
|
`table`:
|
|
|
|
|
: table which should be treatable as a list; defaults to an
|
|
|
|
|
empty table
|
|
|
|
|
|
|
|
|
|
Returns: the updated input value
|
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:includes (needle, init)`]{#pandoc.list:includes}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Checks if the list has an item equal to the given needle.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`needle`:
|
|
|
|
|
: item to search for
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`init`:
|
|
|
|
|
: index at which the search is started
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: true if a list item is equal to the needle, false
|
|
|
|
|
otherwise
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:find (needle, init)`]{#pandoc.list:find}
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Returns the value and index of the first occurrence of the
|
|
|
|
|
given item.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`needle`:
|
|
|
|
|
: item to search for
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`init`:
|
|
|
|
|
: index at which the search is started
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: first item equal to the needle, or nil if no such
|
|
|
|
|
item exists.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:find_if (pred, init)`]{#pandoc.list:find_if}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Returns the value and index of the first element for which
|
|
|
|
|
the predicate holds true.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`pred`:
|
|
|
|
|
: the predicate function
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`init`:
|
|
|
|
|
: index at which the search is started
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: first item for which \`test\` succeeds, or nil if
|
|
|
|
|
no such item exists.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:extend (list)`]{#pandoc.list:extend}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Adds the given list to the end of this list.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`list`:
|
|
|
|
|
: list to appended
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:map (fn)`]{#pandoc.list:map}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Returns a copy of the current list by applying the given
|
|
|
|
|
function to all elements.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`fn`:
|
|
|
|
|
: function which is applied to all list items.
|
2019-01-31 19:13:36 +01:00
|
|
|
|
|
2020-01-11 20:55:02 +01:00
|
|
|
|
[`pandoc.List:filter (pred)`]{#pandoc.list:filter}
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
: Returns a new list containing all items satisfying a given
|
|
|
|
|
condition.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Parameters:
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
`pred`:
|
|
|
|
|
: condition items must satisfy.
|
2017-12-01 17:14:28 +01:00
|
|
|
|
|
2019-08-08 20:21:31 +02:00
|
|
|
|
Returns: a new list containing all items for which \`test\`
|
|
|
|
|
was true.
|
2019-05-04 07:06:30 +02:00
|
|
|
|
|
|
|
|
|
# Module pandoc.system
|
|
|
|
|
|
|
|
|
|
Access to system information and functionality.
|
|
|
|
|
|
2020-01-11 20:55:02 +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.
|
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
running `callback`. (table with string keys and string
|
|
|
|
|
values)
|
|
|
|
|
|
|
|
|
|
`callback`
|
|
|
|
|
: Action to execute in the custom environment (function)
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
- The result(s) of the call to `callback`
|
|
|
|
|
|
2020-01-11 20:55:02 +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`
|
2019-08-08 20:21:31 +02: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`.
|
|
|
|
|
|
2020-01-11 20:55:02 +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
|
|
|
|
|
|
|
|
|
# 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:
|
|
|
|
|
|
|
|
|
|
`version`:
|
|
|
|
|
: 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.
|