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-streamtext/plainapplication/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-
使用
dataURI 在 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 网站。