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 Cells) |
TableBody
表示表格的主体部分,包含一个中间头部和指定数量的行标题列。
| 字段 | 描述 |
|---|---|
| attr | 表体属性 ( Attr ) |
| body | 表体行 (List of Rows) |
| head | 中间头部 (List of Rows) |
| row_head_columns | 每个表体行的行标题所占用的列数。行体占据剩余的列。 |
TableFoot
表示表格的底部。
| 字段 | 描述 |
|---|---|
| attr | 元素属性 ( Attr ) |
| rows | 行列表 (List of Rows) |
| identifier | 等同于 attr.identifier( string ) |
| classes | 等同于 attr.classes(List of 字符串) |
| attributes | 等同于 attr.attributes( Attributes ) |
TableHead
表示表格的头部。
| 字段 | 描述 |
|---|---|
| attr | 元素属性 ( Attr ) |
| rows | 行列表 (List of Rows) |
| 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 ) |
抠丁客


