pandoc-server
概要
pandoc-server
[选项]
描述
pandoc-server
是一个可以执行 Pandoc 转换的 Web 服务器。它既可以作为运行中的服务器使用,也可以作为 CGI 程序使用。
要将 pandoc-server
用作 CGI 程序,请将其重命名(或创建符号链接)为 pandoc-server.cgi
。(注意:如果您创建符号链接,可能需要调整 Web 服务器的配置,以允许它遵循 CGI 脚本的符号链接。)
所有 Pandoc 功能都在 PandocPure monad 中运行,这确保它们无法在服务器上执行 I/O 操作。这应该能提供高度的安全性。然而,这种安全性确实施加了某些限制
无法生成 PDF。
不支持过滤器。
无法通过 HTTP 获取资源。
文档转换所需的任何图像、包含文件或其他资源必须通过
files
字段(参见下面的 API 部分)明确包含在请求中。
选项
--port NUM
- 服务器运行的 HTTP 端口。默认值:3030。
--timeout SECONDS
-
超时时间(秒),超过此时间后转换将被终止。默认值:2。
当
pandoc-server
作为 CGI 程序运行时,此选项可以通过PANDOC_SERVER_TIMEOUT
环境变量设置。 --help
- 打印此帮助信息。
--version
- 打印版本信息。
API
根端点
根 (/
) 端点只接受 POST 请求。
响应
它根据 Accept
头部,按优先顺序返回以下格式之一的已转换文档
application/octet-stream
text/plain
application/json
如果结果是二进制格式(例如 epub
或 docx
),并且内容以纯文本或 JSON 格式返回,则二进制数据将进行 base64 编码。
如果返回 JSON 响应,它将具有以下格式之一。如果转换不成功
{ "error": string with the error message }
如果转换成功
{ "output": string with textual or base64-encoded binary output,
"base64": boolean (true means the "output" is base64-encoded),
"messages": array of message objects (see below) }
“messages”数组的每个元素都将具有以下格式
{ "message": string,
"verbosity": string (either "WARNING" or "INFO") }
请求
POST 请求的主体应该是一个 JSON 对象,包含以下字段。只有 text
字段是必需的;其他所有字段都可以省略,使用默认值。当有多个字符串选项时,第一个给出的值是默认值。
text
(字符串)-
要转换的文档。注意:如果
from
格式是二进制(例如epub
或docx
),则text
应该是文档的 base64 编码。 from
(字符串,默认值"markdown"
)-
输入格式,可能带有扩展名,与在 pandoc 命令行上指定的方式相同。
to
(字符串,默认值"html"
)-
输出格式,可能带有扩展名,与在 pandoc 命令行上指定的方式相同。
shift-heading-level-by
(整数,默认值 0)-
增加或减少所有标题的级别。
indented-code-classes
(字符串数组)-
应用于缩进 Markdown 代码块的类列表。
default-image-extension
(字符串)-
应用于缺少扩展名的图像源的扩展名(例如
".jpg"
)。 metadata
(JSON 映射)-
字符串值的元数据。
tab-stop
(整数,默认值 4)-
制表位(每个制表符的空格数)。
track-changes
("accept"|"reject"|"all"
)-
指定如何处理 MS Word “修订”功能产生的插入、删除和注释。仅影响 docx 输入。
abbreviations
(文件路径)-
解析 Markdown 时被视为缩写的字符串列表。详见
pandoc(1)
中的--abbreviations
。 standalone
(布尔值,默认值 false)-
如果为 true,则使用默认模板或通过
template
指定的自定义模板生成独立文档。如果为 false,将生成一个片段。 template
(字符串)-
文档模板的字符串内容(格式详见
pandoc(1)
中的模板)。 variables
(JSON 映射)-
要在模板中插入的变量。(详见
pandoc(1)
中的模板。) dpi
(整数,默认值 96)-
用于像素与其他度量单位(图像大小)之间转换的每英寸点数。
wrap
("auto"|"preserve"|"none"
)-
文本换行选项:
"auto"
(自动硬换行以适应列宽),"preserve"
(在源中存在换行符的地方插入换行符),或"none"
(完全不插入任何不必要的换行符)。 columns
(整数,默认值 72)-
列宽(影响纯文本格式中的文本换行和表格列宽计算)
table-of-contents
(布尔值,默认值 false)-
包含目录(在支持的格式中)。
toc-depth
(整数,默认值 3)-
目录中包含的章节深度。
list-of-figures
(布尔值,默认值 false)-
包含图表列表(在支持的格式中)。
list-of-tables
(布尔值,默认值 false)-
包含表格列表(在支持的格式中)。
strip-comments
(布尔值,默认值 false)-
导致 Markdown 或 Textile 源中的 HTML 注释被剥离,而不是传递到输出格式。
highlight-style
(字符串,不设置则不进行高亮显示)-
指定用于代码语法高亮的样式。标准样式包括
"pygments"
(默认)、"kate"
、"monochrome"
、"breezeDark"
、"espresso"
、"zenburn"
、"haddock"
和"tango"
。或者,可以使用带有 KDE 语法主题的.theme
文件路径(在这种情况下,相关文件内容也必须包含在files
中,见下文)。 embed-resources
-
使用
data
URI 在 HTML 文档中嵌入图像、脚本、样式和其他资源。请注意,除非所有外部资源的内容都包含在files
中,否则此功能将不起作用。 html-q-tags
(布尔值,默认值 false)-
在 HTML 中使用
<q>
元素而不是字面引号。 ascii
(布尔值,默认值 false)-
尽可能使用实体和转义符,以避免输出中出现非 ASCII 字符。
reference-links
(布尔值,默认值 false)-
在 Markdown 输出中创建引用链接而不是内联链接。
reference-location
("document"|"section"|"block"
)-
确定在某些格式中,链接引用和脚注是放置在文档末尾、章节末尾还是块(例如 段落)末尾。(详见
pandoc(1)
中--reference-location
下的部分。) setext-headers
(布尔值,默认值 false)-
在 Markdown 输出中使用 Setext(带下划线)标题,而不是 ATX(带
#
前缀)标题。 top-level-division
("default"|"part"|"chapter"|"section"
)-
确定 LaTeX、ConTeXt、DocBook 和 TEI 中如何解释顶级标题。
"default"
值尝试根据启发式方法选择最佳解释。 number-sections
(布尔值,默认值 false)-
自动对章节进行编号(在支持的格式中)。
number-offset
(整数数组)-
要添加到节号每个组件的偏移量。例如,
[1]
将导致第一节编号为“2”,第一个子节编号为“2.1”;[0,1]
将导致第一节编号为“1”,第一个子节编号为“1.2”。 html-math-method
("plain"|"webtex"|"gladtex"|"mathml"|"mathjax"|"katex"
)-
确定 HTML 中数学公式的表示方式。
listings
(布尔值,默认值 false)-
在 LaTeX 输出中使用
listings
包格式化代码。 incremental
(布尔值,默认值 false)-
如果为 true,则在幻灯片演示中列表默认以增量方式显示。
slide-level
(整数)-
确定幻灯片演示中幻灯片分割的标题级别。默认是选择包含正文的最高标题级别。
section-divs
(布尔值,默认值 false)-
根据标题将文档组织成嵌套部分的层次结构。
email-obfuscation
("none"|"references"|"javascript"
)-
确定 HTML 中电子邮件地址的混淆方式。
identifier-prefix
(字符串)-
添加到所有自动生成标识符的前缀。
title-prefix
(字符串)-
添加到 HTML 头部标题的前缀。
reference-doc
(文件路径)-
创建
docx
、odt
或pptx
时使用的参考文档。详见pandoc(1)
中--reference-doc
下的部分。文件内容必须包含在files
中。 split-level
(整数,默认值 1)-
在 EPUB 或分块 HTML 中文档分割的标题级别。
epub-cover-image
(文件路径)-
EPUB 的封面图像。文件内容必须包含在
files
中。 epub-metadata
(文件路径)-
包含用于 EPUB 元数据的都柏林核心 XML 元素的文件路径。文件内容必须包含在
files
中。 epub-subdirectory
(字符串,默认值 “EPUB”)-
EPUB 容器中内容子目录的名称。
epub-fonts
(文件路径数组)-
要包含在 EPUB 中的字体。字体本身必须包含在
files
中(见下文)。 ipynb-output
("best"|"all"|"none"
)-
确定如何处理 ipynb 输出单元格。
all
表示保留原始文件中包含的所有数据格式。none
表示省略数据单元格的内容。best
使得 pandoc 尝试在每个与输出格式兼容的输出单元格中选择最丰富的数据块。 citeproc
(布尔值,默认值 false)-
导致使用 citeproc 处理引文。详见
pandoc(1)
中的引文部分。 bibliography
(文件路径数组)-
包含书目数据的文件。文件内容必须包含在
files
中。 csl
(文件路径)-
CSL 样式文件。文件内容必须包含在
files
中。 cite-method
("citeproc"|"natbib"|"biblatex"
)-
确定 LaTeX 输出中引文的格式。
files
(文件路径到 base64 编码字符串的 JSON 映射)-
转换所需的任何文件,包括文档源中引用的图像,都应包含在此处。二进制数据必须进行 base64 编码。文本数据可以保持原样,除非它也是有效的 base64 数据,在这种情况下它将被那样解释。
/batch
端点
/batch
端点的行为与根端点类似,但有以下两点不同
- 它接受一个 JSON 数组,其中每个元素都是一个 JSON 对象,类似于根端点所期望的格式。
- 它返回一个 JSON 结果的 JSON 数组。
此端点可用于在一个请求中转换一系列小片段。
/version
端点
/version
端点接受 GET 请求,并根据 Accept 头部以纯文本或 JSON 编码字符串的形式返回 pandoc 版本。
/babelmark
端点
/babelmark
端点接受带有以下查询参数的 GET 请求
text
(必需字符串)from
(可选字符串,默认值为"markdown"
)to
(可选字符串,默认值为"html"
)standalone
(可选布尔值,默认值为false
)
它返回一个包含 html
和 version
字段的 JSON 对象。此端点旨在支持 Babelmark 网站。