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 中相等。

  • blocks: 文档内容 ( Blocks )
  • meta: 文档元信息 ( Meta 对象 )

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.MetaBoolpandoc.MetaStringpandoc.MetaInlinespandoc.MetaBlockspandoc.MetaListpandoc.MetaMap 来确保值以预期的方式处理。例如,空表通常被视为 MetaMap ,但可以通过调用 pandoc.MetaList{} 将其转换为空的 MetaList 。然而,也可以通过使用通用函数如 pandoc.Listpandoc.Inlinespandoc.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 实际的 Headerstring

HorizontalRule

水平线。

这种类型的值可以通过 pandoc.HorizontalRule 构造函数创建。

字段 描述
tag, t 实际的 HorizontalRulestring

LineBlock

行块,即一系列行,每行之间以换行符分隔。

这种类型的值可以通过 pandoc.LineBlock 构造函数创建。

字段 描述
content 内联内容(行列表,即 Inlines 列表)
tag, t 实际的 LineBlockstring

OrderedList

有序列表。

这种类型的值可以通过 pandoc.OrderedList 构造函数创建。

字段 描述
content 列表项(项目 列表,即 Blocks 列表)
listAttributes 列表参数( ListAttributes 类型)
start listAttributes.start 的别名( integer
style listAttributes.style 的别名( string
delimiter listAttributes.delimiter 的别名( string
tag, t 实际的 OrderedListstring

Para

段落。

此类值可通过 pandoc.Para 构造器创建。

字段 描述
content 内联内容(Inlines
tag, t 字面量 Parastring

Plain

非段落的纯文本。

此类值可通过 pandoc.Plain 构造器创建。

字段 描述
content 内联内容( Inlines
tag, t 字面量 Plainstring

RawBlock

指定格式的原始内容。

此类值可通过 pandoc.RawBlock 构造器创建。

字段 描述
format 内容格式( string
text 原始内容( string
tag, t 字面量 RawBlockstring

Table

表格。

此类值可通过 pandoc.Table 构造器创建。

字段 描述
attr 表格属性( Attr
caption 表格标题( Caption
colspecs 列规格,即对齐方式和宽度( ColSpecList
head 表头( TableHead
bodies 表身( TableBodyList
foot 表尾( TableFoot
identifier 等同于 attr.identifierstring
classes 等同于 attr.classes ( 字符串的 List
attributes 等同于 attr.attributesAttributes
tag, t 字面量 Tablestring

表格单元格 是一系列块。

对齐方式 是一个字符串值,表示表格列的水平对齐方式。AlignLeftAlignRightAlignCenter 分别使单元格内容左对齐、右对齐和居中。默认对齐方式是 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 )

超链接:交替文本(内联列表),目标

此类别的值可以通过 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 确定数学内容是内联显示还是单独一行显示(InlineMathDisplayMath)( string )
text 数学内容( string )
tag, t 字面量 Math ( string )

Note

脚注或尾注

此类别的值可以通过 pandoc.Note 构造器创建。

字段 描述
content ( Blocks )
tag, t 字面量 Note ( string )

Quoted

引用文本

此类别的值可以通过 pandoc.Quoted 构造器创建。

字段 描述
quotetype 使用的引号类型;可以是 SingleQuoteDoubleQuote ( 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 列表。此过滤器会按照以下顺序处理元素:InlineInlinesBlockBlocks。过滤器同时应用于列表中的所有项及列表本身。返回应用了过滤器的(深拷贝)副本,原始列表保持不变。

参数 描述
self 列表 ( Inlines )
lua_filter 过滤函数的映射表 (table)

结果:

示例:

-- 返回 `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 引文模式,可以是 AuthorInTextSuppressAuthorNormalCitation( string )
prefix 引文前缀( Inlines )
suffix 引文后缀( Inlines )
note_num 注释编号( integer )
hash 哈希值( integer )

ColSpec

单个表格列的对齐和宽度规范。

这是一个简单的表格,包含以下组成部分:

  1. 单元格对齐方式( Alignment )。
  2. 表格列宽,作为页面宽度的比例(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.classesList of 字符串)
attributes 等同于 attr.attributes( Attributes )

TableHead

表示表格的头部。

字段 描述
attr 元素属性 ( Attr )
rows 行列表 (List of Rows)
identifier 等同于 attr.identifier( string )
classes 等同于 attr.classesList 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-changesreject-changesall-changes( string )

WriterOptions

Pandoc 写入选项

字段 描述
chunk_template 用于生成分块 HTML 文件名的模板( string )
cite_method 引用打印方式 — 可选值包括 citeprocnatbibbiblatex( string )
columns 行中的字符数(用于文本换行)( integer )
dpi 像素与英寸/厘米转换的 DPI(每英寸点数)( integer )
email_obfuscation 邮件混淆方式 — 可选值包括 nonereferencesjavascript( 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 中的数学表达式打印方式;可选值包括 plaingladtexwebtexmathmlmathjax 或包含键 methodurl的表。( 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-blockend-of-sectionend-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-parttop-level-chaptertop-level-sectiontop-level-default。设置此值时可以省略 top-level 前缀。( string )
variables 模板中要设置的变量;字符串索引表( table
wrap_text 文本换行选项;可选值包括 wrap-autowrap-nonewrap-preserve 。设置此值时可以省略 wrap- 前缀。( string )

CommonState

状态 State 由 Pandoc 使用来收集信息并使其对读取器和写入器可用。

字段 描述
input_files 命令行中的输入文件列表( 字符串列表 )
output_file 命令行中的输出文件( stringnil
log 按逆序排列的日志消息列表( LogMessage 列表 )
request_headers 用于 HTTP 请求的头部;以头部名称作为键、头部内容作为值的表格
resource_path 用于搜索资源(如内嵌图片)的路径( 字符串列表 )
source_url 第一个源文件的绝对 URL 或目录( stringnil
user_data_dir 用于搜索数据文件的目录( stringnil
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,在它们之间插入可重新排版的空间。

/

abDoc 元素,则 a / ba 放置在 b 上方。

//

如果 abDoc 元素,则 a // ba 放在 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_tablepandoc.utils.from_simple_table 函数双向转换为 Table。这种类型的实例也可以直接通过 pandoc.SimpleTable 构造器创建。

字段 描述
caption Inlines
aligns 列对齐方式 (List of Alignments)
widths 列宽;一个数字的 List
headers 表格头行 (简单单元格的 List,即 BlocksList)
rows 表格行 (List of rows, 其中行是一个简单单元格的列表,即 BlocksList)

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 )
在本文档中