Releases: jgm/pandoc
pandoc 2.3
-
Add
--metadata-file
option (Mauro Bieg, #1960), which allows users to specify metadata in a YAML file, regardless of the input format (#1960). -
Text.Pandoc.Writers.Shared: export
isDisplayMath
(API change). -
Text.Pandoc.Readers.Markdown: export
yamlToMeta
(API change, Mauro Bieg). -
Text.Pandoc.Readers.LaTeX.Types:
- New type
ArgSpec
(API change). - Second parameter of
Macro
constructor is now[ArgSpec]
instead ofInt
(API change).
- New type
-
Markdown reader:
- Use
tex
instead oflatex
for raw tex-ish content. We can’t always tell if it’s LaTeX, ConTeXt, or plain TeX. Better just to usetex
always. Note that ifcontext
orlatex
specifically is desired, you can still force that in a markdown document by using the raw attribute. Note that this change may affect some filters, if they assume that raw tex parsed by the Markdown reader will be RawBlock (Formatlatex
). In most cases it should be trivial to modify the filters to accepttex
as well. - Refactor and reorganize YAML code (Mauro Bieg).
- Make
example_lists
work for interrupted lists withoutstartnum
(#4908).
- Use
-
HTML reader:
- Parse
<script type="math/tex
tags as math (#4877). These are used by MathJax in some configurations. - Extract spaces inside links instead of trimming them (Alexander Krotov, #4845).
- Added round-trip tests (Alexander Krotov).
- Make parsing sensitive to the
raw_tex
extension (#1126). This now allows raw LaTeX environments,\ref
, and\eqref
to be parsed (which is helpful for translation HTML documents using MathJaX).
- Parse
-
Org reader (Albert Krewinkel):
- Respect export option
p
for planning info. Inclusion of planning info (*DEADLINE*
,*SCHEDULED*
, and*CLOSED*
) can be controlled via thep
export option: setting the option tot
will add all planning information in a Plain block below the respective headline. - Org reader internals: don’t rely on RecordWildCards and ViewPatterns ghc extensions.
- Strip planning info from output. Planning info is parsed, but not included in the output (as is the default with Emacs Org-mode, #4867).
- Respect export option
-
LaTeX reader:
- Handle parameter patterns for
\def
(#4768, #4771). For example:\def\foo#1[#2]{#1 and #2}
. - Allow
%
characters in URLs. This affects\href
and\url
(#4832). - Fixed parsing of
\texorpdfstring
. We were returning the wrong argument as the content. - Support
blockcquote
,foreignblockquote
,foreigncblockquote
,hyphenblockquote
,hyphencblockquote
,enquote*
,foreignquote
,hyphenquote
fromcsquotes
(#4848). Note thatforeignquote
will be parsed as a regular Quoted inline (not using the quotes appropriate to the foreign language). - Support more text-mode accents (#4652). Add support for
\|
,\b
,\G
,\h
,\d
,\f
,\r
,\t
,\U
,\i
,\j
,\newtie
,\textcircled
. Also fall back to combining characters when composed characters are not available. - Resolve
\ref
for figure numbers. - Support
mintinline
(#4365, Marc Schreiber). - Fix siunitx unit commands so they are only recognized in siunitx contexts (#4842). For example,
\l
outside of an siunitx context should be l-slash, not l (for liter). - Fix double
unnumbered
class (#4838). Theunnumbered
class was being included twice for starred sections.
- Handle parameter patterns for
-
RST reader: Don’t skip link definitions after comments (#4860).
-
Muse reader (Alexander Krotov):
- Close the
</quote>
in indented tag test. There is already a separate test for unclosed</quote>
. - Autonumber sections in the correct order. Parsing now stops at each section header to ensure the header is registered before parsing of the next section starts.
- Move duplicate code into
headingStart
function. - Allow newline after opening
*
or**
. - Don’t allow digits after closing marker in lightweight markup This change makes reader more compatible with Emacs Muse.
- Parse
<verse>
tag in one pass instead of usingparseFromString
. This change makes it possible to have verbatim</verse>
tag inside verse.
- Close the
-
ODT reader: deal gracefully with missing
<office:font-face-decls/>
(#4336). This allows pandoc to parse ODT document produced by KDE’s Calligra. -
Muse writer (Alexander Krotov):
- Output headers without asterisks if not on the top level.
- Never wrap definition list terms.
- Set
envInsideBlock = True
when rendering notes. - Use
""
instead of[]
for empty String. - Check for whitespace in the beginning and end of Str’s.
- Escape
-
,;
and>
in the beginning of strings. - Escape list markers in the beginning of notes.
- Normalize inline list before testing if tags should be used.
- Use tags instead of lightweight markup for empty strings.
- Use lightweight markup when possible.
- Escape empty strings. This guarantees that
conditionalEscapeString
never returns empty string. - Wrap conditionalEscapeString result into
Muse
type. This removes the need to passenvInsideLinkDescription
to it. - Separate
shouldEscapeString
function. - Simplify inline list rendering.
- Replace newlines in strings with spaces.
-
Docx writer:
-
HTML writer:
- Always output
<dt>
element, even if it is empty (#4883, Alexander Krotov). - Don’t prefix
epub:
attributes withdata-
.
- Always output
-
Org writer: Don’t escape literal
_
,^
(#4882). Org doesn’t recognize these escapes. -
ODT writer: Fix percentage image scaling (#4881, Nils Carlson). Image scaling was broken when a width was set to a percentage.
-
EPUB writer: set
epub:type
on body element in each chapter, depending on theepub:type
of the first section (#4823). This only affects epub3. See http://www.idpf.org/epub/profiles/edu/structure/#h.l0bzsloklt10 -
FB2 writer: put
coverpage
element between title and date rather than indocument-info
element (#4854). -
Markdown writer: Escape
~
if strikeout extension enabled (#4840). -
Haddock writer: Use proper format for latex math in haddock (#4571, Joe Hermaszewski). Inline math in
\(..\)
, display math in\[..\]
, tex is now used. Previously we’d “fake it with unicode” and fall back to tex when that didn’t work. But newer haddock versions support latex math. -
TEI writer:
-
LaTeX writer/template: be sensitive to
filecolor
variable (#4822).linkcolor
only affects internal links, andurlcolor
only affects linked URLs. For external links, the option to use isfilecolor
. -
ConTeXt writer: output raw
tex
blocks as well ascontext
(#969). -
RST writer:
- Use
.. raw:: latex
fortex
content. - Use
.. container
for generic Divs, instead of raw HTML. - Render Divs with admonition classes as admonitions (#4833). Also omit Div with class
admonition-title
. These are generated by the RST reader and should be omitted on round-trip.
- Use
-
Text.Pandoc.PDF: fix message printed when rsvg-convert is not available (#4855, Antonio Terceiro).
-
HTML5 template: add the
title-block-header
identifier to theheader
element, to make it easier to style precisely (#4767, J. B. Rainsberger). -
OpenDocument template: Remove unnecessary indenting of TOC title (#4798, José de Mattos Neto).
-
latex template: Add support for (toc-title) to LaTeX (and PDF) (#4853, Wandmalfarbe).
-
TEI template: improve
publicationStmt
. Add support forpublisher
,address
,pubPlace
, anddate
variables. -
beamer template: Support “toc-title” (#4835, Cyril Roelandt).
-
Text.Pandoc.Extensions: Fix haddock on
Ext_footnotes
(Chris Martin). -
Lua: cleanup Lua utils, remove unused functions (Albert Krewinkel).
-
MANUAL.txt:
- Clarify that
--biblatex/--natbib
don’t work directly for PDF (#4904). - Document
epub:type
attribute (Mauro Bieg, #4901) - Clarify when
--resource-path
has an effect. - More detail on customization in syntax highlighting section.
- Document encoding issue with
--listings
(#4871, Damien Clochard). - Remove docs on removed
--katex-stylesheet
(Mauro Bieg, #4862). - Use https for context wiki links (#4910).
- Clarify that
-
CONTRIBUTING.md:
-
lua-filters.md: add links to filters, and to lua-filters repository (#4874).
-
INSTALL.md:
- Indicate that cabal >= 2.0 is needed.
- Added chocolatey installation method (#4844, Miodrag Milić).
-
Travis: exclude round-trip tests, except for nightly test which can fail.
-
Use latest texmath, pandoc-citeproc.
-
Use a patched version of foundation until haskell-foundation/foundation#503 is fixed.
-
Clean up appveyor build and Windows package creation. We now use 64-bit stack and ghc 8.4.3, lts-12 for the 64-bit build. The WiX-based msi is now 64-bit for 64-bit builds (fixing #4795).
-
Remove obsolete RELEASE-CHECKLIST.md.
-
Added additional compiler warnings in Makefile and CI builds.
pandoc 2.2.3.2
-
Markdown reader: Properly handle boolean values in YAML metadata (#4819). This fixes a regression in 2.2.3, which cause boolean values to be parsed as MetaInlines instead of MetaBool.
We here record another undocumented (but desirable) change in 2.2.3: numerical metadata fields are now parsed as MetaInlines rather than MetaString.
pandoc 2.2.3.1
- Markdown reader: Fix parsing of embedded mappings in YAML metadata (#4817). This fixes a regression in 2.2.3 which caused embedded mappings (e.g. mappings in sequences) not to work in YAML metadata.
pandoc 2.2.3
Note: This release has a serious regression in YAML metadata parsing (see #4817), so I've removed the binaries.
I will make a new release when the issue has been fixed.
-
RST reader: improve parsing of inline interpreted text roles (#4811).
- Use a Span with class “title-reference” for the default title-reference role.
- Use
B.text
to split up contents intoSpace
s,SoftBreak
s, andStr
s fortitle-reference
. - Use Code with class “interpreted-text” instead of Span and Str for unknown roles. (The RST writer has also been modified to round-trip this properly.)
- Disallow blank lines in interpreted text.
- Backslash-escape now works in interpreted text.
- Backticks followed by alphanumerics no longer end interpreted text.
- Remove support for nested inlines (Francesco Occhipinti). RST does not allow nested emphasis, links, or other inline constructs. This fixes several bugs (#4581, #4561, #4792).
-
Org reader: fix parsers relying on
parseFromString
(#4784, Albert Krewinkel). Emphasis was not parsed when it followed directly after some block types (e.g., lists). -
Markdown reader: Allow unquoted numbers and booleans as YAML mapping keys. Previously in 2.2.2 you could not do
--- 0: bar ...
but only
--- '0': bar ...
With this change, both forms work.
-
DocBook reader: metadata handling improvements. Now we properly parse title and subtitle elements that are direct children of book and article (as well as children of bookinfo, articleinfo, or info). We also now use the
subtitle
metadata field for subtitles, rather than tacking the subtitle on to the title. -
RST writer:
- Allow images to be directly nested within links (#4810, Francesco Occhipinti).
- Use
titleblock
instead oftitle
variable for title block (#4803, Francesco Occhipinti).titleblock
contains a properly formatted title and subtitle (using top-level headers).title
andsubtitle
variables are still available and just contain the title and subtitle text. Note that this change will require an update to custom rst templates. - Render Code with class “interpreted-text” as interpreted text role.
-
MediaWiki writer: Avoid extra blank line in tables with empty cells (#4794). Note that the old output is semantically identical, but the new output looks better.
-
Lua Utils module: add function
blocks_to_inlines
(#4799, Albert Krewinkel). Exposes a function converting which flattenes a list of blocks into a list of inlines. An example use case would be the conversion of Note elements into other inlines. -
RST template: use
titleblock
instead oftitle
. Users of custom RST templates will want to update this. -
LaTeX template: Moved some beamer code in default.latex template. This change allows beamer themes to change the template and font (as Metropolis does) (#4450).
-
Better error message on
-t pdf -o out.pdf
(#1155, Mauro Bieg). -
Added test case for #4669 to repository.
-
INSTALL.md: Fix broken link for cabal-install (#4806, ChanHoHo).
-
MANUAL.txt:
pandoc 2.2.2.1
-
Fix regression finding templates in user data directory (#4777). Under version 2.2.1 and prior pandoc found latex templates in the templates directory under the data directory, but this broke in 2.2.2.
-
Fix for bug in parsing
\input
inrawLaTeXBlock
andrawLaTeXInline
(#4781). (This primarily affects the markdown reader, and other readers that accept raw tex.) Starting in 2.2.2, everything after an\input
(or\include
) in a markdown file would be parsed as raw LaTeX. -
MANUAL:
-
Add missing
rollingLinks
option to revealjs template (#4778, Igor Khorlo).
pandoc 2.2.2
-
Use HsYAML instead of yaml for translations and YAML metadata (#4747). yaml wraps a C library; HsYAML is pure Haskell. Advances #4535.
Note: HsYAML implements YAML 1.2, in which the valid true values are
true
,True
,TRUE
. This means a change in the semantics of YAML metadata that could affect users:y
,yes
, andon
no longer count as true values. -
Fix regression: make
--pdf-engine
work with full paths (#4681, Mauro Bieg). -
CommonMark reader: Handle
ascii_identifiers
extension (#4742, Anders Waldenborg). Non-ascii characters were not stripped from identifiers even if theascii_identifiers
extension was enabled (which is is by default for gfm). -
TikiWiki reader: Improve list parsing (#4722, Mauro Bieg). Remove trailing Space from list items. Parse lists that have no space after marker.
-
LaTeX reader:
- Treat
lilypond
as a verbatim environment (#4725). - Parse figure label into Image id (#4700, Mauro Bieg).
- Beamer: Allow “noframenumbering” option (#4696, Raymond Ehlers).
- Allow spaces around
\graphicspath
arguments (#4698). - Handle includes without surrounding blanklines (#4553). In addition,
\input
can now be used in an inline context, e.g. to provide part of a paragraph, as it can in LaTeX. - In
rawLaTeXBlock
, handle macros that resolve to a\begin
or\end
(#4667). - In
rawLaTeXBlock
, don’t expand macros in macro definitions (#4653). Note that this only affected LaTeX in markdown. - Tighten up reading of beamer overlay specifications (#4669). Ideally we’d turn these on only when reading beamer, but currently beamer is not distinguished from latex as an input format. This commit also activates parsing of overlay specifications after commands in general (e.g.
\item
), since they can occur in many contexts in beamer. - Parse more siunitx unit commands (#4296, #4773).
- Be more forgiving in key/value option parsing (#4761).
- Treat
-
Markdown reader:
- Allow empty code spans, e.g.
` `
. - Emojis are now wrapped in Spans with class
emoji
and attributedata-emoji
(Anders Waldenborg, #4743). This allows the writer to handle them in a special way (e.g. using a special font, or just rendering the emoji name).
- Allow empty code spans, e.g.
-
Muse reader (Alexander Krotov, except where indicated):
- Get rid of non-exhaustive pattern match warning (Mauro Bieg).
- Add support for floating images.
- Add support for images with specified width.
- Parse image URLs without “guard” and “takeExtension”.
- Split link and image parsing into separate functions.
- Parse links starting with “URL:” explicitly instead of trying to strip “URL:” prefix after parsing.
-
Texinfo writer: Use
@sup
and@sub
instead of custom macros (#4728, Alexander Krotov). -
Markdown writer: Preserve
implicit_figures
with attributes, even ifimplicit_attributes
is not set, by rendering in raw HTML (#4677). -
Markdown and commonmark/github writers now respect the
emoji
extension. So,-f markdown+emoji -t markdown+emoji
now leaves:smile:
as:smile:
rather than converting it to a smile character. -
Docx writer: Be sensitive to
toc
in YAML metadata (#4645). -
ODT/OpenDocument writer: Make internal links work (#4358). This adds proper bookmarks to the headers with non-null IDs.
-
EPUB writer: Properly escape pagetitle. Previously we weren’t escaping
&
and other XML characters in the pagetitle, so a title containing a&
would be invalid. -
AsciiDoc Writer: Eescape square brackets at start of line (#4545, Mauro Bieg).
-
RST writer:
- Don’t treat ‘example’ as a syntax name (#4748). This fixes conversions from org with example blocks.
- Support
--number-sections
via thesection-numbering
directive in standalone output.
-
reveal.js writer and template: reuse mathjax URL provided by the argument to
--mathjax
or the normal pandoc default, rather than a hard-coded one in the template (#4701). -
LaTeX writer:
-
FB2 writer (Alexander Krotov):
-
Custom writer: fix error message on script failure (Albert Krewinkel). Error messages produced by Lua were not displayed by Pandoc.
-
Text.Pandoc.Emoji now exports
emojiToInline
, which returns a Span inline containing the emoji character and some attributes with metadata (classemoji
, attributedata-emoji
with emoji name). (API change, Anders Waldenborg, #4743). -
Text.Pandoc.PDF:
- Revert fix for #4484 (only compress images on last run, #4755). This will mean some increase in the time it takes to produce an image-heavy PDF with xelatex, but it will make tables of contents correct, which is more important.
- Fix logic error in
runTeXProgram
. We were running the tex program one more time than requested. This should speed up PDF production.
-
Allow
--template
to take a URL as argument. -
Text.Pandoc.Highlighting: Add missing re-export of
breezeDark
highlighting style (#4687, Adrian Sieber, API change). -
Clarify macOS install in INSTALL.md (#4661). Make the binary package installer the recommended method, and note that on some older versions of macOS, homebrew installs from source and takes a lot of disk space (#4664, Ian).
-
MANUAL:
- Clarify EPUB linked media (#4756, Mauro Bieg)
- Update manual for “true” YAML values. Now that we’re using HsYAML and YAML 1.2, the valid true values are
true
,True
,TRUE
. NOTE!y
,yes
,on
no longer count as true values. - Document
-F
as alias for--filter
(thanks to Gandalf Saxe). - Update manual on how math is rendered in LaTeX.
- Add proxy description (#4131, Mauro Bieg).
- Clarify that
--toc
requires--standalone
(#4703). - Update citation styles link (#4699, wiefling).
-
In API docs, clarify how
Ext_east_asian_line_breaks
extension works (kaizshang91). Note that it will not take effect when readers/writers are called as libraries (#4674). -
Improved translations/fr (#4766, lux-lth).
-
Removed inadvertently added
.orig
files from repository (#4648). -
Remove
network-uri
flag and use ‘Network.Socket’. This removes a compiler warning. There is no need for the oldnetwork-uri
flag, since network 2.6 was released in 2014. -
Add stack.lts10.yaml, stack.lts11.yaml. use lts-12 in stack.yaml.
-
Bump upper bounds for dependent packages.
-
Exclude foundation 0.0.21 for ghc 7.10. Otherwise cabal gets confused because of the way ghc 7.10 is excluded in foundation’s cabal file. This can be removed when haskell-foundation/foundation#500 is fixed.
-
Require cabal-version >= 2.0. This is needed for haddock-library.
pandoc 2.2.1
-
Restored and undeprecated gladtex for HTML math (#4607).
- Added
GladTeX
constructor toText.Pandoc.Options.HTMLMathMethod
[API change, reverts removal in v2.2] - Restored and undeprecated
--gladtex
option, removed in v2.2.
- Added
-
LaTeX reader: Handle
$
in/text{..}
inside math (#4576). -
Org reader: Fix image filename recognition (Albert Krewinkel). Use a function from the filepath library to check whether a string is a valid file name. The custom validity checker that was used before gave wrong results (e.g. for absolute file paths on Windows, kawabata/ox-pandoc#52).
-
FB2 reader: Replace some errors with warnings (Alexander Krotov).
-
HTML writer:
-
Muse writer (Alexander Krotov): Add support for left-align and right-align classes (#4542).
-
Docx writer: Support underline (#4633).
-
Text.Pandoc.Parsing: Lookahead for non-whitespace after
singleQuoteStart
anddoubleQuoteStart
(#4637). -
test-pandoc-utils.lua
: more robust testing on both windows and *nix. Previously the pipe tests were only run if\bin/false
and/bin/sed
were present, which they aren’t in default MacOS and Windows systems. Fixed by usingtr
andfalse
, which should always be in the path on a *nix system, andfind
andecho
for Windows. -
Text.Pandoc.Shared: add
uriPathToPath
. This adjusts the path from a file: URI in a way that is sensitive to Windows/Linux differences. Thus, on Windows,/c:/foo
gets interpreted asc:/foo
, but on Linux,/c:/foo
gets interpreted as/c:/foo
. See #4613. -
Use
uriPathToPath
with file: URIs (#4613). -
Revert piping HTML to pdf-engine (Mauro Bieg, #4413). Use a temp file as before.
-
Text.Pandoc.Class: Catch IO errors when writing media files and issue a warning, rather than an error (Francesco Occhipinti, #4559).
-
Don’t lowercase custom writer filename (Alexander Krotov, #4610).
-
MANUAL (Mauro Bieg):
-
ConTeXt template: New Greek fallback typeface (Pablo Rodríguez, #4405). CMU Serif gives better typographic results than the previous Greek fallback DejaVu Serif.
-
Make HTML template polyglot (#4606, OvidiusCicero), by making
<link rel="stylesheet" href="$css$">
self-closing. -
Use texmath 0.11, allowing better translation of non-ASCII characters in math (#4642).
pandoc 2.2
-
New input format:
fb2
(FictionBook2) (Alexander Krotov). -
Make
--ascii
work for all XML formats (ICML, OPML, JATS,…), and forms
andman
. -
Remove deprecated
--latexmathml
,--gladtex
,--mimetex
,--jsmath
,-m
,--asciimathml
options. -
New module Text.Pandoc.Readers.FB2, exporting readFB2 (Alexander Krotov, API change).
-
Markdown reader:
- Allow empty key-value attributes, like
title=""
(#2944). - Handle table w/o following blank line in fenced div (#4560).
- Remove “fallback” for
doubleQuote
parser. Previously the parser tried to be efficient – if no end double quote was found, it would just return the contents. But this could backfire in a case**this should "be bold**
, since the fallback would return the content"be bold**
and the closing boldface delimiter would never be encountered. - Improve computation of the relative width of the last column in a multiline table, so we can round-trip tables without constantly shrinking the last column.
- Allow empty key-value attributes, like
-
EPUB reader:
- Fix images with space in file path (#4344).
-
LaTeX reader:
- Properly resolve section numbers with
\ref
and chapters (#4529). - Parse sloppypar environment (#4517, Marc Schreiber).
- Improve handling of raw LaTeX (for markdown etc.) (#4589, #4594). Previously there were some bugs in how macros were handled.
- Support
\MakeUppercase
,\MakeLowercase',
,\lowercase
, and also\MakeTextUppercase
and\MakeTextLowercase
from textcase (#4959).
- Properly resolve section numbers with
-
Textile reader:
- Fixed tables with no body rows (#4513). Previously these raised an exception.
-
Mediawiki reader:
- Improve table parsing (#4508). This fixes detection of table attributes and also handles
!
characters in cells.
- Improve table parsing (#4508). This fixes detection of table attributes and also handles
-
DocBook reader:
-
Docx reader:
- Combine adjacent CodeBlocks with the same attributes into a single CodeBlock. This prevents a multiline codeblock in Word from being read as different paragraphs.
-
RST reader:
-
Muse reader (Alexander Krotov):
- Add support for Text::Amuse multiline headings.
- Add
<math>
tag support. - Add support for
<biblio>
and<play>
tags. - Allow links to have empty descriptions.
- Require block
<literal>
tags to be on separate lines. - Allow
-
in anchors. - Allow verse to be indented.
- Allow nested footnotes.
- Internal improvements.
-
Muse writer (Alexander Krotov):
- Escape
>
only at the beginning of a line. - Escape
]
in image title. - Escape
]
brackets in URLs as%5D
. - Only escape brackets when necessary.
- Escape ordered list markers.
- Do not escape list markers unless preceded by space.
- Escape strings starting with space.
- Escape semicolons and markers after line break.
- Escape
;
to avoid accidental comments. - Don’t break headers, line blocks and tables with line breaks.
- Correctly output empty headings.
- Escape horizontal rule only if at the beginning of the line.
- Escape definition list terms starting with list markers.
- Place header IDs before header.
- Improve span writing.
- Do not join Spans in normalization.
- Don’t align ordered list items.
- Remove key-value pairs from attributes before normalization.
- Enable
--wrap=preserve
for all tests by default. - Reduced
<verbatim>
tags in output. - Internal changes.
- Escape
-
RST writer:
- Use more consistent indentation (#4563). Previously we used an odd mix of 3- and 4-space indentation. Now we use 3-space indentation, except for ordered lists, where indentation must depend on the width of the list marker.
- Flatten nested inlines (#4368, Francesco Occhipinti). Nested inlines are not valid RST syntax, so we flatten them following some readability criteria discussed in #4368.
-
EPUB writer:
- Ensure that
pagetitle
is always set, even when structured titles are used. This prevents spurious warnings about empty title elements (#4486).
- Ensure that
-
FB2 writer (Alexander Krotov):
- Output links inline instead of producing notes. Previously all links were turned into footnotes with unclickable URLs inside.
- Allow emphasis and notes in titles.
- Don’t intersperse paragraph with empty lines.
- Convert metadata value
abstract
to book annotation. - Use
<empty-line />
forHorizontalRule
rather thanLineBreak
. FB2 does not have a way to represent line breaks inside paragraphs; previously we used<empty-line />\
elements, but these are not allowed inside paragraphs.
-
Powerpoint writer (Jesse Rosenthal):
- Handle Quoted Inlines (#4532).
- Simplify code with
ParseXml
. - Allow fallback options when looking for placeholder type.
- Check reference-doc for all layouts.
- Simplify speaker notes logic.
- Change notes state to a simpler per-slide value.
- Remove
Maybe
fromSpeakerNotes
inSlide
.mempty
means no speaker notes. - Add tests for improved speaker notes.
- Handle speaker notes earlier in the conversion process.
- Keep notes with related blocks (#4477). Some blocks automatically split slides (imgs, tables,
column
divs). We assume that any speaker notes immediately following these are connected to these elements, and keep them with the related blocks, splitting after them. - Remove
docProps/thumbnail.jpeg
in data dir (Jesse Rosenthal, #4588). It contained a nonfree ICC color calibration profile and is not needed for production of a powerpoint document.
-
Markdown writer:
- Include a blank line at the end of the row in a single-row multiline table, to prevent it from being interpreted as a simple table (#4578).
-
CommonMark writer:
- Correctly ignore LaTeX raw blocks when
raw_tex
is not enabled (#4527, quasicomputational).
- Correctly ignore LaTeX raw blocks when
-
EPUB writer:
- Add
epub:type="footnotes"
to notes section in EPUB3 (#4489).
- Add
-
LaTeX writer:
-
Ms writer:
- Use
\f[R]
rather than\f[]
to reset font (#4552). - Use
\f[BI]
and\f[CB]
in headers, instead of\f[I]
and\f[C]
, since the header font is automatically bold (#4552). - Use
\f[CB]
rather than\f[BC]
for monospace bold (#4552). - Create pdf anchor for a Div with an identifier (#4515).
- Escape
/
character in anchor ids (#4515). - Improve escaping for anchor ids: we now use uNNN instead of uNNN to avoid ambiguity.
- Use
-
Man writer:
- Don’t escape U+2019 as
'
(#4550).
- Don’t escape U+2019 as
-
Text.Pandoc.Options:
- Removed
JsMath
,LaTeXMathML
, andGladTeX
constructors fromText.Pandoc.Options.HTMLMathMethod
[API change].
- Removed
-
Text.Pandoc.Class:
writeMedia
: unescape URI-escaping in file path. This avoids writing things likefile%20one.png
to the file system.
-
Text.Pandoc.Parsing:
-
Text.Pandoc.MIME:
- Use the alias
application/eps
for EPS (#2067). This will ensure that we retain the eps extension after reading the image into a mediabag and writing it again.
- Use the alias
-
Text.Pandoc.PDF:
- Use
withTempDir
inhtml2pdf
. - With
xelatex
, don’t compress images til the last run (#4484). This saves time for image-heavy documents. - Don’t try to convert EPS files (#2067). `pdflatex converts them itself, and JuicyPixels can’t do it.
- For
pdflatex
, use a temp directory in the working directory. Otherwise we can have problems with the EPS conversion pdflatex tries to do, which can’t operate on a file above the working directory without--shell-escape
.
- Use
-
Changes to tests to accommodate changes in pandoc-types. In jgm/pandoc-types#36 we changed the table builder to pad cells. This commit changes tests (and two readers) to accord with this behavior.
-
Set default extensions for
beamer
same aslatex
. -
LaTeX template:
-
reveal.js template: Add
background-image
variable (#4600, John Muccigrosso). -
ms template: Fix date. Previously
.ND
was used, but this only works if you have a title page, which we don’t. Thanks to @teoric. -
Removed pragmas for unused extensions (#4506, Anabra).
-
Fix bash completion for
--print-default-data-file
(#4549). Previously this looked in the filesystem, even if pandoc was compiled withembed_data_files
(and sometimes it looked in a nonexistent build directory). Now the bash completion script just includes a hard-coded list of data file names. -
MANUAL:
pandoc 2.1.3
-
Docx reader (Jesse Rosenthal):
- Add tests for nested smart tags.
- Parse nested smart tags.
- Make unwrapSDT into a general
unwrap
function that can unwrap both nested SDT tags and smartTags. This makes the SmartTags constructor in the Docx type unnecessary, so we remove it (#4446). - Remove unused
docxWarnings
(Alexander Krotov).
-
RST reader: Allow unicode bullet characters (#4454).
-
Haddock reader: Better table handling, using haddock-library’s new table support, if compiled against a version that includes it. Note that tables with col/rowspans will not translate well into Pandoc.
-
Muse reader (Alexander Krotov):
- Various internal improvements.
- Require closing tag to have the same indentation as opening.
- Do not reparse blocks inside unclosed block tag (#4425).
- Parse
<class>
tag (supported by Emacs Muse). - Do not produce empty Str element for unindented verse lines.
-
LaTeX reader:
- Add support to parse unit string of
\SI
command (closes #4296, Marc Schreiber).
- Add support to parse unit string of
-
Haddock writer: In the writer, we now render tables always as grid tables, since Haddock supports these.
-
DokuWiki writer: rewrite backSlashLineBreaks (#4445, Mauro Bieg).
-
Docx writer: Fixed formatting of
DefaultStyle
ordered lists in docx writer. We want decimal for the top level, not lower roman. -
RST writer:
-
Muse writer (Alexander Krotov):
- Support spans with anchors.
- Replace smallcaps with emphasis before normalization.
- Output smallcaps as emphasis.
- Expand Cite before list normalization.
- Write empty inline lists as
<verbatim></verbatim>
. - Remove empty Str from the beginning of inline lists during normalization.
- Escape “-” to avoid creating bullet lists.
- Fix math expansion for more than one expression per paragraph.
- Expand math before inline list normalization.
-
Dokuwiki writer: fix LineBreaks in Tables (#4313, Mauro Bieg).
-
Ms writer:
-
Beamer writer: put hyperlink after
\begin{frame}
and not in the title (#4307). If it’s in the title, then we get a titlebar on slides with theplain
attribute, when the id is non-null. This fixes a regression in 2.0. -
EPUB writer: Remove notes from TOC in nav.xhtml (#4453, Mauro Bieg).
-
JATS writer: Remove extraneous, significant whitespace (#4335, Nokome Bentley).
-
html2pdf: inject base tag wih current working directory (#4413, Mauro Bieg). This helps ensure that linked resources are included.
-
Add Semigroup instances for everything for which we defined a Monoid instance previously (API change):
- Text.Pandoc.Class.FileTree.
- Text.Pandoc.Translations.Translations.
- Text.Pandoc.Extensions.Extensions.
- Text.Pandoc.Readers.Odt.StyleReader.Styles.
- Text.Pandoc.Pretty.Doc.
- Text.Pandoc.MediaBag.MediaBag.
-
Add custom Prelude to give clean code for Monoid and Semigroup that works with ghc 7.10-8.4. The custom Prelude (
prelude/Prelude
) is used for ghc versions < 8.4.NoImplicitPrelude
is used in all source files, and Prelude is explicitly imported (this is necessary for ghci to work properly with the custom prelude). -
Text.Pandoc.Writers.Shared (Francesco Occhipinti):
- Export
stripLeadingTrailingSpace
. - Don’t wrap lines in grid tables when
--wrap=none
(#4320). gridTable
: Don’t wrap lines in tables when--wrap=none
. Instead, expand cells, even if it results in cells that don’t respect relative widths or surpass page column width. This change affects RST, Markdown, and Haddock writers.
- Export
-
Raise error if someone tries to print docx, odt, etc. template (#4441).
-
LaTeX template: Provide
bidi
package’s option using\PassOptionsToPackage
(#4357, Václav Haisman). This avoid a clash whenpolyglossia
loads it first and then it is loaded again for XeLaTeX. -
ConTeXt template: Added
pdfa
variable to generate PDF/A (#4294, Henri Menke). Instructions on how to install the ICC profiles on ConTeXt standalone can be found in the wiki: http://wiki.contextgarden.net/PDFX#ICC_profiles. If the ICC profiles are not available the log will contain error messages. -
Use latest pandoc-types, skylighting
-
Use latest pandoc-citeproc in binary package.
-
Bump upper bound for time, criterion, haddock-library, exceptions, http-types, aeson, haddock-library.
-
Bump upper bound tasty-quickcheck 0.10 (#4429, Felix Yan).
-
pandoc.cabal: fix up other-extensions and language fields. Language is now consistently
Haskell2010
, and other-extensions is consistentlyNoImplicitPrelude
. Everything else to be specified in the module header as needed. -
Removed
old-locale
flag and Text.Pandoc.Compat.Time. This is no longer necessary since we no longer support ghc 7.8. -
Make
weigh-pandoc
into a benchmark program. Removeweigh-pandoc
flag.weigh-pandoc
is now built (and run) automatically when you build (and run) benchmarks. -
MANUAL: add instructions for background images reveal.js (#4325, John Muccigrosso).
-
appveyor: use VS 2013 environment instead of VS 2015 for Windows builds.
pandoc 2.1.2
-
Markdown reader:
- Fix parsing bug with nested fenced divs (#4281). Previously we allowed “nonindent spaces” before the opening and closing
:::
, but this interfered with list parsing, so now we require the fences to be flush with the margin of the containing block.
- Fix parsing bug with nested fenced divs (#4281). Previously we allowed “nonindent spaces” before the opening and closing
-
Commonmark reader:
raw_html
is now on by default. It can be disabled explicitly using-f commonmark-raw_html
.
-
Org reader (Albert Krewinkel):
-
Move citation tests to separate module.
-
Allow changing emphasis syntax (#4378). The characters allowed before and after emphasis can be configured via
#+pandoc-emphasis-pre
and#+pandoc-emphasis-post
, respectively. This allows to change which strings are recognized as emphasized text on a per-document or even per-paragraph basis. Example:#+pandoc-emphasis-pre: "-\t ('\"{" #+pandoc-emphasis-post: "-\t\n .,:!?;'\")}["
-
-
LaTeX reader:
-
RST reader:
- Fix regression in parsing of headers with trailing space (#4280).
-
Muse reader (Alexander Krotov):
- Enable
<literal>
tags even if amuse extension is enabled. Amusewiki disables tags for security reasons. If user wants similar behavior in pandoc, RawBlocks and RawInlines can be removed or replaced with filters. - Remove space prefix from
<literal>
tag contents. - Do not consume whitespace while looking for closing end tag.
- Convert alphabetical list markers to decimal in round-trip test. Alphabetical lists are an addition of Text::Amuse. They are not present in Emacs Muse and can be ambiguous when list starts with “i.”, “c.” etc.
- Allow
<quote>
and other tags to be indented. - Allow single colon in definition list term.
- Fix parsing of verse in lists.
- Improved parsing efficiency. Avoid
parseFromString
. Lists are parsed in linear instead of exponential time now. - Replace ParserState with MuseState.
- Prioritize lists with roman numerals over alphabetical lists. This is to make sure “i.” starts a roman numbered list, instead of a list with letter “i” (followed by “j”, “k”, …“).
- Fix directive parsing.
- Parse definition lists with multiple descriptions.
- Parse next list item before parsing more item contents.
- Fixed a bug: headers did not terminate lists.
- Move indentation parsing from
definitionListItem
todefinitionList
. - Paragraph indentation does not indicate nested quote. Muse allows indentation to indicate quotation or alignment, but only on the top level, not within a or list.
- Require that block tags are on separate lines. Text::Amuse already explicitly requires it anyway.
- Fix matching of closing inline tags.
- Various internal changes.
- Fix parsing of nested definition lists.
- Require only one space for nested definition list indentation.
- Do not remove trailing whitespace from
<code>
. - Fix parsing of trailing whitespace. Newline after whitespace now results in softbreak instead of space.
- Enable
-
Docx reader (Jesse Rosenthal, except where noted):
- Handle nested sdt tags (#4415).
- Don’t look up dependant run styles if
+styles
is enabled. - Move pandoc inline styling inside custom-style span.
- Read custom styles (#1843). This will read all paragraph and character classes as divs and spans, respectively. Dependent styles will still be resolved, but will be wrapped with appropriate style tags. It is controlled by the
+styles
extension (-f docx+styles
). This can be used in conjunction with thecustom-style
feature in the docx writer for a pandoc-docx editing workflow. Users can convert from an input docx, reading the custom-styles, and then use that same input docx file as a reference-doc for producing an output docx file. Styles will be maintained across the conversion, even if pandoc doesn’t understand them. - Small change to Fields hyperlink parser. Previously, unquoted string required a space at the end of the line (and consumed it). Now we either take a space (and don’t consume it), or end of input.
- Pick table width from the longest row or header (Francesco Occhipinti, #4360).
-
Muse writer (Alexander Krotov):
- Change verse markup:
>
instead of<verse>
tag. - Remove empty strings during inline normalization.
- Don’t indent nested definition lists.
- Use unicode quotes for quoted text.
- Write image width specified in percent in Text::Amuse mode.
- Don’t wrap displayMath into
<verse>
. - Escape nonbreaking space (
~~
). - Join code with different attributes during normalization.
- Indent lists inside Div.
- Support definitions with multiple descriptions.
- Change verse markup:
-
Powerpoint writer (Jesse Rosenthal):
- Use table styles This will use the default table style in the reference-doc file. As a result they will be easier when using in a template, and match the color scheme.
- Remove empty slides. Because of the way that slides were split, these could be accidentally produced by comments after images. When animations are added, there will be a way to add an empty slide with either incremental lists or pauses.
- Implement syntax highlighting. Note that background colors can’t be implemented in PowerPoint, so highlighting styles that require these will be incomplete.
- New test framework for pptx. We now compare the output of the Powerpoint writer with files that we know to (a) not be corrupt, and (b) to show the desired output behavior (details below).
- Add
notesMaster
topresentation.xml
if necessary. - Ignore links and (end)notes in speaker notes.
- Output speaker notes.
- Read speaker note templates conditionally. If there are speaker notes in the presentation, we read in the notesMasters templates from the reference pptx file.
- Fix deletion track changes (#4303, Jesse Rosenthal).
-
Markdown writer: properly escape @ to avoid capture as citation (#4366).
-
LaTeX writer:
-
ConTeXt writer (Henri Menke):
- New section syntax and support
--section-divs
(#2609).\section[my-header]{My Header}
->\section[title={My Header},reference={my-header}]
. The ConTeXt writer now supports the--section-divs
option to write sections in the fenced style, with\startsection
and\stopsection
. - xtables: correct wrong usage of caption (Henri Menke).
- New section syntax and support
-
Docx writer:
- Fix image resizing with multiple images (#3930, Andrew Pritchard).
- Use new golden framework (Jesse Rosenthal).
- Make more deterministic to facilitate testing (Jesse Rosenthal).
getUniqueId
now calls to the state to get an incremented digit, instead of calling to P.uniqueHash.- we always start the PRNG in mkNumbering/mkAbstractNum with the same seed (1848), so our randoms should be the same each time.
- Fix ids in comment writing (Jesse Rosenthal). Comments from
--track-changes=all
were producing corrupt docx, because the writer was trying to get id from the(ID,_,_)
field of the attributes, and ignoring the “id” entry in the key-value pairs. We now check both.
-
Ms writer: Added papersize variable.
-
TEI writer:
-
AsciiDoc writer:
- Do not output implicit heading IDs (#4363, Alexander Krotov). Convert to
asciidoc-auto_identifiers
for old behaviour.
- Do not output implicit heading IDs (#4363, Alexander Krotov). Convert to
-
RST writer:
- Remove
blockToRST'
moving its logic intofixBlocks
(Francesco Occhipinti). - Insert comment between lists and quotes (#4248, Francesco Occchipinti).
- Remove
-
RST template: remove definition of ‘math’ role as raw. This used to be needed prior to v 0.8 of docutils, but now math support is built-in.
-
Slides: Use divs to set incremental/non-incremental (#4381, Jesse Rosenthal). The old method (list inside blockquote) still works, but we are encouraging the use of divs with class
incremental
ornonincremental
. -
Text.Pandoc.ImageSize:
-
Text.Pandoc.Extensions:
- Add
Ext_styles
(Jesse Rosenthal, API change). This will be used in the docx reader (defaulting to off) to read pargraph and character styles not understood by pandoc (as divs and spans, respectively). - Made
Ext_raw_html
default forcommonmark
format.
- Add
-
Text.Pandoc.Parsing:
- Export
manyUntil
(Alexander Krotov, API change). - Export improved
sepBy1
(Alexander Krotov). - Export list marker parsers:
upperRoman
,lowerRoman
,decimal
,lowerAlpha
,upperAlpha
(Alexander Krotov, API change).
- Export
-
Tests/Lua: fix tests on windows (Albert Krewinkel).
-
Lua: register script name in global variable (#4393). The name of the Lua script which is executed is made available in the global Lua variable
PANDOC_SCRIPT_FILE
, both for Lua fil...