The focus of this release is customizability. Several features
have been added that should make it easier to fit pandoc to your
needs:
-
Flexible metadata: metadata is no longer limited to title,
authors, and date. You can add whatever fields you like. Metadata
values are also structured: they can be lists, maps, booleans,
strings, or lists of pandoc Inline or Block elements. A new
YAML metadata block is provided so structured metadata can be
included in pandoc markdown documents. (Of course, the old title
blocks will still work, and can be combined with the YAML blocks.)
Template variables will automatically be set from metadata, so
if you want to create a template with variables likesubject
,
abstract
, orauthor.institution
, you can. -
A new
--filter
option is provided, to make it easier to use
JSON filters that transform the pandoc AST. Instead ofpandoc -t json -s | ./myfilter | pandoc -f json -t html5 -s
you can now do
pandoc -t html5 -s --filter ./myfilter
Pandoc passes the output format as the first argument to the
filter, so filters can easily be made sensitive to the output
format. (For example, a graphviz filter might produce a PNG
if the output is HTML and a PDF if the output is LaTeX.) -
For those who don't know Haskell, a python library,
pandocfilters
, has been created to make it easy to write pandoc
filters using python. There are some examples in the
pandocfilters repository. -
You can now script your own custom pandoc writer using lua. See
example 33 on the
demos page. While
JSON filters are a better approach for most customizations, this
approach gives you complete control over the writer's behavior,
and allows you to support completely new output formats. -
Generic Inline (
Span
) and Block (Div
) containers that take
attributes have been added to the underlying Pandoc types.
These provide the customization possibilites for formatted
text that theCode
andCodeBlock
elements provide for unformatted
text.
Other significant changes include support for OPML (as both an input
and an output format), support for writing reveal.js slide shows,
and support for reading Haddock markup.
Citation support has been extracted from core pandoc and put into
a new pandoc-citeproc
package. (Users who install pandoc using
cabal should cabal install pandoc-citeproc
if they want to use
citations.) Bibliographic information can now be included right in
a pandoc markdown document, inside a YAML metadata block, making
the document self-contained. (A tool biblio2yaml
is provided to
convert existing bibliographies, for those who want to do this.)