-
Markdown reader:
- Don’t coalesce adjacent raw LaTeX blocks if they are separated by a blank line. See lierdakil/pandoc-crossref#160.
- Improved
inlinesInBalancedBrackets
(#4272, jgm/pandoc-citeproc#315). The change both improves performance and fixes a regression whereby normal citations inside inline notes and figure captions were not parsed correctly.
-
RST reader:
- Better handling for headers with an anchor (#4240). Instead of creating a Div containing the header, we put the id directly on the header. This way header promotion will work properly.
- Add aligned environment when needed in math (#4254).
rst2latex.py
uses analign*
environment for math in.. math::
blocks, so this math may contain line breaks. If it does, we put the math in analigned
environment to simulaterst2latex.py
’s behavior.
-
HTML reader:
- Fix col width parsing for percentages < 10% (#4262, n3fariox).
-
LaTeX reader:
-
Advance source position at end of stream.
-
Pass through macro defs in
rawLaTeXBlock
even if thelatex_macros
extension is set (#4246). This reverts to earlier behavior and is probably safer on the whole, since some macros only modify things in included packages, which pandoc’s macro expansion can’t modify. -
Fixed pos calculation in tokenizing escaped space.
-
Allow macro definitions inside macros (#4253). Previously we went into an infinite loop with
\newcommand{\noop}[1]{#1} \noop{\newcommand{\foo}[1]{#1}} \foo{hi}
-
Fix inconsistent column widths (#4238). This fixes a bug whereby column widths for the body were different from widths for the header in some tables.
-
-
Docx reader (Jesse Rosenthal):
- Parse hyperlinks in
instrText
tags (#3389, #4266). This was a form of hyperlink found in older versions of word. The changes introduced for this, though, create a framework for parsing further fields in MS Word (see the spec, ECMA-376-1:2016, §17.16.5, for more on these fields). We introduce a new module,Text.Pandoc.Readers.Docx.Fields
which contains a simple parsec parser. At the moment, only simple hyperlink fields are accepted, but that can be extended in the future.
- Parse hyperlinks in
-
Muse reader (Alexander Krotov):
- Parse
~~
as non-breaking space in Text::Amuse mode. - Refactor list parsing.
- Parse
-
Powerpoint writer (Jesse Rosenthal):
- Change reference to
notesSlide
toendNotesSlide
. - Move image sizing into
picProps
. - Improve table placement.
- Make our own
_rels/.rels
file. - Import reference-doc images properly.
- Move
Presentation.hs
out ofPandocMonad
. - Refactor into separate modules. T.P.W.Powerpoint.Presentation defines the Presentation datatype and goes Pandoc->Presentation; T.P.W.Pandoc.Output goes Presentation->Archive. Text.Pandoc.Writers.Powerpoint a thin wrapper around the two modules.
- Avoid overlapping blocks in column output.
- Position images correctly in two-column layout.
- Make content shape retrieval environment-aware.
- Improve image handling. We now determine image and caption placement by getting the dimensions of the content box in a given layout. This allows for images to be correctly sized and positioned in a different template. Note that images without captions and headers are no longer full-screened. We can’t do this dependably in different layouts, because we don’t know where the header is (it could be to the side of the content, for example).
- Read presentation size from reference file. Our presentation size is now dependent on the reference/template file we use.
- Handle (sub)headers above slidelevel correctly. Above the slidelevel, subheaders will be printed in bold and given a bit of extra space before them. Note that at the moment, no distinction is made between levels of headers above the slide header, though that can be changed.
- Check for required files. Since we now import from reference/dist file by glob, we need to make sure that we’re getting the files we need to make a non-corrupt Powerpoint. This performs that check.
- Improve templating using
--reference-doc
. Templating should work much more reliably now. - Include Notes slide in TOC.
- Set notes slide header to slide-level.
- Add table of contents. This is triggered by the
--toc
flag. Note that in a long slide deck this risks overrunning the text box. The user can address this by setting--toc-depth=1
. - Set notes slide number correctly.
- Clean up adding metadata slide. We want to count the slide numbers correctly if it’s in there.
- Add anchor links. For anchor-type links (
[foo](#bar)
) we produce an anchor link. In powerpoint these are links to slides, so we keep track of a map relating anchors to the slides they occur on. - Make the slide number available to the blocks. For anchors, block-processing functions need to know what slide number they’re in. We make the
envCurSlideId
available to blocks. - Move
curSlideId
to environment. - Allow setting
toc-title
in metadata. - Link notes to endnotes slide.
- Change reference to
-
Markdown writer:
- Fix cell width calculation (#4265). Previously we could get ever-lengthening cell widths when a table was run repeatedly through
pandoc -f markdown -t markdown
.
- Fix cell width calculation (#4265). Previously we could get ever-lengthening cell widths when a table was run repeatedly through
-
LaTeX writer:
- Escape
&
in lstinline (Robert Schütz).
- Escape
-
ConTeXt writer:
- Use xtables instead of Tables (#4223, Henri Menke). Default to xtables for context output. Natural Tables are used if the new
ntb
extension is set.
- Use xtables instead of Tables (#4223, Henri Menke). Default to xtables for context output. Natural Tables are used if the new
-
HTML writer:
- Fixed footnote backlinks with
--id-prefix
(#4235).
- Fixed footnote backlinks with
-
Text.Pandoc.Extensions
: AddedExt_ntb
constructor (API change, Henri Menke). -
Text.Pandoc.ImageSize
: add derivedEq
instance toDimension
(Jesse Rosenthal, API change). -
Lua filters (Albert Krewinkel):
- Make
PANDOC_READER_OPTIONS
available. The options which were used to read the document are made available to Lua filters via thePANDOC_READER_OPTIONS
global. - Add lua module
pandoc.utils.run_json_filter
, which runs a JSON filter on a Pandoc document. - Refactor filter-handling code into
Text.Pandoc.Filter.JSON
,Text.Pandoc.Filter.Lua
, andText.Pandoc.Filter.Path
. - Improve error messages. Provide more context about the task which caused an error.
- Make
-
data/pandoc.lua (Albert Krewinkel):
- Accept singleton inline as a list. Every constructor which accepts a list of inlines now also accepts a single inline element for convenience.
- Accept single block as singleton list. Every constructor which accepts a list of blocks now also accepts a single block element for convenience. Furthermore, strings are accepted as shorthand for
{pandoc.Str "text"}
in constructors. - Add attr, listAttributes accessors. Elements with attributes got an additional
attr
accessor. Attributes were accessible only via theidentifier
,classes
, andattributes
, which was in conflict with the documentation, which indirectly states that such elements have the anattr
property. - Drop
_VERSION
. Having a_VERSION
became superfluous, as this module is closely tied to the pandoc version, which is available viaPANDOC_VERSION
. - Fix access to Attr components. Accessing an Attr value (e.g.,
Attr().classes
) was broken; the more common case of accessing it via an Inline or Block element was unaffected by this.
-
Move
metaValueToInlines
to from Docx writer toText.Pandoc.Writers.Shared
, so it can be used by other writers (Jesse Rosenthal). -
MANUAL.txt:
-
Allow latest QuickCheck, tasty, criterion.
-
Remove custom prelude and ghc 7.8 support.
-
Reduce compiler noise (exact paths for compiled modules).