Pandoc Lua 过滤器 - 类型引用
此部分描述了 Lua 过滤器可用的对象类型。有关创建这些对象的函数,请参阅 pandoc 模块 。
共有属性
clone
clone ()
除了只读对象之外,这里列出的所有类型的实例都可以通过 clone()
方法进行克隆。
使用示例:
local emph = pandoc.Emph {pandoc.Str 'important'}
local cloned_emph = emph:clone() -- 注意冒号
Pandoc
Pandoc 文档
此类型的值可以通过 pandoc.Pandoc
构造函数创建。只有当 Pandoc 值在 Haskell 中相等时,它们才在 Lua 中相等。
walk
walk(self, lua_filter)
将 Lua 过滤器应用于 Pandoc 元素。与全文档过滤器一样,可以通过设置过滤器中的 traverse
字段来控制遍历元素的顺序;请参阅 遍历顺序 部分。返回一个应用了过滤器的(深度)副本:原始元素保持不变。
参数:
参数 | 描述 |
---|---|
self |
元素 (Pandoc) |
lua_filter |
过滤函数映射 (table) |
结果:
- 过滤后的文档 ( Pandoc )
使用示例:
-- 返回 `pandoc.Pandoc{pandoc.Para{pandoc.Str 'Bye'}}`
return pandoc.Pandoc{pandoc.Para('Hi')}:walk {
Str = function (_) return 'Bye' end,
}
Meta
文档的元信息;字符串索引的 MetaValues 集合。
此类型的值可以通过 pandoc.Meta
构造函数创建。只有当元信息值在 Haskell 中相等时,它们才在 Lua 中相等。
MetaValue 类型
文档元信息的值。这不是一个单独的类型,而是描述了一组可以在期望 MetaValue
的地方使用的类型。这些类型对应于以下 Haskell 类型构造器:
- boolean → MetaBool
- string 或 number → MetaString
- Inlines → MetaInlines
- Blocks → MetaBlocks
- List/integer indexed table → MetaList
- string-indexed table → MetaMap
可以使用相应的构造器 pandoc.MetaBool
、pandoc.MetaString
、pandoc.MetaInlines
、pandoc.MetaBlocks
、pandoc.MetaList
和 pandoc.MetaMap
来确保值以预期的方式处理。例如,空表通常被视为 MetaMap
,但可以通过调用 pandoc.MetaList{}
将其转换为空的 MetaList
。然而,也可以通过使用通用函数如 pandoc.List
、pandoc.Inlines
或 pandoc.Blocks
来达到同样的效果。
使用函数 pandoc.utils.type 获取元数据值的类型。
Block
Block 值在 Lua 中仅当它们在 Haskell 中相等时才相等。
公共方法
walk
walk(self, lua_filter)
将 Lua 过滤器应用于块元素。与全文过滤器一样,可以通过设置过滤器的 traverse
字段来控制遍历元素的顺序;请参阅关于 遍历顺序 的部分。返回已应用过滤器的(深度)副本:原始元素保持不变。
注意
过滤器仅应用于子树,而不是
self
块元素。原因是如果允许过滤器删除元素或用多个块元素替换它,可能会导致意外的结果。
参数 | 描述 |
---|---|
self |
元素 (Block ) |
lua_filter |
过滤器函数的映射 (table) |
结果:
- 过滤后的块 ( Block )
示例代码:
-- 返回 `pandoc.Para{pandoc.Str 'Bye'}`
return pandoc.Para('Hi'):walk {
Str = function (_) return 'Bye' end,
}
BlockQuote
这是一个块引用元素。
此类型的值可通过 pandoc.BlockQuote
构造器创建。
字段 | 描述 |
---|---|
content |
块内容 ( Blocks ) |
tag , t |
字面量 BlockQuote ( string ) |
BulletList
这是一个项目符号列表。
此类型的值可通过 pandoc.BulletList
构造器创建。
字段 | 描述 |
---|---|
content |
列表项 ( 项目列表,即 List of Blocks ) |
tag , t |
字面量 BulletList ( string ) |
CodeBlock
代码块。
创建方式:使用 pandoc.CodeBlock
构造函数。
字段 | 描述 |
---|---|
text |
代码字符串 ( string ) |
attr |
元素属性 ( Attr ) |
identifier |
等同于 attr.identifier ( string ) |
classes |
等同于 attr.classes ( 字符串 列表 ) |
attributes |
等同于 attr.attributes ( Attributes ) |
tag , t |
字面量 CodeBlock ( string ) |
定义列表
包含术语及其解释的定义列表。
创建方式:使用 pandoc.DefinitionList
构造函数。
字段 | 描述 |
---|---|
content |
项列表 |
tag , t |
字面量 DefinitionList |
div
带有属性的泛型块容器。
创建方式:使用 pandoc.Div
构造函数。
字段 | 描述 |
---|---|
content |
块内容 ( Blocks ) |
attr |
元素属性 ( Attr ) |
identifier |
等同于 attr.identifier ( string ) |
classes |
等同于 attr.classes ( 字符串 列表 ) |
attributes |
等同于 attr.attributes ( Attributes ) |
tag , t |
字面量 Div ( string ) |
图像
带有标题和任意块内容的图像。
创建方式:使用 pandoc.Figure
构造函数。
字段 | 描述 |
---|---|
content |
块内容 ( Blocks ) |
caption |
图像标题 ( Caption ) |
attr |
元素属性 ( Attr ) |
identifier |
等同于 attr.identifier ( string ) |
classes |
等同于 attr.classes ( 字符串 列表 ) |
attributes |
等同于 attr.attributes ( Attributes ) |
tag , t |
字面量 Figure ( string ) |
标题
创建一个标题元素。
这种类型的值可以通过 pandoc.Header
构造函数创建。
字段 | 描述 |
---|---|
level |
标题级别( integer ) |
content |
内联内容( Inlines 类型 ) |
attr |
元素属性( Attr 类型 ) |
identifier |
等同于 attr.identifier ( string ) |
classes |
等同于 attr.classes ( 字符串 列表 ) |
attributes |
等同于 attr.attributes ( Attributes ) |
tag , t |
实际的 Header ( string ) |
HorizontalRule
水平线。
这种类型的值可以通过 pandoc.HorizontalRule
构造函数创建。
字段 | 描述 |
---|---|
tag , t |
实际的 HorizontalRule ( string ) |
LineBlock
行块,即一系列行,每行之间以换行符分隔。
这种类型的值可以通过 pandoc.LineBlock
构造函数创建。
字段 | 描述 |
---|---|
content |
内联内容(行列表,即 Inlines 列表) |
tag , t |
实际的 LineBlock ( string ) |
OrderedList
有序列表。
这种类型的值可以通过 pandoc.OrderedList
构造函数创建。
字段 | 描述 |
---|---|
content |
列表项(项目 列表,即 Blocks 列表) |
listAttributes |
列表参数( ListAttributes 类型) |
start |
listAttributes.start 的别名( integer ) |
style |
listAttributes.style 的别名( string ) |
delimiter |
listAttributes.delimiter 的别名( string ) |
tag , t |
实际的 OrderedList ( string ) |
Para
段落。
此类值可通过 pandoc.Para
构造器创建。
字段 | 描述 |
---|---|
content |
内联内容(Inlines) |
tag , t |
字面量 Para ( string ) |
Plain
非段落的纯文本。
此类值可通过 pandoc.Plain
构造器创建。
字段 | 描述 |
---|---|
content |
内联内容( Inlines ) |
tag , t |
字面量 Plain ( string ) |
RawBlock
指定格式的原始内容。
此类值可通过 pandoc.RawBlock
构造器创建。
字段 | 描述 |
---|---|
format |
内容格式( string ) |
text |
原始内容( string ) |
tag , t |
字面量 RawBlock ( string ) |
Table
表格。
此类值可通过 pandoc.Table
构造器创建。
字段 | 描述 |
---|---|
attr |
表格属性( Attr ) |
caption |
表格标题( Caption ) |
colspecs |
列规格,即对齐方式和宽度( ColSpec 的 List ) |
head |
表头( TableHead ) |
bodies |
表身( TableBody 的 List ) |
foot |
表尾( TableFoot ) |
identifier |
等同于 attr.identifier ( string ) |
classes |
等同于 attr.classes ( 字符串的 List ) |
attributes |
等同于 attr.attributes ( Attributes ) |
tag , t |
字面量 Table ( string ) |
表格单元格 是一系列块。
对齐方式 是一个字符串值,表示表格列的水平对齐方式。AlignLeft
、AlignRight
和 AlignCenter
分别使单元格内容左对齐、右对齐和居中。默认对齐方式是 AlignDefault
(通常等同于居中)。
Blocks
Blocks 是一个包含多种 Block 元素的列表类型,具有与通用 List
相同的处理方法。在用户脚本中通常不需要创建此类值,因为 Pandoc 可以在需要这种类型的任何地方将其他类型转换为 Blocks:
- 一个
Block
(或类似 Block)值的列表会被直接使用; - 单个
Inlines
值会被封装成一个 Plain 元素; - 字符串值会通过将其拆分为单词来转换为
Inlines
值(参见Inlines
),然后将结果封装到Plain
单例中。
方法
Blocks
类型共享所有通用列表的方法,请参阅 pandoc.List 模块。
此外,在 Blocks 值上还可用以下方法:
walk
walk(self, lua_filter)
将 Lua 过滤器应用于 Blocks 列表。就像完整的文档过滤器一样,可以通过设置过滤器中的 traverse
字段来控制遍历元素的顺序;请参阅 遍历顺序 部分。返回一个经过过滤器应用后的(深度)副本:原始列表保持不变。
参数 | 描述 |
---|---|
self |
列表( Blocks ) |
lua_filter |
过滤函数映射( table ) |
结果:
- 过滤后的列表(
Blocks
)
示例:
-- 返回 `pandoc.Blocks{pandoc.Para('Salve!')}`
return pandoc.Blocks{pandoc.Plain('Salve!)}:walk {
Plain = function (p) return pandoc.Para(p.content) end,
}
Inline
Inline 值在 Lua 中相等当且仅当它们在 Haskell 中相等。
常用方法
walk
walk(self, lua_filter)
将 Lua 过滤器应用于 Inline 元素。就像完整的文档过滤器一样,可以通过设置过滤器中的traverse
字段来控制遍历元素的顺序;请参阅遍历顺序部分。返回一个经过过滤器应用后的(深度)副本:原始元素保持不变。
需要注意的是,过滤器应用于子树,但不应用于self
内联元素本身。这样做的理由是,否则该元素可能会被过滤器删除,或者替换为多个内联元素,这可能导致可能出乎意料的结果。
参数 | 描述 |
---|---|
self |
元素( Inline ) |
lua_filter |
过滤函数映射( table ) |
结果:
- 过滤后的内联元素( Inline )
示例:
-- 返回 `pandoc.SmallCaps('SPQR')`
return pandoc.SmallCaps('spqr'):walk {
Str = function (s) return string.upper(s.text) end,
}
Cite
引用。
这种类型的值可以通过 pandoc.Cite
构造器创建。
字段 | 描述 |
---|---|
content |
内容 ( Inlines ) |
citations |
引用条目 ( Citations 列表 ) |
tag , t |
实际的 Cite ( string ) |
Code
内联代码。
这种类型的值可以通过 pandoc.Code
构造器创建。
字段 | 描述 |
---|---|
text |
代码字符串 ( string ) |
attr |
属性 ( Attr ) |
identifier |
等同于 attr.identifier ( string ) |
classes |
等同于 attr.classes (字符串列表) |
attributes |
等同于 attr.attributes ( Attributes ) |
tag , t |
实际的 Code ( string ) |
Emph
强调文本。
这种类型的值可以通过 pandoc.Emph
构造器创建。
字段 | 描述 |
---|---|
content |
内联内容 ( Inlines ) |
tag , t |
实际的 Emph ( string ) |
Image
图片:替换文本(内联列表),目标。
这种类型的值可以通过 pandoc.Image
构造器创建。
字段 | 描述 |
---|---|
caption |
用于描述图片的文本 ( Inlines ) |
src |
图片文件路径 ( string ) |
title |
简短图片描述 ( string ) |
attr |
属性 ( Attr ) |
identifier |
等同于 attr.identifier ( string ) |
classes |
等同于 attr.classes (字符串列表) |
attributes |
等同于 attr.attributes ( Attributes ) |
tag , t |
实际的 Image ( string ) |
这段文档描述了 Pandoc AST(抽象语法树)中几种元素的定义和用法,包括硬换行、超链接、数学表达式、注脚和引用文本。以下是简化后的中文翻译:
LineBreak
硬换行
此类别的值可以通过 pandoc.LineBreak
构造器创建。
字段 | 描述 |
---|---|
tag , t |
字面量 LineBreak ( string ) |
Link
超链接:交替文本(内联列表),目标
此类别的值可以通过 pandoc.Link
构造器创建。
字段 | 描述 |
---|---|
attr |
属性 ( Attr ) |
content |
该链接的文本 ( Inlines ) |
target |
链接目标 ( string ) |
title |
简短链接描述 |
identifier |
attr.identifier 的别名 ( string ) |
classes |
attr.classes 的别名(字符串列表) |
attributes |
attr.attributes 的别名( Attributes ) |
tag , t |
字面量 Link ( string ) |
Math
TeX 数学表达式(字面量)
此类别的值可以通过 pandoc.Math
构造器创建。
字段 | 描述 |
---|---|
mathtype |
确定数学内容是内联显示还是单独一行显示(InlineMath 或 DisplayMath )( string ) |
text |
数学内容( string ) |
tag , t |
字面量 Math ( string ) |
Note
脚注或尾注
此类别的值可以通过 pandoc.Note
构造器创建。
字段 | 描述 |
---|---|
content |
( Blocks ) |
tag , t |
字面量 Note ( string ) |
Quoted
引用文本
此类别的值可以通过 pandoc.Quoted
构造器创建。
字段 | 描述 |
---|---|
quotetype |
使用的引号类型;可以是 SingleQuote 或 DoubleQuote ( string ) |
content |
引用的文本 ( Inlines ) |
tag , t |
字面量 Quoted ( string ) |
RawInline
原始内联内容
原始内联内容。
**创建方式:**使用 pandoc.RawInline
构造函数创建此类值。
字段 | 描述 |
---|---|
format |
内容的格式( string ) |
text |
原始内容( string ) |
tag , t |
字面量 RawInline ( string ) |
SmallCaps
小型大写字母文本。
**创建方式:**使用 pandoc.SmallCaps
构造函数创建此类值。
字段 | 描述 |
---|---|
content |
内容(Inlines) |
tag , t |
字面量 SmallCaps ( string ) |
SoftBreak
软换行符。
**创建方式:**使用 pandoc.SoftBreak
构造函数创建此类值。
字段 | 描述 |
---|---|
tag , t |
字面量 SoftBreak ( string ) |
Space
单词间空格。
**创建方式:**使用 pandoc.Space
构造函数创建此类值。
字段 | 描述 |
---|---|
tag , t |
字面量 Space ( string ) |
Span
具有属性的一般内联容器。
**创建方式:**使用 pandoc.Span
构造函数创建此类值。
字段 | 描述 |
---|---|
attr |
属性( Attr ) |
content |
包裹的内容( Inlines ) |
identifier |
attr.identifier 的别名( string ) |
classes |
attr.classes 的别名(字符串列表) |
attributes |
attr.attributes 的别名( Attributes ) |
tag , t |
字面量 Span ( string ) |
Str
纯文本内容。
创建方式: 使用 pandoc.Str
构造函数。
字段 | 描述 |
---|---|
text |
内容( string ) |
tag , t |
实际的 Str ( string ) |
类型:Strikeout
删除线文本。
创建方式: 使用 pandoc.Strikeout
构造函数。
字段 | 描述 |
---|---|
content |
内联内容( Inlines ) |
tag , t |
实际的 Strikeout ( string ) |
类型:Strong
粗体强调文本。
创建方式: 使用 pandoc.Strong
构造函数。
字段 | 描述 |
---|---|
content |
内联内容( Inlines ) |
tag , t |
实际的 Strong ( string ) |
类型:Subscript
下标文本。
创建方式: 使用 pandoc.Subscript
构造函数。
字段 | 描述 |
---|---|
content |
内联内容( Inlines ) |
tag , t |
实际的 Subscript ( string ) |
类型:Superscript
上标文本。
创建方式: 使用 pandoc.Superscript
构造函数。
字段 | 描述 |
---|---|
content |
内联内容( Inlines ) |
tag , t |
实际的 Superscript ( string ) |
类型:Underline
下划线文本。
创建方式: 使用 pandoc.Underline
构造函数。
字段 | 描述 |
---|---|
content |
内联内容( Inlines ) |
tag , t |
实际的 Underline ( string ) |
Inlines
内联元素列表,具有与通用列表相同的方法。 通常情况下,在用户脚本中创建这种类型的数据并不必要,因为当需要这种类型的值时,Pandoc
可以将其他类型转换为内联元素。
- 直接使用:
Inlines
类型的列表可以直接使用。 - 单个元素转换:单个
Inline
元素会被转换成仅包含该元素的列表。 - 字符串值处理:字符串值会按单词拆分,并将换行符转换为
SoftBreak
元素,其他空白字符则转换为Space
。
方法
类型为 Inlines
的列表共享所有在泛型列表中可用的方法,具体可见 pandoc.List 模块。
此外,以下方法可在 Inlines
类型的值上使用:
walk
walk(self, lua_filter)
将一个 Lua 过滤器应用于 Inlines
列表。此过滤器会按照以下顺序处理元素:Inline
→ Inlines
→ Block
→ Blocks
。过滤器同时应用于列表中的所有项及列表本身。返回应用了过滤器的(深拷贝)副本,原始列表保持不变。
参数 | 描述 |
---|---|
self |
列表 ( Inlines ) |
lua_filter |
过滤函数的映射表 (table) |
结果:
- 过滤后的列表 ( Inlines )
示例:
-- 返回 `pandoc.Inlines{pandoc.SmallCaps('SPQR')}`
return pandoc.Inlines{pandoc.Emph('spqr')}:walk {
Str = function (s) return string.upper(s.text) end,
Emph = function (e) return pandoc.SmallCaps(e.content) end,
}
元素组件
Attr
Attr
表示一组元素属性。可以使用 pandoc.Attr
构造器创建此类值。通常情况下,如果它是元素的一部分,则直接传递类似 HTML 的表格即可,例如:
local span = pandoc.Span('text', {id = 'text', class = 'a b'})
也可以通过设置 attr
属性来完成:
local span = pandoc.Span 'text'
span.attr = {id = 'text', class = 'a b', other_attribute = '1'}
两个 Attr
值在 Lua 中相等当且仅当它们在 Haskell 中相等。
字段 | 描述 |
---|---|
identifier |
元素标识符 ( string ) |
classes |
元素类列表 ( List of strings ) |
attributes |
键/值对集合 ( Attributes ) |
Attributes
键/值对列表。可以通过键作为列表的索引来访问这些值。
两个 Attributes
值在 Lua 中相等当且仅当它们在 Haskell 中相等。
Caption
表的标题,包含一个可选的简短标题。
字段 | 描述 |
---|---|
long |
长标题( Blocks ) |
short |
短标题( Inlines ) |
Cell
表格中的单元格。
字段 | 描述 |
---|---|
attr |
单元格属性 |
alignment |
单元格对齐方式( Alignment ) |
contents |
单元格内容( Blocks ) |
col_span |
单元格跨列数;以列为单位的单元格宽度 ( integer ) |
row_span |
单元格跨行数;以行为单位的单元格高度 ( integer ) |
identifier |
别名 attr.identifier ( string ) |
classes |
别名 attr.classes (字符串列表) |
attributes |
别名 attr.attributes ( Attributes ) |
Citation
单个引文条目
此类型的值可以通过 pandoc.Citation
构造器创建。
在 Lua 中,只有当它们在 Haskell 中相等时,引文值才相等。
字段 | 描述 |
---|---|
id |
引文标识符,例如 BibTeX 键( string ) |
mode |
引文模式,可以是 AuthorInText 、SuppressAuthor 或 NormalCitation ( string ) |
prefix |
引文前缀( Inlines ) |
suffix |
引文后缀( Inlines ) |
note_num |
注释编号( integer ) |
hash |
哈希值( integer ) |
ColSpec
单个表格列的对齐和宽度规范。
这是一个简单的表格,包含以下组成部分:
- 单元格对齐方式( Alignment )。
- 表格列宽,作为页面宽度的比例(
integer
)。
ListAttributes
列表属性
值类型 ListAttributes
可以通过构造函数 pandoc.ListAttributes
创建。
字段 | 描述 |
---|---|
start | 列表项的起始编号( integer ) |
style | 用于列表编号的样式;可能的值包括 DefaultStyle , Example , Decimal , LowerRoman , UpperRoman , LowerAlpha , 和 UpperAlpha ( string ) |
delimiter | 列表编号的分隔符;可能是 DefaultDelim , Period , OneParen , 和 TwoParens 之一( string ) |
Row
表示表格中的一行。
字段 | 描述 |
---|---|
attr | 元素属性 ( Attr ) |
cells | 表格单元格的列表 (List of Cell s) |
TableBody
表示表格的主体部分,包含一个中间头部和指定数量的行标题列。
字段 | 描述 |
---|---|
attr | 表体属性 ( Attr ) |
body | 表体行 (List of Row s) |
head | 中间头部 (List of Row s) |
row_head_columns | 每个表体行的行标题所占用的列数。行体占据剩余的列。 |
TableFoot
表示表格的底部。
字段 | 描述 |
---|---|
attr | 元素属性 ( Attr ) |
rows | 行列表 (List of Row s) |
identifier | 等同于 attr.identifier ( string ) |
classes | 等同于 attr.classes (List of 字符串) |
attributes | 等同于 attr.attributes ( Attributes ) |
TableHead
表示表格的头部。
字段 | 描述 |
---|---|
attr | 元素属性 ( Attr ) |
rows | 行列表 (List of Row s) |
identifier | 等同于 attr.identifier ( string ) |
classes | 等同于 attr.classes (List of 字符串) |
attributes | 等同于 attr.attributes ( Attributes ) |
ReaderOptions
Pandoc 读取选项
字段 | 描述 |
---|---|
abbreviations |
已知缩写的集合( 字符串集合 ) |
columns |
终端中的列数( integer ) |
default_image_extension |
图像的默认扩展名( string ) |
extensions |
语法扩展位字段的字符串表示( 字符串序列 ) |
indented_code_classes |
缩进代码块的默认类( 字符串列表 ) |
standalone |
输入是否为带有头部的独立文档( boolean ) |
strip_comments |
HTML 注释被剥离而不是解析为原始 HTML( boolean ) |
tab_stop |
制表符的宽度(即等效空格数量)( integer ) |
track_changes |
docx 中的更改跟踪设置;可选值包括 accept-changes 、reject-changes 和 all-changes ( string ) |
WriterOptions
Pandoc 写入选项
字段 | 描述 |
---|---|
chunk_template |
用于生成分块 HTML 文件名的模板( string ) |
cite_method |
引用打印方式 — 可选值包括 citeproc 、natbib 或 biblatex ( string ) |
columns |
行中的字符数(用于文本换行)( integer ) |
dpi |
像素与英寸/厘米转换的 DPI(每英寸点数)( integer ) |
email_obfuscation |
邮件混淆方式 — 可选值包括 none 、references 或 javascript ( string ) |
epub_chapter_level |
章节的标题级别,即文档如何分割成单独的文件( integer ) |
epub_fonts |
要嵌入的字体路径( 字符串序列 ) |
epub_metadata |
要包含在 EPUB 中的元数据( string | nil ) |
epub_subdirectory |
OCF 中 epub 的子目录( string ) |
extensions |
可以使用的 Markdown 扩展( 字符串序列 ) |
highlight_style |
用于高亮显示的样式;查看 pandoc --print-highlight-style=... 输出以获取示例结构。值 nil 表示不使用任何高亮显示。( table | nil ) |
html_math_method |
HTML 中的数学表达式打印方式;可选值包括 plain 、gladtex 、webtex 、mathml 、mathjax 或包含键 method 和 url 的表。( string | table ) |
html_q_tags |
在 HTML 中使用 <q> 标签来表示引用( boolean 值) |
identifier_prefix |
HTML 中的章节和注释 ID 以及 markdown 中的脚注标记前缀( string ) |
incremental |
如果列表应该逐项显示则为真( boolean 值) |
listings |
使用 listings 包来表示代码( boolean 值) |
number_offset |
章节、子章节等的起始编号( 整数序列 ) |
number_sections |
在 LaTeX 中编号各章节( boolean 值) |
prefer_ascii |
尽可能使用 ASCII 字符表示( boolean 值) |
reference_doc |
如果指定了参考文档,则为其路径( string | nil ) |
reference_links |
在 markdown 和 rst 中使用参考链接( boolean 值) |
reference_location |
markdown 中脚注和参考文献的位置;可选值包括 end-of-block 、end-of-section 或 end-of-document 。设置此值时可以省略公共前缀。( string ) |
section_divs |
在 HTML 中将各章节放入 div 标签内( boolean 值) |
setext_headers |
在 markdown 中对级别 1-2 使用 Setext 式标题( boolean 值) |
slide_level |
强制幻灯片标题级别( integer | nil ) |
tab_stop |
空格和制表符之间的转换制表位( integer ) |
table_of_contents |
包含目录( boolean 值) |
template |
使用的模板(Template 类型 | nil ) |
toc_depth |
目录中要包含的层级数( integer ) |
top_level_division |
顶级划分类型;可选值包括 top-level-part 、top-level-chapter 、top-level-section 或 top-level-default 。设置此值时可以省略 top-level 前缀。( string ) |
variables |
模板中要设置的变量;字符串索引表( table ) |
wrap_text |
文本换行选项;可选值包括 wrap-auto 、wrap-none 或 wrap-preserve 。设置此值时可以省略 wrap- 前缀。( string ) |
CommonState
状态 State
由 Pandoc 使用来收集信息并使其对读取器和写入器可用。
字段 | 描述 |
---|---|
input_files |
命令行中的输入文件列表( 字符串列表 ) |
output_file |
命令行中的输出文件( string 或 nil ) |
log |
按逆序排列的日志消息列表( LogMessage 列表 ) |
request_headers |
用于 HTTP 请求的头部;以头部名称作为键、头部内容作为值的表格 |
resource_path |
用于搜索资源(如内嵌图片)的路径( 字符串列表 ) |
source_url |
第一个源文件的绝对 URL 或目录( string 或 nil ) |
user_data_dir |
用于搜索数据文件的目录( string 或 nil ) |
trace |
是否发出追踪消息( boolean 值) |
verbosity |
日志详细程度级别;可以是 INFO , WARNING , ERROR 中的一个 ( string ) |
Doc
可重新排版的纯文本文档。Doc
值可以被渲染并重新排版以适应给定的列宽。
pandoc.layout
模块可用于创建和修改 Doc
值。该模块中所有将 Doc
值作为第一个参数的函数也可以作为 Doc
方法使用。例如,(pandoc.layout.literal 'text'):render()
。
如果将字符串传递给期望 Doc
的函数,则该字符串被视为字面值。即,以下两行等价:
test = pandoc.layout.quotes(pandoc.layout.literal 'this')
test = pandoc.layout.quotes('this')
操作符
..
连接两个 Doc
元素。
+
连接两个 Doc
,在它们之间插入可重新排版的空间。
/
若 a
和 b
是 Doc
元素,则 a / b
将 a
放置在 b
上方。
//
如果 a
和 b
是 Doc
元素,则 a // b
将 a
放在 b
的上方,并在它们之间插入一个空白行。
List
列表是任何带有整数索引的 Lua 表。索引从一开始,因此如果 alist = {'value'}
那么 alist[1] == 'value'
。
当列表作为元素的一部分或者在序列化过程中生成时,为了方便起见,它们被作为 pandoc.List
类型的实例。pandoc.List
类型定义在 pandoc.List 模块中。在那里可以找到可用的方法。
这种类型的值可以通过 pandoc.List 构造器创建,将普通的 Lua 表转换为列表。
LogMessage
Pandoc 日志消息。对象没有字段,但可以通过 tostring
转换为字符串。
SimpleTable
简单表格是一种类似于旧版(pandoc 2.10 前)Table 类型的表格结构。可以使用 pandoc.utils.to_simple_table 和 pandoc.utils.from_simple_table 函数双向转换为 Table。这种类型的实例也可以直接通过 pandoc.SimpleTable
构造器创建。
字段 | 描述 |
---|---|
caption |
Inlines |
aligns |
列对齐方式 (List of Alignments) |
widths |
列宽;一个数字的 List |
headers |
表格头行 (简单单元格的 List,即 Blocks 的 List) |
rows |
表格行 (List of rows, 其中行是一个简单单元格的列表,即 Blocks 的 List) |
Template
这是一个持有编译后模板的不透明类型。
Version
版本对象。这表示像 “2.7.3” 这样的软件版本。该对象表现得像一个数值索引表,即如果 version
代表版本 2.7.3
,那么
version[1] == 2
version[2] == 7
version[3] == 3
#version == 3 -- 长度
比较是逐个元素进行的,例如
Version '1.12' > Version '1.9'
这种类型的值可以通过 pandoc.types.Version
构造器创建。
must_be_at_least
must_be_at_least(actual, expected [, error_message])
如果实际版本比预期版本旧,则抛出错误消息;如果实际版本等于或新于预期版本,则不做任何操作。
参数 | 描述 |
---|---|
actual |
实际的版本号 (Version ) |
expected |
期望的最小版本号 (Version ) |
error_message |
可选的错误消息模板。该字符串将作为格式字符串使用,其中包含期望和实际版本号作为参数,默认值为 "expected version %s or newer, got %s" 。 |
示例用法:
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'
)
Chunk
文档的一部分;通常每个 chunk 会被写入单独的文件中。
字段 | 描述 |
---|---|
heading |
标题文本 ( Inlines ) |
id |
标识符 ( string ) |
level |
chunk 中最高级标题的层级 ( integer ) |
number |
chunk 编号 ( integer ) |
section_number |
层次化章节编号 ( string ) |
path |
该 chunk 的目标文件路径 ( string ) |
up |
指向包含该节的上级 chunk 的链接 ( Chunk | nil ) |
prev |
指向前一个节的链接 ( Chunk | nil ) |
next |
指向后一个节的链接 ( Chunk | nil ) |
unlisted |
即使该 chunk 没有章节编号,是否仍应在目录中列出此节 ( boolean ) |
contents |
chunk 的内容 ( Blocks ) |
ChunkedDoc
一个被划分为多个段落( Chunks
)的 Pandoc 文档。
字段 toc
中的目录信息是以列表形式表示的玫瑰树结构。节点项始终位于索引 0 处;子项构成列表的其余部分。每个节点项包含以下字段:title
(内联元素列表)、number
(字符串或 nil)、id
( string
)、path
( string
)以及 level
( integer
)。
字段 | 描述 |
---|---|
chunks |
构成文档的 chunk 列表 ( Chunk 列表) |
meta |
文档元数据 ( Meta ) |
toc |
目录信息 ( table ) |