Changelog History
Page 1
-
v2.11.2 Changes
November 19, 2020Click to expand changelog
💅 Default to using ATX (
##
-style) headings for Markdown output (#6662, Aner Lucero). Previously we used Setext (underlined) headings by default for levels 1–2.➕ Add option
--markdown-headings=atx|setext
, and deprecate--atx-headers
(#6662, Aner Lucero).👌 Support
markdown-headings
in defaults files.🛠 Fix corner case in YAML metadata parsing (#6823). Previously YAML metadata would sometimes not get recognized if a field ended with a newline followed by spaces.
--self-contained
: increase coverage (#6854). Previously we only self-contained attributes for certain tag names (img
,embed
,video
,input
,audio
,source
,track
,section
). Now we self-contain any occurrence ofsrc
,data-src
,poster
, ordata-background-image
, on any tag; and alsohref
onlink
tags.Markdown reader:
- Fix detection of locators following in-text citations. Prevously, if we had
@foo [p. 33; @bar]
, thep. 33
would be incorrectly parsed as a prefix of@bar
rather than a suffix of@foo
. - Improve period suppression algorithm for citations in notes in note citation styles (#6835).
- Don’t increment
stateNoteNumber
for example list references. This helps with #6836 (a bug in which example list references disturb calculation of citation note number and affect whenibid
is triggered).LaTeX reader:
- Move
getNextNumber
from Readers.LaTeX to Readers.LaTeX.Parsing.
- Fix negative numbers in siunitx commands. A change in pandoc 2.11 broke negative numbers, e.g.
\SI{-33}{\celcius}
or\num{-3}
. This fixes the regression.DocBook reader: drop period in formalpara title and put it in a div with class
formalpara-title
, so that people can reformat with filters (#6562).👍 Man reader: improve handling of
.IP
(#6858). We now better handle.IP
when it is used with non-bullet, non-numbered lists, creating a definition list. We also skip blank lines like groff itself.Bibtex reader: fall back on
en-US
if locale for LANG not found. This reproduces earlier pandoc-citeproc behavior (jgm/citeproc#26).JATS writer:
- Wrap all tables (Albert Krewinkel). All
<table>
elements are put inside<table-wrap>
elements, as the former are not valid as immediate child elements of<body>
.
- Move Table handling to separate module (Albert Krewinkel). Adds two new unexported modules: Text.Pandoc.Writers.JATS.Types, Text.Pandoc.Writers.JATS.Table.
Org writer:
- Replace org #+KEYWORDS with #+keywords (TEC). As of ~2 years ago, lower case keywords became the standard (though they are handled case insensitive, as always).
- Update org supported languages and identifiers according to the current list contained in https://orgmode.org/worg/org-contrib/babel/languages/index.html (TEC).
Only use
filterIpynbOutput
if input format is ipynb (#6841). Before this change content could go missing from divs with classoutput
, even when non-ipynb was being converted.When checking reader/writer name, check base name now that we permit extensions on formats other than markdown.
🏁 Text.Pandoc.PDF: Fix
changePathSeparators
for Windows (#6173). Previously a path beginning with a drive, likeC:\foo\bar
, was translated toC:\/foo/bar
, which caused problems. With this fix, the backslashes are removed.🌲 Text.Pandoc.Logging: Add constructor
ATXHeadingInLHS
constructor toLogMessage
[API change].🛠 Fix error that is given when people specify
doc
output (#6834, gison93).💅 LaTeX template: add a
\break
after parbox inCSLRightInline
. This should fix spacing problems between entries with numeric styles. Also fix number of params onCSLReferences
.reveal.js template: Put quotes around
controlsLayout
,controlsBackArrows
, anddisplay
, since these require strings. AddshowSlideNumber
,hashOneBasedIndex
,pause
.🛠 Use citeproc 0.2. This fixes a bug with title case around parentheses.
🍎 pandoc.cabal: remove ‘static’ flag. This isn’t really necessary and can be misleading (e.g. on macOS, where a fully static build isn’t possible). cabal’s new option
--enable-executable-static
does the same. On stack you can add something like this to the options for your executable in package.yaml:ld-options: -static -pthread
✂ Remove obsolete bibutils flag setting in
linux/make_artifacts.sh
.Manual:
- Correct
link-citation
->link-citations
.
- Add a sentence about
pagetitle
for HTML (#6843, Alex Toldaiev).🚚 INSTALL.md: Remove references to
pandoc-citeproc
(#6857).👕 CONTRIBUTING: describe hlint and how it’s used (#6840, Albert Krewinkel).
- Fix detection of locators following in-text citations. Prevously, if we had
-
v2.11.1 Changes
November 03, 2020Click to expand changelog
DocBook Reader: fix duplicate bibliography bug (#6773, Nils Carlson).
HTML reader:
- Parse contents of iframes (#6770).
- Parse inline svg as image unless
raw_html
is set in the reader (in which case the svg is passed through as raw HTML) (#6770).LaTeX reader:
- Fix bug parsing macro arguments (#6796). If
\cL
is defined as\mathcal{L}
, and\til
as\tilde{#1}
, then\til\cL
should expand to\tilde{\mathcal{L}}
, but pandoc was expanding it to\tilde\mathcal{L}
. This is fixed by parsing the arguments in “verbatim mode” when the macro expands arguments at the point of use.
- Properly support optional (cite) argument for
\blockquote
fromcsquotes
(#6802).📦 LaTeX writer: Improved calculation of table column widths. We now have LaTeX do the calculation, using
\tabcolsep
. So we should now have accurate relative column widths no matter what the text width. The default template has been modified to load the calc package if tables are used.HTML writer: Fix duplicate “class” attribute for table rows (Andy Morris).
Text.Pandoc.Filter: allow shorter YAML representation of Citeproc (Albert Krewinkel). The map-based YAML representation of filters expects
type
andpath
fields. The path field had to be present for all filter types, but is not used for citeproc filters. The field can now be omitted when type is “citeproc”, as described in the MANUAL.📜 Text.Pandoc.Error: Add
PandocBibliographyError
constructor forPandocError
[API change]. This ensures that bibliography parsing errors generate messages that include the bibliography file name – otherwise it can be quite mysterious where it is coming from.🛠 Citeproc: properly handle
csl
field withdata:
URI (#6783). This is used with the JATS writer, so this fixes a regression in pandoc 2.11 with JATS output and citeproc.👍 Allow
citation-abbreviations
in defaults file.JATS templates: ensure
jats_publishing
output is valid (Albert Krewinkel).LaTeX template: Fix
CSLRightInline
, so that it does not run over the right margin.0️⃣ HTML template: default CSS tweaks (Mauro Bieg and John MacFarlane).
- Fix margin before codeblock
- Add
monobackgroundcolor
variable, making the background color and padding of code optional. - Ensure that backgrounds from highlighting styles take precedence over monobackgroundcolor
- Remove list markers from TOC
- Add margin-bottom where needed
- Remove italics from blockquote styling
- Change borders and spacing in tables to be more consistent with other output formats
- Style h5, h6
- Set font-size for print media to 12pt.
- Reduce interline space.
- Reduce interparagraph space.
- Reduce line width.
- Remove the special
line-height: 1
for table cells. - Remove the special line-height for pre.
- Ensure that there is a bit more space before a heading than after.
- Slightly reduced space after title header.
- Add CSS example to MANUAL
man template: Change comment that triggers
tbl
from.\"t
to'\" t
, as specified in groff_man(7) (#6803).👀 Use latest commonmark, commonmark-extensions. This fixes a bug with nested blocks in footnotes with the
footnote
extension tocommonmark
. See jgm/commonmark-hs#63.👍 Citeproc: use comma for in-text citations inside footnotes. When an author-in-text citation like
@foo
occurs in a footnote, we now render it with:AUTHOR NAME + COMMA + SPACE + REST
. Previously we rendered:AUTHOR NAME + SPACE + "(" + REST + ")"
. This gives better results. Note that normal citations are still rendered in parentheses.✅ Use latest citeproc:
- citeproc no longer capitalizes notes, so we do it in pandoc when appropriate.
- Closes #6783.
Clarify manual on
--track-changes
(#6801).➕ Add
doc/jats.md
to document pandoc’s handling of JATS (#6794, Albert Krewinkel).🛠 Fix code example in lua-filters.md (#6795).
-
v2.11.1.1 Changes
November 08, 2020Click to expand changelog
Citeproc: improve punctuation in in-text note citations (#6813). Previously in-text note citations inside a footnote would sometimes have the final period stripped, even if it was needed (e.g. on the end of ‘ibid’).
👉 Use citeproc 0.1.1.1. This improves the decision about when to use
ibid
in cases where citations are used inside a footnote (#6813).👌 Support
nocase
spans forcsljson
output.Require latest commonmark, commonmark-extensions. This fixes a bug with
autolink_bare_uris
and commonmark.👍 LaTeX reader: better handling of
\\
inside math in table cells (#6811).DokuWiki writer: translate language names for code elements and improve whitespace (#6807).
🗄 MediaWiki writer: use
syntaxhighlight
tag instead of deprecatedsource
for highlighted code (#6810). Also supportstartFrom
attribute andnumberLines
.👕 Lint code in PRs and when committing to master (#6790, Albert Krewinkel).
doc/filters.md: describe technical details of filter invocations (#6815, Albert Krewinkel).
-
v2.11 Changes
October 11, 2020Click to expand changelog
➕ Add
--citeproc
(-C
) option to trigger built-in citation processing. It is no longer necessary to use the externalpandoc-citeproc
filter.--citeproc
behaves like a filter and can be positioned relative to other filters as they appear on the command line.🐎 The new built-in citation processing uses the citeproc library, a reimplementation of CSL citation processing that fixes many of the shortcomings of pandoc-citeproc. In general, citation processing should work much the same as it did with pandoc-citeproc, but with greater fidelity to CSL styles and better performance. (The tests from the pandoc-citeproc package have been carried over to pandoc.) The following differences should be noted:
💅 At this point, only some of the writers (HTML, ms, LaTeX) properly interpret CSL display styles. You should get decent output in all formats (at least as good as with pandoc-citeproc), but indentation and block-alignment may not be right.
💅 pandoc-citeproc searches the
~/.csl
directory for.csl
styles. Pandoc instead searches thecsl
subdirectory of the pandoc user data directory (e.g.,~/.pandoc/csl
or~/.local/share/pandoc/csl
). Users who already keep CSL styles in~/.csl
may find it convenient to add a symlink.👍 Some of the bibliography formats supported by pandoc-citeproc (via hs-bibutils) are no longer supported: Copac, EndNote, ISI, MEDLINE, MODS, and RIS. If you use one of these formats, you may use the
bibutils
utility to convert to BibLaTeX. We now support only BibTeX, BibLaTeX, CSL JSON, and pandoc’s YAML/Markdown analogue of CSL JSON.💅 pandoc-citeproc would always retrieve the independent parent of a dependent style by doing an HTTP request. pandoc will now first seek the independent parent locally (in the resource path or in the
csl
subdirectory of the pandoc user data directory) before resorting to HTTP. In addition, you may omit the.csl
extension, e.g.--csl zoology
.📇 Using the
--bibliography
option (or includingbibliography
in YAML metadata) no longer triggers citation processing implicitly: one must always use the--citeproc
option if citation processing is wanted.➕ Add
csljson
as and input and output format. This allows pandoc to convert betweencsljson
and other bibliography formats (e.g.-f csljson -t markdown -s
or-f bibtex -t csljson
), and to generate formatted versions of CSL JSON bibliographies (e.g.,pandoc -f csljson --citeproc pl.json -o pl.pdf
).➕ Added
bibtex
,biblatex
as input formats. This allows pandoc to convert between BibLaTeX and BibTeX and other bibliography formats, and to generated formatted versions of BibTeX/BibLaTeX bibliographies (e.g.,pandoc -f biblatex --citeproc pl.bib -o pl.pdf
).📇 Raise informative errors when YAML metadata parsing fails (#6730). Previously the command would succeed, returning empty metadata, with no errors or warnings.
Sort languages in
--list-highlight-languages
output (#6718, Albert Krewinkel). Languages were previously sorted by their long name, which leads to unexpected results).➕ Add CSS to default HTML template (#6601, Mauro Bieg). This greatly improves the default typography in pandoc’s HTML output. The CSS is sensitive to a number of variables (e.g.
mainfont
,fontsize
,linestretch
): see the manual for details. To restore the earlier, more spartan output, you can disable this with-M document-css=false
.👌 Support
--toc-depth
option for ODT writer (#6696, niszet).🛠 Fix issues with Windows UNC paths with some options (#5127).
Remove
fenced_code_blocks
andbacktick_code_blocks
from allowedcommonmark
andgfm
extensions. These shouldn’t really be counted as extensions, because they can’t be disabled in commonmark. Adjust markdown writer to check for the commonmark variant in addition to extensions.Add these extensions to
gfm
andcommonmark
:fenced_code_blocks
,backtick_code_blocks
,fenced_code_attributes
. These can’t really be disabled in the reader, but they need to be enabled in the writer or we just get indented code.👉 Make sure proper set of extensions is recognized for
commonmark_x
.Allow
gfm_auto_identifiers
,ascii_identifiers
extensions fordocx
.Markdown reader:
- Add
Maybe FilePath
parameter toyamlToMeta
[API change]. - Export
yamlToRefs
[API change], a version ofyamlToMeta
specialized to references. - Set
citationNoteNum
accurately in citations.
- Revise abbreviation support. Don’t insert a nonbreaking space after a potential abbreviation if it comes right before a note or citation. This causes problems for citeproc’s moving of note citations.
LaTeX reader:
- Support missing siunitx commands (#6658).
- Support
squared
,cubed
,tothe
in siunitx (#6657). - Improved uncertainty handling in slunitx.
- Factored out siunitx stuff into separate unexposed module.
- Fix improper empty cell filtering (#6689, Christian Despres).
- Fix parsing of “show name” in
\newtheorem
(#6734). Previously we were just treating it as a string and ignoring accents and formatting. - Prevent wrong nesting of
\multirow
and\multicolumn
table cells (#6603, Laurent P. René de Cotret). - Table cell parser not consuming spaces correctly (#6596, Laurent P. René de Cotret).
- Change
SIRange
toSIrange
(#6617, Emerson Harkin).
- Allow blank lines inside
\author
(#6324).DocBook reader:
- Don’t squelch space at end of emphasis and other inline elements; instead, move it outside the element (#6719).
- Implement table cell alignment (#6698, Nils Carlson).
- Implement column span support for tables (#6492, Nils Carlson).
- Update list of block level tags (#6610).
JATS reader:
- Don’t squelch space at end of emphasis and other inline elements; instead, move it outside the element (#6719).
RST reader:
- Apply
.. class::
directly to following Header rather than creating a surrounding Div (#6699).Docx reader:
- Allow empty dates in comments and tracked changes (#6726, Diego Balseiro).
Markdown writer:
- Be less aggressive about using quotes for YAML values, allowing e.g. a quotation mark or bracket as long as it’s not at the beginning of the line.
- Use double quotes for YAML metadata (#6727).
- Sort YAML metadata keys in Markdown output case-insensitive.
Asciidoc writer:
- Support asciidoctor’s block figures (#6538, argent0).
LaTeX writer:
- Fix spacing issue with list in definition list. When a list occurs at the beginning of a definition list definition, it can start on the same line as the label, which looks bad. Fix that by starting such lists with an
\item[]
.HTML writer:
- Support intermediate table headers (#5314, Albert Krewinkel).
- Support attributes on all table elements (Albert Krewinkel).
- Render table footers if present (#6314, Albert Krewinkel).
- Fix addition of
doc-biblioentry
role.
- Support colspans and rowspans in HTML tables (#6312, Albert Krewinkel).
ICML writer:
- Support internal document links (#5541, Leonard Rosenthol).
- Changed default link state to invisible (#6676, Leonard Rosenthol).
Docx writer:
- Better handle list items whose contents are lists (#5948, Michael Hoffmann). If the first element of a bulleted or ordered list is another list, then that first item would previously disappear if the target format is docx.
- Separate adjacent tables (#4315). Word combines adjacent tables, so to prevent this we insert an empty paragraph between two adjacent tables.
Org writer:
- Don’t force blank line after headings (#6554).
OpenDocument writer:
- Implement table cell alignment (#6700 Nils Carson, Mauro Bieg).
- New table cell support with row and column spans (#6682, Nils Carson).
- Syntax highlighting for inline code (#6711, niszet).
➕ Add Text.Pandoc.Citeproc module, exporting
processCitations
[API change]. This depends on several other, unexported modules under Text.Pandoc.Citeproc.➕ Add module Text.Pandoc.Writers.CslJson, exporting
writeCslJson
. [API change]➕ Add module Text.Pandoc.Readers.CslJson, exporting
readCslJson
. [API change]➕ Add module Text.Pandoc.Readers.BibTeX, exporting
readBibTeX
andreadBibLaTeX
. [API change]0️⃣ Text.Pandoc.Filter: Add
CiteprocFilter
constructor to Filter. [API change] This runs the processCitations transformation. We need to treat it like a filter so it can be placed in the sequence of filter runs (after some, before others). In FromYAML, this is parsed fromciteproc
or{type: citeproc}
, so this special filter may be specified either way in a defaults file (or byciteproc: true
, though this gives no control of positioning relative to other filters).➕ Add new exported module Text.Pandoc.Writers.AnnotatedTable [API change] (#6655, Christian Despres). This module (which should generally be imported qualified to avoid name conflicts) provides a
Table
type that mirrors the structure of a pandocTable
, but with added inferred information so that the writers do not have to lay out tables themselves. ThetoTable
andfromTable
functions convert between an annotatedTable
and a regular pandocTable
. In addition to producing aTable
with coherent and well-formed annotations, thetoTable
function also normalizes its input table like the table builder does. Tests ensure thattoTable
normalizes tables exactly like the table builder, and that its annotations are coherent.🌲 Text.Pandoc.Logging:
- Remove unused
CouldNotParseYamlMetadata
constructor forLogMessage
[API change].
- Add
CiteprocWarning
constructor toLogMessage
[API change].📇 Text.Pandoc.Readers.Metadata: export
yamlBsToRefs
[API change]. These allow specifying an id filter so we parse only references that are used in the document.📜 Text.Pandoc.Parsing:
- Export ParseError [API change].
- Add
stateInNote
andstateNoteNumber
toParserState
[API change]. These are used to populate note numbers for citation processing.🛠 Fix apparent typos in sample.lua (#6729, William Lupton). Also make the writer less aggressive in escaping quotes.
Text.Pandoc.Options:
defaultMathJaxURL
: usetex-chtml-full
instead oftex-mml-chtml
(#6599, Kolen Cheung). This drops the MathML support (which we don’t need for HTML math rendering) and includes the full JavaScript, which makes it possible to use--self-contained
(though there may still be issues if the required math fonts aren’t available). This change should also reduce latency in pages with lots of formulas.
- Add
/tex-chtml-full.js
todefaultMathJaxURL
(#6593) Previously we added this in processing command line options, but not in processing defaults files, which was inconsistent.epub.css: Fix cover page selectors and add note explaining their use (#6649, a-vrma).
➕ Add data files needed for Text.Pandoc.Citeproc: these include
default.csl
in the data directory and aciteproc
directory that is only used at compile-time for biblatex localizations. Note that we’ve addedfile-embed
as a mandatory rather than a conditional depedency, because of the biblatex localization files.Lua filters:
➕ Add SimpleTable for backwards compatibility (#6575, Albert Krewinkel). A new type
SimpleTable
is made available to Lua filters. It is similar to theTable
type in pandoc versions before 2.10; conversion functions from and to the new Table type are provided. Old filters using tables now require minimal changes and can use, e.g.,if PANDOC_VERSION > {2,10,1} then pandoc.Table = pandoc.SimpleTable end
and
function Table (tbl) tbl = pandoc.utils.to_simple_table(tbl) … return pandoc.utils.from_simple_table(tbl) end
to work with the current pandoc version.
📚 Make
attr
argument optional inTable
constructor (Albert Krewinkel). This changes the Lua API. It is highly unlikely for this change to affect existing filters, since the documentation for the new Table constructor (and type) was incomplete and partly wrong before. The Lua API is now more consistent, as all constructors for elements with attributes now take attributes as the last parameter.MANUAL.txt:
- Add a dedicated Citations section which consolidates the information the manual used to contain about citation processing, and incorporates some information formerly found in the pandoc-citeproc man page.
- Add note about lualatex using
selnolig
. - Remove duplicate
seriespage
(#6568, Blake Eryx). - Remove lists of support extensions for markdown variants (#6604). Instead, offer the advice to use
--list-extensions=FORMAT
. - Fix position of attributes in header (Albert Krewinkel).
- Delete obsolete section on compact and loose lists (#6684).
doc/lua-filters.md:
- Add info on how to debug Lua filters (#6732, Ian Max Andolina).
- Document Underline type and constructor (Albert Krewinkel).
- Document
body
field (Albert Krewinkel). - Add missing header attribute
- Add missing Link.title field (Albert Krewinkel).
- Make the setting-the-date example conditional (the-solipsist). This makes the example a bit more realistic.
- Remove outdated link table example.
doc/org.md:
- Add section on tables (Albert Krewinkel).
- Add section on handling of unknown directives (Albert Krewinkel).
CONTRIBUTING.md: fix typo (#6584, Dmitry Volodin).
⚡️ Use golden test framework for command tests. This means that
--accept
can be used to update expected output.👉 Use the
smart
extension when generating pandoc’s man page (#6613).🚀 Release-candidate: don’t build windows i386. So far we haven’t been able to figure out how to get stack to use a 32-bit ghc.
🏗 Use
null
instead of deprecatedBuilder.isNull
.👉 Makefile:
- Fix macospkg target to fetch target from S3 artifacts.
- Fix pandoc-templates target to include all partials.
✂ Remove duplicated dependency in pandoc.cabal (#6591, Felix Yan).
🏗 Sort build depends in pandoc.cabal alphabetically (#6691, Albert Krewinkel).
➕ Add .travis.yml for macos release candidate build (#6622). We need to build the release candidate on Travis rather than GitHub actions, because GH has macos 10.15, and binaries compiled on that OS will not work with 10.13. This build is only triggered on
rc/*
branches.✂ Remove instructions for building pandoc-citeproc from CI and release binary build instructions. We will no longer distribute pandoc-citeproc.
🛠 Fix math rendering in trypandoc (this broke after commit d8ad766).
✅ Use latest versions of skylighting, commonmark (#6589), comonmark-extensions, commonmark-pandoc, texmath.
✅ Relax version bounds for hslua, hslua-module-text, bytestring.
🚀 Use released pandoc-types 1.22. This changes the JSON encoding slightly for the new table types introduced in 1.21, so they’re more consistent with the rest. Developers of libraries for pandoc filters will want to take note.
🛠 Fix hlint suggestions, update hlint.yaml (#6680, Christian Despres).
Code cleanup (#6678, Joseph C. Sible).
➕ Add haddocks to functions in Text.Pandoc.Writers.Shared (Albert Krewinkel).
✂ Remove duplicate
tshow
definition.🚀 Linux release candidate build: use ghc-musl container. This simplifies our build process (over using a customized alpine container).
- Add
-
v2.11.0.4 Changes
October 23, 2020✅ Use latest citeproc (2.11.0.3, closes #6765). This fixes a problem with author-in-text citations for references including both an author and an editor. Previously, both were included in the text, but only the author should be.
💅 With
--citeproc
, ensure that the final period is removed when citations that occur in notes in note-based styles get put in parentheses. See jgm/citeproc#20.🛠 Commonmark writer: fix regression with fenced divs (#6768). Starting with 2.10.1, fenced divs no longer render with HTML div tags in commonmark output. This is a regression due to our transition from cmark-gfm. This commit fixes it.
Normalize rewritten image paths with
--extract-media
(#6761). This change will avoid mixed paths like this one when--extract-media
is used with a Word file:![](C:\Git\TIJ4\Markdown/media/image30.wmf)
. Instead we’ll get![](C:\Git\TIJ4\Markdown
mediaimage30.wmf)
.0️⃣ Modify
--version
output. Use space more efficiently and report the citeproc and ipynb versions, along with skylighting, texmath, and pandoc-types. Drop the word “default” before “user data directory.”👍 DocBook reader: bibliomisc and anchor support (#6754, Nils Carlson). Also ensure that bibliodiv without a title no longer results in an empty Header.
ConTeXt template: adds
\setupinterlinespace
to fonts larger than normal (#6763, Denis Maier).👀 LaTeX template: Do not load amssymb if not needed (#6469, Angelo Peronio). See https://tex.stackexchange.com/a/549938.
😌 Relax upper bound on hslua, allow hslua-1.3.* (Albert Krewinkel).
✅ Use latest sylighting, with support for
groovy
.MANUAL:
-
v2.11.0.3
October 23, 2020 -
v2.11.0.2 Changes
October 16, 2020Click to expand changelog
🛠 Fix handling of
xdata
in bibtex/biblatex bibliographies (#6752).🛠 Fix some small typos in the API documentation (#6751, Michael Hoffmann).
💅 Require citeproc 0.1.0.2. This fixes a regression from pandoc-citeproc involving spacing between components of a reference in certain styles (e.g.
cell.csl
).🛠 Fix typos in comments, doc strings, error messages, and tests (Albert Krewinkel, #6738).
-
v2.11.0.1 Changes
October 14, 2020Click to expand changelog
👍 LaTeX reader: support more acronym commands (#6746):
\acl
,\aclp
, and capitalized versions of already supported commands.Commonmark reader: add
pipe_table
extension after defaults (#6739). Otherwise we get bad results for non-table, non-paragraph lines containing pipe characters.Markdown writer: Fix autolinks rendering for gfm (#6740). Previously, autolinks rendered as raw HTML, due to the
class="uri"
added by pandoc’s markdown reader.LaTeX writer:
- Escape option values in lstlistings environment (#6742).
- Fix handling of
lang
pt-BR
(#2953). For polyglossia we now use\setmainlanguage[variant=brazilian]{portuguese}
and for babel\usepackage[shorthands=off,main=brazilian]{babel}
.✅ Depend on latest citeproc (0.1.0.1).
- This fixes the citation number issue with ieee.csl and other styles that do not explicitly sort bibliographies (#6741). (Pandoc was numbering them by their order in the bibliography file, rather than the order cited, as required by the CSL spec.)
- Fixes groupin/collapsing with citation items with prefixes.
0️⃣ default.latex: fix
CSLReference
macro definition.🛠 Fix MANUAL.txt CSL JSON conversion examples.
🛠 Fix spelling errors in chengelog, MANUAL.txt,
doc/org.md
(#6738). -
v2.10.1 Changes
July 24, 2020Click to expand changelog
➕ Add
commonmark_x
output format. This iscommonmark
with a number of useful pandoc extensions enabled.Many more extensions now work with
commonmark
andgfm
.➕ Add generic
attributes
extension. This allows attributes to be added to any block or inline element in a uniform way. Since the Pandoc AST doesn’t include attributes on each element type, the attributes will sometimes be added by creating a surrounding Div or Span container. Currently this extension is only compatible with thecommonmark
andgfm
readers.To add an attribute to a block-level element, e.g. a paragraph, put it before the block:
{#mypara} This is a paragraph.
Multiple attributes may be used and will be combined:
{#mypara} {.blue .warning key="val"} This is a paragraph.
To add an attribute to an inline-level element, put it immediately after the element:
*emphasized text*{.special}
👌 Support
--number-sections
for docx output (#1413).LaTeX reader:
- Support
\SIRange
reader (#6418, Emerson Harkin). - Support table col-span and row-span (#6311, Laurent P. René de Cotret). Supports
\multirow
and\multicolumn
. - Support amsthm:
\newtheorem
,\theoremstyle
, and theorem and proof environments, including labels and references. The only thing that is unsupported is the second optional argument, which causes numbering to be reset after the specified series is incremented.
- Moved some code to T.P.LaTeX.Parsing. We need to reduce the size of the LaTeX reader to ease compilation on resource-limited systems.
RST reader:
- Fix csv tables with multiline cells (#6549).
- Fix spurious newlines in some attributes from directives.
- Avoid extra newline in included code blocks.
Commonmark reader:
- Switch from cmark-gfm to commonmark-hs for commonmark and gfm parsing. This avoids depending on a C library and allows us to support more pandoc extensions for
commonmark
andgfm
.DocBook reader:
- Parse releaseinfo as metadata (#6542).
Docx reader:
- Only use
bCs/iCs
on runs withrtl
orcs
property (#6514, Nikolay Yakimov).
- Code cleanup/refactoring (Nikolay Yakimov).
Org reader (Albert Krewinkel):
- Respect export setting which disables entities MathML-like entities, e.g.,
\alpha
, can be disabled with the#+OPTION: e:nil
export setting (Albert Krewinkel). - Respect export setting disabling footnotes. Footnotes can be removed from the final document with the
#+OPTION: f:nil
export setting.
- Respect tables-excluding export setting. Tables can be removed from the final document with the
#+OPTION: |:nil
export setting.Markdown writer:
- Move
asciify
out ofescapeString
. Otherwiseunsmartify
doesn’t catch quotes that have already been turned to entities. - Add
writeCommonmark
(new exported function, API change). - Use unicode super/subscript characters when possible if the
superscript
orsubscript
extension orraw_html
aren’t available. - Render caption as following paragraph when
table_caption
extension is not enabled.
- Use numerical labels for reference links that are longer than 999 characters or contain square brackets, for conformity with commonmark (#6560).
Commonmark writer:
- Instead of using cmark-gfm, use
writeCommonmark
from the Markdown writer. This function calls the markdown writer with appropriate extensions and a few small modifications (e.g. not requiring backslashes before spaces inside super/subscripts). With this changecomonmark
andgfm
output can be used with a wider selection of extensions.Jira writer: keep image caption as alt attribute (#6529, Albert Krewinkel).
HTML writer:
- Improve alt-text/caption handling for HTML5 (#6491, Albert Krewinkel). Screen readers read an image’s
alt
attribute and the figure caption, both of which come from the same source in pandoc. The figure caption is hidden from screen readers with thearia-hidden
attribute. This improves accessibility. For HTML4, wherearia-hidden
is not allowed, pandoc still uses an emptyalt
attribute to avoid duplicate contents.Ms writer:
- Fix code highlighting with blank lines. Previously blank lines were simply omitted from highligted code.
- Escape starting periods in ms writer code blocks (#6505, Michael Hoffmann). If a line of ms code block output starts with a period (.), it should be prepended by
\&
so that it is not interpreted as a roff command.Text.Pandoc.Extensions:
➕ Add
raw_markdown
extension (which only affectsipynb
input).Trim down
githubMarkdownExtensions
. Previously it included all of the following, which make sense for the legacymarkdown_github
but not forgfm
, since they are part of base commonmark and thus can’t be turned off ingfm
:- `Ext_all_symbols_escapable` - `Ext_backtick_code_blocks` - `Ext_fenced_code_blocks` - `Ext_space_in_atx_header` - `Ext_intraword_underscores` - `Ext_lists_without_preceding_blankline` - `Ext_shortcut_reference_links`
🚚 These have been removed from
githubMarkdownExtensions
, though they’re still turned on for legacymarkdown_github
.➕ Add
Ext_attributes
constructor forExtension
[API change].LaTeX template: use selnolig to selectively suppress ligatures with lualatex (#6534).
✅ Benchmark bytestring readers (Nikolay Yakimov).
📚 Documentation:
- Update using-the-pandoc-api.md (favonia).
- Fix Typos in lua-filters.md (tajmone).
- Rewrite Raw HTML/TeX section in MANUAL.txt to avoid duplicate headings for the extensions.
- Fix typo in MANUAL.txt (Benjamin Wuethrich).
- Remove duplicate ‘titlepage’ in MANUAL.txt (Blake Eryx).
- CONTRIBUTING.md: Advertise the official nightlies in GitHub actions. Replaces #6500, thanks to @ickc.
- Support
-
v2.10 Changes
June 30, 2020Click to expand changelog
👉 Use pandoc-types 1.21. This adds two things:
- A native Underline constructor for Inline (#6277, Vaibhav Sagar).
- More expressive types for tables (#1024, Christian Despres). Tables can now take attributes; and rowspans and colspans, column headers, multiple row headers, table head and foot can all be represented. (Note, however, that reader and writer support for these features is still lacking, so most users won’t see any differences in table conversion yet. These changes just lay the foundation for further improvements.)
👌 Support new Underline element in readers and writers (#6277, Vaibhav Sagar).
👌 Support new Table type (Christian Despres). The Builder.simpleTable now only adds a row to the TableHead when the given header row is not null. This uncovered an inconsistency in the readers: some would unconditionally emit a header filled with empty cells, even if the header was not present. Now every reader has the conditional behaviour. Only the XWiki writer depended on the header row being always present; it now pads its head as necessary.
➕ Add an option to disable certificate validation (#6156, Cédric Couralet, Cécile Chemin, Juliette Fourcot). This commit adds the option
--no-check-certificate
, which disables certificate checking when resources are fetched by HTTP.📇 Unify defaults and markdown metadata parsers (#6328, Nikolay Yakimov). Clean up code in Text.Pandoc.Readers.Metadata and properly handle errors in
yamlToMeta
. This fixes parsing of Boolean fields in metadata withinin defaults files and reduces code duplication.Docbook reader:
- Implement
<procedure>
(#6442, Mathieu Boespflug). - Implement
<phrase>
(#6438, Mathieu Boespflug). - Treat envar and systemitem like code (#6435, Mathieu Boespflug).
- Implement
<replaceable>
(#6437, Mathieu Boespflug)
- Map
<simplesect>
to unnumbered section (#6436, Mathieu Boespflug).JATS reader:
- Handle “label” element in section title (#6288).
- Parse abstract element into metadata field of same name (#6480, Albert Krewinkel).
Jira reader (Albert Krewinkel):
- Resolve multiple parsing problems, including issues with empty table cells, faulty recognition of closing emphasis characters, and parsing of image attributes (#6212, #6219, #6220).
- Two consecutive markup chars are now parsed verbatim (#6343); styled text must not be empty.
- Newlines are no longer allowed within styled text (#6325).
- Links to anchors are now parsed as links (#6407).
- Retain image attributes (#6234). Jira images attributes as in
!image.jpg|align=right!
are retained as key-value pairs. Thumbnail images, such as!example.gif|thumbnail!
, are marked by athumbnail
class in their attributes. - Use Underline for inserted text (#6237). Previously, the span was marked with the non-standard class
inserted
. - Improve icon conversion for
(/)
,(x)
,(!)
,(?)
(+)
,(-)
,(off)
,(*)
. (#6236, #6264). - Support citations, attachment links, and user links (#6231, #6238, #6239).
- Resolve parsing issues of blockquote, color (#6233, #6235).
HTML reader:
- Parse attributes into table attributes.
- Support
<bdo>
(#5794, Tristan de Cacqueray). - Add
summary
to list of block-level HTML tags (#6385). This improves support for summary/details inside Markdown. NOTE: you need to include a blank line before the closing</details>
, if you want the last part of the content to be parsed as a paragraph.
- Fix parsing unclosed th elements in a table (#6247).
Commonmark reader: Implement
implicit_figures
extension (#6350).Markdown Reader:
- Fix inline code in lists (#6284, Nikolay Yakimov). Previously inline code containing list markers was sometimes parsed incorrectly.
- Don’t require blank line after grid table (#6481). This allows grid tables to be enclosed in fenced divs with no intervening blank lines.
LaTeX reader:
- Don’t parse beyond
\end{document}
(#6380). This required some internal changes to\subfile
handling.
- Better handling of
\lettrine
. SmallCaps instead of Span for the part after the initial capital. Ensure that both arguments are parsed, so that in Markdown both are treated as raw LateX. (Closes #6258.)Org reader (Albert Krewinkel):
- Recognize images with uppercase extensions (#6472).
- Keep unknown keyword lines as raw org. The lines of unknown keywords, like
#+SOMEWORD: value
are no longer read as metadata, but kept as raworg
blocks. This ensures that more information is retained when round-tripping org-mode files; additionally, this change makes it possible to support non-standard org extensions via filters. - Unify keyword handling. Handling of export settings and other keywords (like
#+LINK
) has been combined and unified. - Support
LATEX_HEADER_EXTRA
andHTML_HEAD_EXTRA
settings. These export settings are treated like their non-extra counterparts, i.e., the values are added to theheader-includes
metadata list. - Allow multiple
#+SUBTITLE
export settings. The values of all lines are read as inlines and collected in thesubtitle
metadata field. - Read
#+INSTITUTE
values as text with markup. The value is stored in theinstitute
metadata field and used in the default beamer presentation template. - The behavior of the
#+AUTHOR
and#+KEYWORD
export settings has changed: Org now allows multiple such lines and adds a space between the contents of each line. Pandoc now always parses these settings as meta inlines; setting values are no longer treated as comma-separated lists. Note that a Lua filter can be used to restore the previous behavior. - Read description lines as inlines (#6485).
#+DESCRIPTION
lines are now treated as text with markup. If multiple such lines are given, then all lines are read and separated by soft linebreaks.
- Honor tex export option (#4070). The
tex
export option can be set with#+OPTION: tex:nil
and allows three settings:t
(the default) causes LaTeX fragments to be parsed as TeX or added as raw TeX.nil
removes all LaTeX fragments from the document.verbatim
treats LaTeX as text.RST reader:
- Pass arbitrary attributes through in code blocks (#6465). Exceptions: name (which becomes the id), class (which becomes the classes), and number-lines (which is treated specially to fit with pandoc highlighting).
- Handle
date::
directive (#6276).👍 Textile reader: support
pre.
for code blocks (#6454).Ipynb reader:
- Handle application/pdf output as image (#6430).
- Properly handle image/svg+xml as an image (#6430).
Docx reader:
- Distinguish between docx parsing and docx container unpacking errors.
MediaWiki reader:
- Fix
gfm_auto_identifiers
so that-
is not replaced by_
(#6335).Vimwiki reader:
➕ Add nested syntax highlighting (#6256, Vlad Hanciuta). Nested syntaxes are specified like this:
{{{sql SELECT * FROM table }}}
📜 The preformatted code block parser has been extended to check if the first attribute of the block is not a
key=value
pair, and in that case it will be considered as a class.Jira writer (Albert Krewinkel):
- Always escape braces (#6478). Braces are now always escaped, even within words or when surrounded by whitespace. Jira and Confluence treat braces specially.
- Convert Underline to inserted text (
+inserted+
).
- Add image attributes (#6234). Image attributes are added to the output as image parameters. If the image has a class “thumbnail”, then a thumbnail image is generated; all other attributes are discarded in this case.
LaTeX writer:
- Ensure that
-M csquotes
works even in fragment mode (#6265). - Escape
^
specially for listings (#6460). - Create hypertarget for links with identifier (#6360).
- Distinguish between single and double quotes when using enquote package (#6457, dbecher-ito).
- Add support for customizable alignment of columns in beamer (#6331, andrebauer).
- Add support for customizable alignment of columns in beamer (#4805, #4150, andrebauer).
HTML writer:
- Use CSS in favor of
<br>
for display math (#6372) Some CSS to ensure that display math is displayed centered and on a new line is now included in the default HTML-based templates; this may be overridden if the user wants a different behavior.Org writer:
- Clean-up Div handling (Albert Krewinkel).
Docx writer:
- Enable column and row bands for tables (#6371). This change will not have any effect with the default style. However, it enables users to use a style (via a reference.docx) that turns on row and/or column bands.
OpenDocument (and ODT) writer:
- Add custom-style “Abstract” in metadata abstract. This ensures that the abstract is rendered with style Abstract.
- Enable custom-style attribute on a Div. This allows you to apply a custom style to contained paragraphs.
DocBook writer:
- Add id of figure to enclosed image.
- Add personname element to docbook author (#6244).
FB2 writer:
- Properly handle cover-image containing spaces (#6391).
Markdown writer:
- Ensure consistent padding for pipe tables (#6240).
- Avoid unnecessary escapes before intraword
_
whenintraword_underscores
extension is enabled (#6296).RST writer:
- Properly handle images with same alt text (#6194). Previously we created duplicate references for these in rendering RST.
AsciiDoc writer:
- Add blank line after Div (#6308).
Haddock Writer:
- Support Haddock tables (Joe Hermaszewski). See this PR on Haddock for details on the table format: haskell/haddock#718.
PowerPoint writer (Jesse Rosenthal):
- Write math input verbatim in speaker notes (#6301). OMML in speaker notes would lead to corrupt PowerPoint output. We now output the OMML verbatim as LaTeX in the speaker notes.
📦 LaTeX template: Make polyglossia package options list-aware (#6444, Frederik Elwert).
Reveal.js template:
- Update template for reveal.js 4.0.0 (#6390, Salim B).
- Update template with newly available options (#6347, Jake Zimmerman).
- Use CDN version of revealjs v4 by default (#6408).
opendocument template: Add abstract and subtitle to opendocument template (#6369).
💅 reference.odt: clean up styles. Add Abstract. Change Author, Date to centered paragraphs with no character styling.
👀 epub.css: wrap overlong lines in highlighted code blocks (#6242). This fixes a problem in iBooks v2.4 with our earlier horizontally scrolling code blocks. The problem seems to be a bug in iBooks, not pandoc, but since iBooks is a major target we’re changing pandoc’s default behavior so that pandoc-produced epubs work on that platform.
Text.Pandoc.PDF:
- Use
--enable-local-file-access
in invokingwkhtmltopdf
(#6474).wkhtmltopdf
changed in recent versions to require this for access to local files. This fixes PDF via HTML5 with--css
.
- Send verbose output to stderr, not stdout (#6483).
Text.Pandoc.MIME: Fix MIME type for TrueType fonts in EPUBs (#6464, Michael Reed).
Text.Pandoc.Shared:
makeSections
: omit number attribute when unnumbered class is present (#6339). Previously the attribute was included but given an empty value, and this caused the table of contents creation functions in Text.Pandoc.Writers.Shared to think these items had numbers, which meant that they were included in the TOC even if theunlisted
class was used.- Deprecate
underlineSpan
in Shared in favor ofText.Pandoc.Builder.underline
(Vaibhav Sagar).
-
renderTags'
: use self-closing tag for col element (#6295).🚚 Text.Pandoc.UUID: Fix
getRandomUUID
, which previously would return the same value twice in a row. MakegetRandomUUID
polymorphic in PandocMonad. RemovegetUUID
(#6228, Joseph C. Sible).Text.Pandoc.Class: Generalize
PandocIO
functions toMonadIO
.🛠 Fixed Katex standalone script (#6399, Lucas Escot). Global macros are now persistent when using the HTML Writer with the
--katex
option.Lua subsystem (Albert Krewinkel):
- Use new type PandocLua for all pandoc Lua operations (API change). The new type
PandocLua
is an instance of thePandocMonad
typeclass and can thus be used in a way similar toPandocIO
.
- Use PandocError for exceptions in Lua subsystem (API change). The PandocError type is used throughout the Lua subsystem. All Lua functions throw an exception of this type if an error occurs. The
LuaException
type is removed and no longer exported fromText.Pandoc.Lua
. In its place, a new constructorPandocLuaError
is added to PandocError.🖨 Lua filters: improve error messages for failing filters (#6332, Albert Krewinkel). Print the Lua error properly instead of displaying their
show
string.✅ Use latest skylighting. This fixes a bug with lua multiline comments (and may improve handling of other syntaxes as well). IT also adds
aria-hidden="true"
to the empty a elements, which helps people who use screen readers.✅ Use latest texmath.
✅ Require latest doctemplates 0.8.2. This adds support for template pipes
first
,rest
,last
,allbutlast
.⚡️ Revert 0e48a02 and dependency on base-noprelude, which hasn’t been updated for ghc 8.10 (see #6187).
Dependency adjustments:
- Allow haddock-library 1.9.x.
- Allow hslua 1.1 (#6243, Felix Yan).
- Allow base64-bytestring 1.1.
- Use latest jira-wiki-markup.
- Allow http-client 0.7.
- Allow tasty 1.3.x.
- Allow aeson 1.5 (#6400, Felix Yan).
- Remove unused dependency
vector
(#6462, Laurent P. René de Cotret).
- Bump QuickCheck upper bound.
Significant code cleanup and simplification (Joseph C. Sible, #6223, #6209, #6225, #6229, #6226, #6340).
✂ Remove unnecessary hlint ignores (#6341, Joseph C. Sible).
✂ Remove obsolete RelaxedPolyRec extension (#6487, Nikolay Yakimov).
trypandoc improvements (Mike Tzou):
- Add standalone option to the command text (#6210).
- Update third party libraries.
MANUAL.txt:
- Clarify template partial naming (#6476, Mauro Bieg).
- Describe
jira
as “Jira/Confluence wiki markup” (#6351, Albert Krewinkel). In the past, Jira’s wiki markup was also used by – and could be imported into – Atlassian Confluence. - Add link to print-css.rocks (#6272, Mauro Bieg).
- Clarify pipe table column width adjustment (#6254).
- Fix ATX header syntax.
- Fix misleading note about image size conversions (#6353).
- Update links to reveal.js documentation (#6386, Salim B).
- Separate adjacent verbatim code blocks (#6307, tom-audm).
org.md:
- Document behavior of
smart
extension (#4387, Albert Krewinkel).
- Describe all supported export options in detail.
lua-filters.md:
- Fix description of BulletList Lua type (Levi Gruspe).
- Use pandoc.system module in TikZ example (Albert Krewinkel). Showcase temporary directory handling with
with_temporary_directory
andwith_working_directory
.INSTALL.md: fix FreeBSD port link (#6422, Mo). The FreeBSD port was renamed from pandoc to hs-pandoc in 2010. The old pandoc port is still at version 1.5.1.1
Propagate
(DY)LD_LIBRARY_PATH
in tests (#6376, Lila).⬆️ Bump
cabal-version
to 2.2 (#6377).👉 Make it possible to compile using Stack on NixOS (#6439, Mathieu Boespflug).
CI action to check for commit messsage length (Nikolay Yakimov, #6398).