# Pandoc 3.8 — pandoc 3.8 - Product: Pandoc (https://whatsnew.fyi/product/pandoc) - Vendor: John MacFarlane - Date: 2025-09-06 - Version: 3.8 - Original notes: https://github.com/jgm/pandoc/releases/tag/3.8 - Permalink: https://whatsnew.fyi/product/pandoc/releases/3.8 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add a new input and output format xml that exactly represents a pandoc AST in a more easily human-readable form than JSON - **added** — Add a new command line option --syntax-highlighting that takes the values 'none', 'default', 'idiomatic', a style name, or a path to a theme file - **added** — Add smart_quotes and special_strings extensions for org mode to more closely reproduce Emacs org-mode behavior - **added** — Create directory of output file if it doesn't exist - **added** — Add new modules Text.Pandoc.Readers.XML and Text.Pandoc.Writers.XML - **added** — Add Point and Pica as constructors of ImageSize and Avif constructor of ImageType - **added** — Export new functions from Text.Pandoc.Class: getRequestHeaders, setRequestHeaders, getSourceURL, getTrace - **changed** — Update --version copyright dates and use hardcoded string 'pandoc' for the program name per GNU guidelines - **changed** — Text.Pandoc.Extensions: added constructors Ext_smart_quotes and Ext_special_strings - **changed** — Text.Pandoc.App now exports versionInfo function that takes three parameters - **changed** — Text.Pandoc.Parsing: tableWith and tableWith' now return a list of lists of Blocks allowing for multiple header rows - **changed** — Text.Pandoc.Class: CommonState is now opaque and does not support its fields - **changed** — LaTeX reader: change handling of math environments to retain original environments like align and equation in Math inlines instead of downshifting them - **changed** — Org reader: improve sub- and superscript parsing to correctly handle text preceded by space or at the start of a paragraph - **fixed** — Make -t chunkedhtml -o - output to stdout rather than creating a directory called - - **fixed** — Typst reader: fix addition of image path prefix to use posix separator - **fixed** — HTML reader: don't drop the initial newline in a pre element - **deprecated** — --no-highlighting and --highlight-style options are deprecated in favor of --syntax-highlighting - **removed** — Remove the old compact_definition_lists extension ``` I'm pleased to announce the release of pandoc 3.8, available in the usual places: Binary packages & changelog: https://github.com/jgm/pandoc/releases/tag/3.8 Source & API documentation: http://hackage.haskell.org/package/pandoc-3.8 This release comes with many small improvements and a few larger ones. Among the more visible changes: + A new input/output format xml, which exactly represents a pandoc AST in a more easily human-readable form than JSON. The format is documented in doc/xml.md, and schemas can be found in tools/pandoc-xml.*. + A new command line option --syntax-highlighting, which takes the values 'none', 'default', 'idiomatic', a style name, or a path to a theme file. --no-highlighting and --highlight-style are deprecated. + New extensions smart_quotes and special_strings for org mode. These allow pandoc's parsing to more closely reproduce Emacs org-mode's behavior. + The old compact_definition_lists extension has been removed. API changes: + New modules Text.Pandoc.Readers.XML (exporting readXML) and Text.Pandoc.Writers.XML (exporting writeXML). + Text.Pandoc.Extensions: added constructors Ext_smart_quotes, Ext_special_strings; removed Ext_compact_definition_lists. + Text.Pandoc.App now exports versionInfo, a function that takes three parameters that can be filled in by pandoc-cli. + Text.Pandoc.Parsing: tableWith and tableWith' now return a list of lists of Blocks, allowing for multiple header rows. + Text.Pandoc.ImageSize: Add Point and Pica as constructors of ImageSize. Add Avif constructor of ImageType. + Text.Pandoc.Class: CommonState is now opaque and does not support its fields. To compensate for this, we now export several new functions: getRequestHeaders, setRequestHeaders, getSourceURL, getTrace. Thanks to all who contributed, especially new contributors Christopher Kenny, Erik Post, Repetitive, Reuben Thomas, Ryan Gibb, Sean Soon, and massifrg. ```
Click to expand changelog - Add a new input and output format `xml`, exactly representing a Pandoc AST and isomorphic to the existing `native` and `json` formats (massifrg). XML schemas for validation can be found in `tools/pandoc-xml.*`. The format is documented in `doc/xml.md`. Pandoc now defaults to this reader and writer when the `.xml` extension is used. Two new exported modules are added \[API change\]: Text.Pandoc.Readers.XML, exporting `readXML`, and Text.Pandoc.Writers.XML, exporting `writeXML`. A new unexported module Text.Pandoc.XMLFormat is also added. - Add a new command line option `--syntax-highlighting`; this takes the values `none`, `default`, `idiomatic`, a style name, or a path to a theme file. It replaces the `--no-highlighting`, `--highlighting-style`, and `--listings` options, which will still work but with a deprecation warning. (Albert Krewinkel) - Create directory of output file if it doesn’t exist (#11040). - Update `--version` copyright dates (#10961), and use a hardcoded string “pandoc” for the program name in `--version`, per GNU guidelines. - Add `smart_quotes` and `special_strings` extensions (Albert Krewinkel). Currently these only affect `org`. Org mode makes a distinction between smart parsing of quotes, and smart parsing of special strings like `...`. The finer grained control over these features is necessary to truthfully reproduce Emacs Org mode behavior. Special strings are enabled by default, while smart quotes are disabled. - Remove the old `compact_definition_lists` extension. This was neded to preserve backwards compatibility after pandoc 1.12 was released, but at this point we can get rid of it. - Make `-t chunkedhtml -o -` output to stdout (as documented), rather than creating a directory called `-` (#11068). - RST reader: Support multiple header rows (#10338, TuongNM). - LaTeX reader: - Support soft hyphens (Albert Krewinkel). - Parse `\mini _[Truncated at 4000 characters — full notes: https://github.com/jgm/pandoc/releases/tag/3.8]_