Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
pandoc-server(1)	       Pandoc User's Guide		pandoc-server(1)

NAME
     pandoc-server - web server exposing pandoc API

SYNOPSIS
     pandoc-server [options]

DESCRIPTION
     pandoc-server  is a web server that can perform pandoc conversions.  It can
     be used either as a running server or as a CGI program.

     To use pandoc-server as a CGI program, rename it (or symlink  it)	as  pan-
     doc-server.cgi.  (Note: if you symlink it, you may need to adjust your web-
     server's  configuration in order to allow it to follow symlinks for the CGI
     script.)

     All pandoc functions are run in the PandocPure monad,  which  ensures  that
     they  can	do  no I/O operations on the server.  This should provide a high
     degree of security.  This security does, however,	impose	certain  limita-
     tions:

     * PDFs cannot be produced.

     * Filters are not supported.

     * Resources cannot be fetched via HTTP.

     * Any  images,  include  files,  or other resources needed for the document
       conversion must be explicitly included in  the  request,  via  the  files
       field (see below under API).

OPTIONS
     --port NUM
	    HTTP port on which to run the server.  Default: 3030.

     --timeout SECONDS
	    Timeout in seconds, after which a conversion is killed.  Default: 2.
	    When  pandoc-server  is run as a CGI program, this option can be set
	    via the PANDOC_SERVER_TIMEOUT environment variable.

     --help
	    Print this help.

     --version
	    Print version.

