mirror of
https://github.com/jgm/pandoc.git
synced 2026-08-26 10:16:32 +00:00
Update manual date and regenerate man pages.
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: Pandoc User's Guide
|
||||
author: John MacFarlane
|
||||
date: 2026-06-03
|
||||
date: 2026-07-21
|
||||
---
|
||||
|
||||
# Synopsis
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.\" Automatically generated by Pandoc 3.10
|
||||
.\" Automatically generated by Pandoc 3.10.1
|
||||
.\"
|
||||
.TH "pandoc-lua" "1" "September 22, 2022" "pandoc 3.10" "Pandoc User\[cq]s Guide"
|
||||
.TH "pandoc-lua" "1" "September 22, 2022" "pandoc 3.10.1" "Pandoc User\[cq]s Guide"
|
||||
.SH NAME
|
||||
pandoc\-lua \- Lua interface to pandoc API
|
||||
.SH SYNOPSIS
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.\" Automatically generated by Pandoc 3.10
|
||||
.\" Automatically generated by Pandoc 3.10.1
|
||||
.\"
|
||||
.TH "pandoc-server" "1" "August 15, 2022" "pandoc 3.10" "Pandoc User\[cq]s Guide"
|
||||
.TH "pandoc-server" "1" "August 15, 2022" "pandoc 3.10.1" "Pandoc User\[cq]s Guide"
|
||||
.SH NAME
|
||||
pandoc\-server \- web server exposing pandoc API
|
||||
.SH SYNOPSIS
|
||||
|
||||
+154
-57
@@ -1,6 +1,6 @@
|
||||
.\" Automatically generated by Pandoc 3.10
|
||||
.\" Automatically generated by Pandoc 3.10.1
|
||||
.\"
|
||||
.TH "pandoc" "1" "2026\-06\-03" "pandoc 3.10" "Pandoc User\[cq]s Guide"
|
||||
.TH "pandoc" "1" "2026\-07\-21" "pandoc 3.10.1" "Pandoc User\[cq]s Guide"
|
||||
.SH NAME
|
||||
pandoc - general markup converter
|
||||
.SH SYNOPSIS
|
||||
@@ -152,12 +152,13 @@ included with all recent versions of TeX Live): \f[CR]amsfonts\f[R],
|
||||
\f[CR]amsmath\f[R], \f[CR]lm\f[R], \f[CR]unicode\-math\f[R],
|
||||
\f[CR]iftex\f[R], \f[CR]listings\f[R] (if the \f[CR]\-\-listings\f[R]
|
||||
option is used), \f[CR]fancyvrb\f[R], \f[CR]longtable\f[R],
|
||||
\f[CR]booktabs\f[R], \f[CR]multirow\f[R] (if the document contains a
|
||||
table with cells that cross multiple rows), \f[CR]graphicx\f[R] (if the
|
||||
document contains images), \f[CR]bookmark\f[R], \f[CR]xcolor\f[R],
|
||||
\f[CR]soul\f[R], \f[CR]geometry\f[R] (with the \f[CR]geometry\f[R]
|
||||
variable set), \f[CR]setspace\f[R] (with \f[CR]linestretch\f[R]), and
|
||||
\f[CR]babel\f[R] (with \f[CR]lang\f[R]).
|
||||
\f[CR]caption\f[R], \f[CR]booktabs\f[R], \f[CR]multirow\f[R] (if the
|
||||
document contains a table with cells that cross multiple rows),
|
||||
\f[CR]graphicx\f[R] (if the document contains images),
|
||||
\f[CR]bookmark\f[R], \f[CR]xcolor\f[R], \f[CR]soul\f[R],
|
||||
\f[CR]geometry\f[R] (with the \f[CR]geometry\f[R] variable set),
|
||||
\f[CR]setspace\f[R] (with \f[CR]linestretch\f[R]), and \f[CR]babel\f[R]
|
||||
(with \f[CR]lang\f[R]).
|
||||
If \f[CR]CJKmainfont\f[R] is set, \f[CR]xeCJK\f[R] is needed if
|
||||
\f[CR]xelatex\f[R] is used, else \f[CR]luatexja\f[R] is needed if
|
||||
\f[CR]lualatex\f[R] is used.
|
||||
@@ -446,6 +447,8 @@ markup)
|
||||
.IP \(bu 2
|
||||
\f[CR]textile\f[R] (Textile)
|
||||
.IP \(bu 2
|
||||
\f[CR]t2t\f[R] (txt2tags)
|
||||
.IP \(bu 2
|
||||
\f[CR]slideous\f[R] (Slideous HTML and JavaScript slide show)
|
||||
.IP \(bu 2
|
||||
\f[CR]slidy\f[R] (Slidy HTML and JavaScript slide show)
|
||||
@@ -522,8 +525,8 @@ can be set using a defaults file.
|
||||
The file will be searched for first in the working directory, and then
|
||||
in the \f[CR]defaults\f[R] subdirectory of the user data directory (see
|
||||
\f[CR]\-\-data\-dir\f[R]).
|
||||
The \f[CR].yaml\f[R] extension will be added if \f[I]FILE\f[R] lacs an
|
||||
extension.
|
||||
If \f[I]FILE\f[R] lacks an extension, pandoc will also try adding the
|
||||
\f[CR].yaml\f[R] extension if \f[I]FILE\f[R] is not found.
|
||||
See the section Defaults files for more information on the file format.
|
||||
Settings from the defaults file may be overridden or extended by
|
||||
subsequent options on the command line.
|
||||
@@ -952,6 +955,11 @@ default) \f[CR]groff\f[R] as a \f[CR]\-\-pdf\-engine\f[R], the table of
|
||||
contents will appear at the end of the document.
|
||||
If you would prefer it to be at the beginning of the document, before
|
||||
the title, you can use \f[CR]\-\-pdf\-engine=pdfroff\f[R].
|
||||
.PP
|
||||
Because the entries in a table of contents need heading identifiers to
|
||||
link to, this option forces the \f[CR]auto_identifiers\f[R] extension on
|
||||
for the input format, even when it is off by default (as it is for
|
||||
\f[CR]typst\f[R]).
|
||||
.RE
|
||||
.TP
|
||||
\f[CR]\-\-toc\-depth=\f[R]\f[I]NUMBER\f[R]
|
||||
@@ -3497,6 +3505,10 @@ line height (e.g.\ \f[CR]12p\f[R])
|
||||
.TP
|
||||
\f[CR]pointsize\f[R]
|
||||
point size (e.g.\ \f[CR]10p\f[R])
|
||||
.SS Variables for RTF
|
||||
.TP
|
||||
\f[CR]fontsize\f[R]
|
||||
font size for body text, e.g.\ \f[CR]12pt\f[R] or \f[CR]12.5pt\f[R].
|
||||
.SS Variables set automatically
|
||||
Pandoc sets these variables automatically in response to options or
|
||||
document contents; users can also modify them.
|
||||
@@ -3643,7 +3655,8 @@ This extension can be enabled/disabled for the following formats:
|
||||
.TP
|
||||
input formats
|
||||
\f[CR]markdown\f[R], \f[CR]latex\f[R], \f[CR]rst\f[R],
|
||||
\f[CR]mediawiki\f[R], \f[CR]textile\f[R], \f[CR]man\f[R]
|
||||
\f[CR]mediawiki\f[R], \f[CR]textile\f[R], \f[CR]man\f[R],
|
||||
\f[CR]typst\f[R]
|
||||
.TP
|
||||
output formats
|
||||
\f[CR]markdown\f[R], \f[CR]muse\f[R]
|
||||
@@ -3861,13 +3874,15 @@ output formats
|
||||
\f[CR]docx\f[R], \f[CR]odt\f[R], \f[CR]opendocument\f[R],
|
||||
\f[CR]html\f[R], \f[CR]latex\f[R]
|
||||
.SS Extension: \f[CR]native_numbering\f[R]
|
||||
Enables native numbering of figures and tables.
|
||||
Enumeration starts at 1.
|
||||
.PP
|
||||
Enables numbering of figures and tables via counter fields specific to
|
||||
the target format.
|
||||
This extension can be enabled/disabled for the following formats:
|
||||
.TP
|
||||
output formats
|
||||
\f[CR]odt\f[R], \f[CR]opendocument\f[R], \f[CR]docx\f[R]
|
||||
.PP
|
||||
If this extension is not enabled, tables and figures in these formats
|
||||
will not be numbered.
|
||||
.SS Extension: \f[CR]xrefs_name\f[R]
|
||||
Links to headings, figures and tables inside the document are
|
||||
substituted with cross\-references that will use the name or caption of
|
||||
@@ -4557,6 +4572,11 @@ used as an ordered list marker in place of a numeral:
|
||||
.PP
|
||||
Note: the `\f[CR]#\f[R]' ordered list marker doesn\(cqt work with
|
||||
\f[CR]commonmark\f[R].
|
||||
.PP
|
||||
As with \f[CR]commonmark\f[R], ordered sublists must start with
|
||||
\f[CR]1\f[R] or the equivalent (e.g., \f[CR]i\f[R] or \f[CR]a\f[R]).
|
||||
This helps avoid unintentional lists caused by things like parenthesized
|
||||
dates.
|
||||
.SS Extension: \f[CR]startnum\f[R]
|
||||
Pandoc also pays attention to the type of list marker used, and to the
|
||||
starting number, and both of these are preserved where possible in the
|
||||
@@ -4626,7 +4646,7 @@ two spaces.
|
||||
.PP
|
||||
A term may have multiple definitions, and each definition may consist of
|
||||
one or more indented block elements (paragraph, code block, list, etc.).
|
||||
The blocks in the definition shoud be indented to the column of the
|
||||
The blocks in the definition should be indented to the column of the
|
||||
first non\-space content after the \f[CR]:\f[R] or \f[CR]\(ti\f[R]
|
||||
marker, or (if the \f[CR]four_space_rule\f[R] extension is enabled) four
|
||||
spaces or one tab stop.
|
||||
@@ -4771,10 +4791,11 @@ If a horizontal rule is not followed by a blank line, pandoc may try to
|
||||
interpret the lines that follow as a YAML metadata block or a table.
|
||||
.SS Tables
|
||||
Four kinds of tables may be used.
|
||||
The first three kinds presuppose the use of a fixed\-width font, such as
|
||||
The first three kinds (simple, multiline, and grid) require lining up
|
||||
columns and thus presuppose the use of a fixed\-width font, such as
|
||||
Courier.
|
||||
The fourth kind can be used with proportionally spaced fonts, as it does
|
||||
not require lining up columns.
|
||||
The fourth kind (pipe tables) can be used with proportionally spaced
|
||||
fonts, as it does not require lining up columns.
|
||||
.SS Extension: \f[CR]table_captions\f[R]
|
||||
A caption may optionally be provided with all 4 kinds of tables (as
|
||||
illustrated in the examples below).
|
||||
@@ -5041,6 +5062,31 @@ caption.
|
||||
.EX
|
||||
: Here\(aqs the caption. {#ident .class key=\(dqvalue\(dq}
|
||||
.EE
|
||||
.SS Table placement in LaTeX
|
||||
By default, pandoc will render tables in LaTeX using the
|
||||
\f[CR]longtable\f[R] environment.
|
||||
The tables will not \(lqfloat\(rq and they can span page boundaries.
|
||||
If you prefer standard \(lqfloating\(rq tables (which are limited to
|
||||
what can fit on one page), add the \f[CR]float\f[R] class to the
|
||||
table\(cqs attributes (which can be specified after the caption).
|
||||
Optionally, the \f[CR]latex\-placement\f[R] attribute may be used to
|
||||
pass parameters affecting the float placement:
|
||||
.IP
|
||||
.EX
|
||||
: The caption of the table. {#ident .float latex\-placement=\(dqht\(dq}
|
||||
.EE
|
||||
.PP
|
||||
Note that \f[CR]longtable\f[R] does not work with two\-column layouts,
|
||||
so if you are producing a two\-column document using LaTeX, you will
|
||||
need to specify the \f[CR]float\f[R] class on every table, or use this
|
||||
small Lua filter to add it automatically:
|
||||
.IP
|
||||
.EX
|
||||
\f[B]function\f[R] Table(el)
|
||||
el.classes:insert(\(dqfloat\(dq)
|
||||
\f[B]return\f[R] el
|
||||
\f[B]end\f[R]
|
||||
.EE
|
||||
.SS Metadata blocks
|
||||
.SS Extension: \f[CR]pandoc_title_block\f[R]
|
||||
If the file begins with a title block
|
||||
@@ -5510,7 +5556,7 @@ LaTeX
|
||||
It will appear verbatim surrounded by \f[CR]\(rs(...\(rs)\f[R] (for
|
||||
inline math) or \f[CR]\(rs[...\(rs]\f[R] (for display math).
|
||||
.TP
|
||||
Markdown, Emacs Org mode, ConTeXt, ZimWiki
|
||||
Markdown, Emacs Org mode, ConTeXt, Txt2Tags, ZimWiki
|
||||
It will appear verbatim surrounded by \f[CR]$...$\f[R] (for inline math)
|
||||
or \f[CR]$$...$$\f[R] (for display math).
|
||||
.TP
|
||||
@@ -5575,8 +5621,8 @@ it, but it has been made an extension so that it can be disabled if
|
||||
desired.)
|
||||
.PP
|
||||
The raw HTML is passed through unchanged in HTML, S5, Slidy, Slideous,
|
||||
DZSlides, EPUB, Markdown, CommonMark, Emacs Org mode, and Textile
|
||||
output, and suppressed in other formats.
|
||||
DZSlides, EPUB, Markdown, CommonMark, Emacs Org mode, Textile, and
|
||||
Txt2Tags output, and suppressed in other formats.
|
||||
.PP
|
||||
For a more explicit way of including raw HTML in a Markdown document,
|
||||
see the \f[CR]raw_attribute\f[R] extension.
|
||||
@@ -5881,7 +5927,8 @@ slide shows and EPUB), LaTeX, and ConTeXt.
|
||||
.SS Images
|
||||
A link immediately preceded by a \f[CR]!\f[R] will be treated as an
|
||||
image.
|
||||
The link text will be used as the image\(cqs alt text:
|
||||
The link text (the part in square brackets) will be used as the
|
||||
image\(cqs alt text:
|
||||
.IP
|
||||
.EX
|
||||

|
||||
@@ -7414,7 +7461,9 @@ creator:
|
||||
text: Sarah Jones
|
||||
identifier:
|
||||
\- scheme: DOI
|
||||
text: doi:10.234234.234/33
|
||||
text: \(aqurn:doi:10.234234.234/33\(aq
|
||||
\- scheme: ISBN\-13
|
||||
text: \(aqurn:isbn:9780000000000\(aq
|
||||
publisher: My Press
|
||||
rights: © 2007 John Smith, CC BY\-NC
|
||||
ibooks:
|
||||
@@ -7425,8 +7474,8 @@ ibooks:
|
||||
The following fields are recognized:
|
||||
.TP
|
||||
\f[CR]identifier\f[R]
|
||||
Either a string value or an object with fields \f[CR]text\f[R] and
|
||||
\f[CR]scheme\f[R].
|
||||
Either a string value, or an object with fields \f[CR]text\f[R] and
|
||||
\f[CR]scheme\f[R] (optional), or a list of such objects.
|
||||
Valid values for \f[CR]scheme\f[R] are \f[CR]ISBN\-10\f[R],
|
||||
\f[CR]GTIN\-13\f[R], \f[CR]UPC\f[R], \f[CR]ISMN\-10\f[R],
|
||||
\f[CR]DOI\f[R], \f[CR]LCCN\f[R], \f[CR]GTIN\-14\f[R],
|
||||
@@ -7436,17 +7485,22 @@ Valid values for \f[CR]scheme\f[R] are \f[CR]ISBN\-10\f[R],
|
||||
\f[CR]OLCC number\f[R], \f[CR]JP Magazine ID\f[R], \f[CR]UPC\-12+5\f[R],
|
||||
\f[CR]BNF Control number\f[R], \f[CR]ISSN\-13\f[R], \f[CR]ARK\f[R],
|
||||
\f[CR]Digital file internal version number\f[R].
|
||||
In the \f[CR]text\f[R] field, it is advisable to specify a URN as in the
|
||||
examples above.
|
||||
Note that quotes are needed around a YAML field containing a colon.
|
||||
.TP
|
||||
\f[CR]title\f[R]
|
||||
Either a string value, or an object with fields \f[CR]file\-as\f[R] and
|
||||
\f[CR]type\f[R], or a list of such objects.
|
||||
Either a string value, or an object with fields \f[CR]text\f[R],
|
||||
\f[CR]file\-as\f[R] (optional) and \f[CR]type\f[R] (optional), or a list
|
||||
of such objects.
|
||||
Valid values for \f[CR]type\f[R] are \f[CR]main\f[R],
|
||||
\f[CR]subtitle\f[R], \f[CR]short\f[R], \f[CR]collection\f[R],
|
||||
\f[CR]edition\f[R], \f[CR]extended\f[R].
|
||||
.TP
|
||||
\f[CR]creator\f[R]
|
||||
Either a string value, or an object with fields \f[CR]role\f[R],
|
||||
\f[CR]file\-as\f[R], and \f[CR]text\f[R], or a list of such objects.
|
||||
Either a string value, or an object with fields \f[CR]text\f[R],
|
||||
\f[CR]role\f[R] (optional), and \f[CR]file\-as\f[R] (optional), or a
|
||||
list of such objects.
|
||||
Valid values for \f[CR]role\f[R] are MARC relators, but pandoc will
|
||||
attempt to translate the human\-readable versions (like \(lqauthor\(rq
|
||||
and \(lqeditor\(rq) to the appropriate marc relators.
|
||||
@@ -7465,7 +7519,8 @@ Pandoc will default to the local language if nothing is specified.
|
||||
.TP
|
||||
\f[CR]subject\f[R]
|
||||
Either a string value, or an object with fields \f[CR]text\f[R],
|
||||
\f[CR]authority\f[R], and \f[CR]term\f[R], or a list of such objects.
|
||||
\f[CR]authority\f[R] (optional), and \f[CR]term\f[R] (optional), or a
|
||||
list of such objects.
|
||||
Valid values for \f[CR]authority\f[R] are either a reserved authority
|
||||
value (currently \f[CR]AAT\f[R], \f[CR]BIC\f[R], \f[CR]BISAC\f[R],
|
||||
\f[CR]CLC\f[R], \f[CR]DDC\f[R], \f[CR]CLIL\f[R], \f[CR]EuroVoc\f[R],
|
||||
@@ -8273,39 +8328,81 @@ principle do anything on your file system.
|
||||
Please audit filters and custom writers very carefully before using
|
||||
them.
|
||||
.IP "2." 3
|
||||
If you want to use pandoc in a web application that accepts untrusted
|
||||
user input, you should be aware that running pandoc in this context
|
||||
requires special precautions, or you risk exfiltration of the contents
|
||||
of local files, or worse.
|
||||
In particular:
|
||||
.RS 4
|
||||
.IP \(bu 2
|
||||
Several input formats (including LaTeX, Org, RST, and Typst) support
|
||||
\f[CR]include\f[R] directives that allow the contents of a file to be
|
||||
included in the output.
|
||||
An untrusted attacker could use these to view the contents of files on
|
||||
the file system.
|
||||
(Using the \f[CR]\-\-sandbox\f[R] option can protect against this
|
||||
threat.)
|
||||
.IP "3." 3
|
||||
Using the \f[CR]\-\-sandbox\f[R] option will protect against this
|
||||
threat.
|
||||
.IP \(bu 2
|
||||
Several output formats (including RTF, FB2, HTML with
|
||||
\f[CR]\-\-self\-contained\f[R], EPUB, Docx, and ODT) will embed encoded
|
||||
or raw images into the output file.
|
||||
An untrusted attacker could exploit this to view the contents of
|
||||
non\-image files on the file system.
|
||||
(Using the \f[CR]\-\-sandbox\f[R] option can protect against this
|
||||
threat, but will also prevent including images in these formats.)
|
||||
.IP "4." 3
|
||||
Using the \f[CR]\-\-sandbox\f[R] option will protect against this
|
||||
threat, but will also prevent including images in these formats.
|
||||
.IP \(bu 2
|
||||
In reading HTML files, pandoc will attempt to include the contents of
|
||||
\f[CR]iframe\f[R] elements by fetching content from the local file or
|
||||
URL specified by \f[CR]src\f[R].
|
||||
If untrusted HTML is processed on a server, this has the potential to
|
||||
reveal anything readable by the process running the server.
|
||||
Using the \f[CR]\-f html+raw_html\f[R] will mitigate this threat by
|
||||
causing the whole \f[CR]iframe\f[R] to be parsed as a raw HTML block.
|
||||
Using \f[CR]\-\-sandbox\f[R] will also protect against the threat.
|
||||
.IP "5." 3
|
||||
If your application uses pandoc as a Haskell library (rather than
|
||||
shelling out to the executable), it is possible to use it in a mode that
|
||||
fully isolates pandoc from your file system, by running the pandoc
|
||||
operations in the \f[CR]PandocPure\f[R] monad.
|
||||
See the document Using the pandoc API for more details.
|
||||
(This corresponds to the use of the \f[CR]\-\-sandbox\f[R] option on the
|
||||
command line.)
|
||||
.IP "6." 3
|
||||
reveal anything readable by the process running the server or to enable
|
||||
server\-side request forgery (SSRF) attacks (CVE\-2025\-51591).
|
||||
To mitigate such attacks, use \f[CR]\-\-sandbox\f[R] or
|
||||
\f[CR]\-f html+raw_html\f[R] (which causes the whole \f[CR]iframe\f[R]
|
||||
to be parsed as a raw HTML block).
|
||||
.IP \(bu 2
|
||||
Using pandoc with \f[CR]\-\-pdf\-engine\f[R] introduces additional
|
||||
risks, which cannot be mitigated by using \f[CR]\-\-sandbox\f[R].
|
||||
For example, in \f[CR]wkhtmltopdf\f[R] the \f[CR]footer\-html\f[R] and
|
||||
\f[CR]header\-html\f[R] metadata fields will be passed directly to
|
||||
\f[CR]wkhtmltopdf\f[R] as \f[CR]\-\-footer\-html\f[R] and
|
||||
\f[CR]\-\-header\-html\f[R] arguments, and by using a \f[CR]file:\f[R]
|
||||
URIs with these, one could exfiltrate local files.
|
||||
In addition, using \f[CR]\-\-pdf\-engine=wkhtmltopdf\f[R] with
|
||||
\f[CR]\-f html+raw_html\f[R] enables an SSRF vulnerability in
|
||||
wkhtmltopdf (CVE\-2022\-35583).
|
||||
Note that [\f[CR]wkhtmltopdf\f[R]) is deprecated and its authors
|
||||
recommend not to use it with any untrusted input.
|
||||
However, there may be similar issues with other pdf\-engines.
|
||||
Anyone including a pdf\-engine in a pandoc command run on untrusted
|
||||
input should audit the engine carefully and carefully control the use of
|
||||
\f[CR]\-\-pdf\-engine\-opt\f[R].
|
||||
.PP
|
||||
Here are some alternatives for safe use of pandoc in a web application:
|
||||
.IP \(bu 2
|
||||
Use \f[CR]pandoc server\f[R] to spin up a local web server, and have
|
||||
your application make requests to it.
|
||||
The server runs in sandboxed mode and will not be able to read files or
|
||||
use filters.
|
||||
.IP \(bu 2
|
||||
Use the WASM version of pandoc.
|
||||
This allows the use of Lua filters, but everything runs in an isolated
|
||||
WASM sandbox.
|
||||
.IP \(bu 2
|
||||
Use \f[CR]pandoc \-\-sandbox\f[R].
|
||||
However, be aware that the sandbox function only affects readers and
|
||||
writers, and security issues can arise if you use it together with
|
||||
\f[CR]\-\-filter\f[R] or \f[CR]\-\-pdf\-engine\f[R].
|
||||
.RE
|
||||
.IP "3." 3
|
||||
The HTML generated by pandoc is not guaranteed to be safe.
|
||||
If \f[CR]raw_html\f[R] is enabled for the Markdown input, users can
|
||||
inject arbitrary HTML.
|
||||
Even if \f[CR]raw_html\f[R] is disabled, users can include dangerous
|
||||
content in URLs and attributes.
|
||||
To be safe, you should run all HTML generated from untrusted user input
|
||||
through an HTML sanitizer.
|
||||
.IP "4." 3
|
||||
Pandoc\(cqs parsers can exhibit pathological performance on some corner
|
||||
cases.
|
||||
It is wise to put any pandoc operations under a timeout, to avoid DOS
|
||||
@@ -8317,14 +8414,14 @@ Note that the \f[CR]commonmark\f[R] parser (including
|
||||
\f[CR]commonmark_x\f[R] and \f[CR]gfm\f[R]) is much less vulnerable to
|
||||
pathological performance than the \f[CR]markdown\f[R] parser, so it is a
|
||||
better choice when processing untrusted input.
|
||||
.IP "7." 3
|
||||
The HTML generated by pandoc is not guaranteed to be safe.
|
||||
If \f[CR]raw_html\f[R] is enabled for the Markdown input, users can
|
||||
inject arbitrary HTML.
|
||||
Even if \f[CR]raw_html\f[R] is disabled, users can include dangerous
|
||||
content in URLs and attributes.
|
||||
To be safe, you should run all HTML generated from untrusted user input
|
||||
through an HTML sanitizer.
|
||||
.IP "5." 3
|
||||
If your application uses pandoc as a Haskell library (rather than
|
||||
shelling out to the executable), it is possible to use it in a mode that
|
||||
fully isolates pandoc from your file system, by running the pandoc
|
||||
operations in the \f[CR]PandocPure\f[R] monad.
|
||||
See the document Using the pandoc API for more details.
|
||||
(This corresponds to the use of the \f[CR]\-\-sandbox\f[R] option on the
|
||||
command line.)
|
||||
.SH AUTHORS
|
||||
Copyright 2006\(en2024 John MacFarlane (jgm\(atberkeley.edu).
|
||||
Released under the GPL, version 2 or greater.
|
||||
|
||||
Reference in New Issue
Block a user