I'm pleased to announce the release of pandoc 3.13,
available in the usual places:
Binary packages & changelog:
https://github.com/jgm/pandoc/releases/tag/3.13
Source & API documentation:
http://hackage.haskell.org/package/pandoc-3.13
This release fixes some regressions and makes many minor
improvements. See the changelog for full details.
Behavior changes:
-
Locations of errors in default files are now reported.
-
YAML is now parsed with the yamlet library, which implements
YAML 1.2. As a result, we'll get better error messages, and:yes,no,on,off,yandnare strings, not booleans.- Duplicate keys in a mapping are an error. They were a warning.
.5,.infand.nanare numbers.
The most likely way this change will bite you is if you use
noin a boolean field. This will be interpreted as a nonempty
value, which will be treated as truthy in a template.
API changes:
- Text.Pandoc.Sharde: export
plainToParaandparaToPlain. - Text.Pandoc.Writers.Shared: export new functions
wrapColumnsand
rendereWithTemplate. - Text.Pandoc.Translations:
readTranslationsnow takes the path
of the file as argument.
Thanks to all who contributed, especially new contributors Report the location of errors in defaults files (#8759, Andrzej Rybczak). An invalid value in a defaults file gave an error at the start of the file, with no indication of the field. The error now names the option and points at its value.
Use yamlet for YAML parsing. Pandoc parsed YAML with the yaml package, which depends on the C library libyaml. It now uses yamlet, a pure Haskell YAML 1.2 parser. Values still go through the existing aeson instances. Note these behavior changes:
Docx reader:
RST reader:
RTF reader:
LaTeX reader:
ODT reader:
Markdown writer:
RST writer:
Haddock writer:
Docx writer:
LaTeX writer:
PowerPoint writer:
DocBook, JATS, TEI writers:
Typst writer:
Text.Pandoc.Translations:
Text.Pandoc.Writers.Shared:
Text.Pandoc.Shared:
Text.Pandoc.PDF:
cabal.project:
Makefile:
Use released citeproc 0.14.1.1, texmath 0.13.3.3, gridtables 0.1.1.1 (#9085).
MANUAL.txt:
Bump bounds on crypton, crypton-x509-system, tasty-bench.
Add
Andrzej Rybczak, Patrick Creighton, Wleeaf, and enieuwy.
Click to expand changelog
yes, no, on, off, y and n are strings, not booleans, as in YAML 1.2.
.5, .inf and .nan are numbers.
w:fldSimple fields (#11944, Aslak Hellesøy).
w:w is optional on w:gridCol, but elemToTblGrid skipped the grid columns that had none. The table then had fewer columns than its rows had cells, and the extra cells were dropped. Every grid column is now kept. If any of them has no (readable) width, all columns get the default width.
:, /, ', ", < (Wleeaf). Fixes a regression since 3.2.1; these characters could no longer precede an inline markup start-string or a bare URI or email address, although the reStructuredText spec allows them. Also implement the rule that a start-character between an opening character and its closing counterpart, as in (*) or "*", does not trigger inline markup.
\uNNNN during tokenization. This led to an extra character being consumed as the “fallback,” so letters went missing after encoded unicode characters.
doMacros calls (#11088).
text:continue-numbering (#9595).
= (#11954). This is needed for the new LaTeX list code, which is triggered by using pdfstandard.
clrMapOvr to notes slides (#11935, Gaurav Vijay Jadhav). This makes them importable by Keynote.
lang in core document properties.
writerIdentifierPrefix prefix consistently.
... and -? ligatures (#11979).
getLang to determine lang and region. Previously only the lang metadata field was consulted, so lang could not be set properly using a variable.
readTranslations now takes the path of the file, for error messages [API change].
wrapColumns, renderWithTemplate [API change]. These factor out code that was repeated in about 20 writers: computing the line length from writerWrapText/writerColumns, and rendering the body with or without the template.
plainToPara and paraToPlain. [API change]
--presentational-hints default for weasyprint. This is necessary to get list attributes (start, ordered list type, etc.) working properly (#11976).
+http on GHC >= 9.14 (previously done only in CI), so local builds behave the same; -f-http still overrides it.
pandoc-cli as ghc-options. cabal only passes ld-options along when it finds an ld program on the PATH. In an environment without one (e.g. nix shell with just the ghc-wasm-meta toolchain), the flags were silently dropped and linking pandoc.wasm failed with undefined setjmp and clock symbols. Use -optl- ghc-options instead, which GHC passes to its linker regardless.
release target.
make pandoc-templates so it does the whole job.
SHELL (check-cabal uses pushd, check-version-sync uses ==).
$(id -u) in debpkg, which make expanded to empty.
echo in validate-docx-golden-tests{,2}.
git ls-files for SOURCEFILES, not the main branch’s tree.
embed_data_files flag in quick-stack.
raw_html in commonmark formats (#8305).
tools/circleci-build-release.sh, tools/github-build-release.sh.