ANN: pandoc 2.8


Quoting from John MacFarlane’s announcement mail:

I’m pleased to announce the release of pandoc 2.8,
available in the usual places:

Binary packages & changelog:
Source & API documentation:

A full list of changes (including some API changes) can be found at

Some highlights:

  • Improvements to the template language, adding ‘elseif’,
    ‘it’, partials, filters, and syntax to control nesting
    and reflowing of text. These changes make pandoc more
    suitable for generating plain text documents (even
    tables and enumerated lists) from data in YAML metadata.
    For an example, see #37 in
    Template syntax is now described fully in the manual.

  • A new --defaults flag allows you to specify a collection of
    default option values in a YAML file.

  • –list-extensions=FORMAT now lists only extensions affecting FORMAT,
    and the use of an unsupported extension raises an error.

  • New option --shift-heading-level, replacing --base-heading-level.
    This supports converting documents that use an initial level-1
    heading for the document title.

  • –metadata-file can now be used with multiple metadata files.

  • Text is used instead of String throughout the API.

  • The ‘unlisted’ class may now be used to prevent an unnumbered
    heading from appearing in the table of contents.

  • Multiple YAML metadata blocks are now merged differently:
    when the same field is given values by two different blocks,
    the conflict is resolved in favor of the second (and similarly
    with --metadata-file).

  • Note that lua filters that use ‘hierarchicalize’ will need to
    be changed to use ‘make_sections’ instead, and Haskell filters
    and programs using ‘hierarchicalize’ will need to be rewritten
    to use ‘makeSections’.

Many bugs have been fixed, and many small improvements
have been made. We recommend that all users upgrade.

Thanks to everyone who contributed! I think we had a record
number of new contributors in this release, including
Arfon Smith, Amogh Rathore, Ben Steinberg, Christian Despres,
Dmitry Pogodin, Eigil Rischel, Félix Baylac-Jacqué, Florian
Beeres, Florian Klink, Jan-Otto Kröpke, Jeroen de Haas, Karl
Pettersson, Krystof Beuermann, Leif Metcalf, Michael Peyton
Jones, Ole Martin Ruud, Owen McGrath, Pete Ryland, Philip Pesca,
Tristan Stenner, Urs Liska, Vanessa McHale, Vasily Alferov,
Zihang Chen, blmage, jeongminkim-islab, niszet, oquechy,
vijayphoenix. Special thanks to Christian Despres for
taking on the big job of moving from String to Text
throughout the code base.