请帮助乌克兰!
赞助商
Pandoc   一个通用文档转换器

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

如果结果是二进制格式(例如 epubdocx),并且内容以纯文本或 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 格式是二进制(例如 epubdocx),则 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 (文件路径)

创建 docxodtpptx 时使用的参考文档。详见 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)

它返回一个包含 htmlversion 字段的 JSON 对象。此端点旨在支持 Babelmark 网站。

作者

版权所有 2022 John MacFarlane ([email protected])。根据 GPL 版本 2 或更高版本发布。本软件不附带任何形式的担保。(有关完整的版权和担保声明,请参阅 COPYRIGHT。)