API
   Root endpoint
     The root (/) endpoint accepts only POST requests.

   Response
     It returns a converted document in one of the following formats  (in  order
     of preference), depending on the Accept header:

     * application/octet-stream

     * text/plain

     * application/json

     If  the  result  is a binary format (e.g., epub or docx) and the content is
     returned as plain text or JSON, the binary will be base64 encoded.

     If a JSON response is given, it will have one of the following formats.  If
     the conversion is not successful:

	    { "error": string with the error message }

     If the conversion is successful:

	    { "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) }

     Each element of the "messages" array will have the format

	    { "message": string,
	      "verbosity": string (either "WARNING" or "INFO") }

   Request
     The body of the POST request should be a JSON object,  with  the  following
     fields.   Only the text field is required; all of the others can be omitted
     for default values.  When there are several string alternatives, the  first
     one given is the default.

     text (string)
	    The  document  to  be converted.  Note: if the from format is binary
	    (e.g., epub or docx), then text should be a base64 encoding  of  the
	    document.

     from (string, default "markdown")
	    The  input format, possibly with extensions, just as it is specified
	    on the pandoc command line.

     to (string, default "html")
	    The output format, possibly with extensions, just as it is specified
	    on the pandoc command line.

     shift-heading-level-by (integer, default 0)
	    Increase or decrease the level of all headings.

     indented-code-classes (array of strings)
	    List of classes to be applied to indented Markdown code blocks.

     default-image-extension (string)
	    Extension to be  applied  to  image  sources  that	lack  extensions
	    (e.g. ".jpg").

     metadata (JSON map)
	    String-valued metadata.

     tab-stop (integer, default 4)
	    Tab stop (spaces per tab).

     track-changes ("accept"|"reject"|"all")
	    Specifies  what  to do with insertions, deletions, and comments pro-
	    duced by the MS Word "Track Changes" feature.  Only affects docx in-
	    put.

     abbreviations (file path)
	    List of strings to be regarded as abbreviations when  parsing  Mark-
	    down.  See --abbreviations in pandoc(1) for details.

     typst-inputs (JSON map)
	    Inputs  to be provided to the typst evaluator.  See --typst-input in
	    pandoc(1) for details.

     standalone (boolean, default false)
	    If true, causes a standalone document to be produced, using the  de-
	    fault  template or the custom template specified using template.  If
	    false, a fragment will be produced.

     template (string)
	    String contents of a document template (see Templates  in  pandoc(1)
	    for the format).

     variables (JSON map)
	    Variables  to  be  interpolated  in the template.  (See Templates in
	    pandoc(1).)

     dpi (integer, default 96)
	    Dots-per-inch to use for conversions between pixels and  other  mea-
	    surements (for image sizes).

     wrap ("auto"|"preserve"|"none")
	    Text  wrapping option: either "auto" (automatic hard-wrapping to fit
	    within a column width), "preserve" (insert newlines where  they  are
	    present in the source), or "none" (don't insert any unnecessary new-
	    lines at all).

     columns (integer, default 72)
	    Column  width (affects text wrapping and calculation of table column
	    widths in plain text formats)

     table-of-contents (boolean, default false)
	    Include a table of contents (in supported formats).

     toc-depth (integer, default 3)
	    Depth of sections to include in the table of contents.

     list-of-figures (boolean, default false)
	    Include a list of figures (in supported formats).

     list-of-tables (boolean, default false)
	    Include a list of tables (in supported formats).

     strip-comments (boolean, default false)
	    Causes HTML comments to be stripped in Markdown or	Textile  source,
	    instead of being passed through to the output format.

     syntax-highlighting ("default"|"none"|"idiomatic"|style)
	    The  method  used  for code syntax highlighting.  Setting a specific
	    style causes highlighting to be performed with  the  internal  high-
	    lighting  engine, using KDE syntax definitions and styles.	The "id-
	    iomatic" method uses a format-specific highlighter if one is  avail-
	    able,  or  the  default  style if the target format has no idiomatic
	    highlighting method.  Setting this option to none disables all  syn-
	    tax  highlighting.	 The "default" method uses a format-specific de-
	    fault.

	    Standard styles are "pygments" (the default), "kate",  "monochrome",
	    "breezeDark", "espresso", "zenburn", "haddock", and "tango".  Alter-
	    natively,  the  path of a .theme with a KDE syntax theme may be used
	    (in this case, the relevant file contents must also be  included  in
	    files, see below).

	    The  default  for  HTML, EPUB, Docx, Ms, Man, and LaTeX output is to
	    use the internal highlighter with the default  style;  Typst  output
	    relies on Typst's own syntax highlighting system by default.

     embed-resources
	    Embed  images,  scripts, styles and other resources in an HTML docu-
	    ment using data URIs.  Note that this will not work unless the  con-
	    tents of all external resources are included under files.

     html-q-tags (boolean, default false)
	    Use <q> elements in HTML instead of literal quotation marks.

     ascii (boolean, default false)
	    Use entities and escapes when possible to avoid non-ASCII characters
	    in the output.

     reference-links (boolean, default false)
	    Create reference links rather than inline links in Markdown output.

     reference-location ("document"|"section"|"block")
	    Determines	whether  link references and footnotes are placed at the
	    end of the document, the end of the section, or the end of the block
	    (e.g. paragraph), in certain formats.  (See pandoc(1) under --refer-
	    ence-location.)

     setext-headers (boolean, default false)
	    Use Setext (underlined) headings  instead  of  ATX	(#-prefixed)  in
	    Markdown output.

     top-level-division ("default"|"part"|"chapter"|"section")
	    Determines how top-level headings are interpreted in LaTeX, ConTeXt,
	    DocBook,  and TEI.	The "default" value tries to choose the best in-
	    terpretation based on heuristics.

     number-sections (boolean, default false)
	    Automatically number sections (in supported formats).

     number-offset (array of integers)
	    Offsets to be added to each component of the  section  number.   For
	    example, [1] will cause the first section to be numbered "2" and the
	    first  subsection  "2.1";  [0,1]  will cause the first section to be
	    numbered "1" and the first subsection "1.2."

     html-math-method ("plain"|"webtex"|"gladtex"|"mathml"|"mathjax"|"katex")
	    Determines how math is represented in HTML.

     listings (boolean, default false)
	    Use the listings package to format code in LaTeX output.

     incremental (boolean, default false)
	    If true, lists appear incrementally by default in slide shows.

     slide-level (integer)
	    Heading level that deterimes slide divisions in  slide  shows.   The
	    default  is  to  pick the highest heading level under which there is
	    body text.

     section-divs (boolean, default false)
	    Arrange the document into a hierarchy of nested  sections  based  on
	    the headings.

     email-obfuscation ("none"|"references"|"javascript")
	    Determines how email addresses are obfuscated in HTML.

     identifier-prefix (string)
	    Prefix to be added to all automatically-generated identifiers.

     title-prefix (string)
	    Prefix to be added to the title in the HTML header.

     reference-doc (file path)
	    Reference doc to use in creating docx or odt or pptx.  See pandoc(1)
	    under --reference-doc for details.	The contents of the file must be
	    included under files.

     split-level (integer, default 1)
	    Heading level at which documents are split in EPUB or chunked HTML.

     epub-cover-image (file path)
	    Cover image for EPUB.  The contents of the file must be included un-
	    der files.

     epub-metadata (file path)
	    Path of file containing Dublin core XML elements to be used for EPUB
	    metadata.  The contents of the file must be included under files.

     epub-subdirectory (string, default "EPUB")
	    Name of content subdirectory in the EPUB container.

     epub-fonts (array of file paths)
	    Fonts to include in the EPUB.  The fonts themselves must be included
	    in files (see below).

     ipynb-output ("best"|"all"|"none")
	    Determines	how  ipynb output cells are treated.  all means that all
	    of the data formats included in the original  are  preserved.   none
	    means that the contents of data cells are omitted.	best causes pan-
	    doc  to  try to pick the richest data block in each output cell that
	    is compatible with the output format.

     citeproc (boolean, default false)
	    Causes citations to be processed using citeproc.  See  Citations  in
	    pandoc(1) for details.

     bibliography (array of file paths)
	    Files containing bibliographic data.  The contents of the files must
	    be included in files.

     csl (file path)
	    CSL style file.  The contents of the file must be included in files.

     cite-method ("citeproc"|"natbib"|"biblatex")
	    Determines how citations are formatted in LaTeX output.

     files (JSON mapping of file paths to base64-encoded strings)
	    Any files needed for the conversion, including images referred to in
	    the  document  source, should be included here.  Binary data must be
	    base64-encoded.  Textual data may be left as it  is,  unless  it  is
	    also  valid  base 64 data, in which case it will be interpreted that
	    way.

   /batch endpoint
     The /batch endpoint behaves like the root endpoint, except  for  these  two
     points:

     * It  accepts a JSON array, each element of which is a JSON object like the
       one expected by the root endpoint.

     * It returns a JSON array of JSON results.

     This endpoint can be used to convert a sequence of small  snippets  in  one
     request.

   /version endpoint
     The  /version endpoint accepts a GET request and returns the pandoc version
     as a plain or JSON-encoded string, depending on Accept headers.

   /babelmark endpoint
     The /babelmark endpoint accepts a GET request with the following query  pa-
     rameters:

     * text (required string)

     * from (optional string, default is "markdown")

     * to (optional string, default is "html")

     * standalone (optional boolean, default is false)

     It  returns  a  JSON object with fields html and version.	This endpoint is
     designed to support the Babelmark website.

AUTHORS
     Copyright 2022 John MacFarlane (jgm@berkeley.edu).  Released under the GPL,
     version 2 or greater.  This software carries no warranty of any kind.  (See
     COPYRIGHT for full copyright and warranty notices.)

     The  Pandoc   source   code   may	 be   downloaded   from   <https://hack-
     age.haskell.org/package/pandoc>	or    <https://github.com/jgm/pandoc/re-
     leases>.  Further documentation is available at <https://pandoc.org>.

pandoc 3.10			 August 15, 2022		pandoc-server(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pandoc-server&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help