pandoc 3.9 #11439
jgm
announced in
Announcements
pandoc 3.9
#11439
Replies: 2 comments
-
|
Unofficial Linux/RISC-V (64-bit, |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Docker image for the new version are also available now: https://hub.docker.com/u/pandoc |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Click to expand changelog
Add support for compiling pandoc to WASM. (To build,
make pandoc.wasm.) A stanza incabal.projectcontains the necessary build modifications. We owe this almost entirely to TerrorJack, who created the original proof of context and came up with the necessary build flags and patches to some dependencies.pandoc.wasmhas almost all the power of regular pandoc. The main limitations is that it operates in a WASM sandbox and thus cannot use HTTP to fetch resources and cannot run system commands. As a result, JSON filters cannot be used,--embed-resourcesworks only with resources that have been explicitly provided in the WASM sandbox, and PDFs cannot be produced (since that requires running external commands). However, Lua filters can be used, as long as they do not run system commands.A JavaScript bridge module,
wasm/pandoc.js, is provided; this handles the setup necessary to runpandoc.wasmin a browser.In addition, a full-featured GUI interface is provided in the
wasmsubdirectory.make servefrom that directory and it will run locally, or visit https://pandoc.org/app. Note that once the relevant code has been downloaded by the browser, it runs entirely in the browser, and the conversions never touch a server. The GUI was developed in interaction with Claude Code. This app includes a WASM version of Typst and can produce PDF output via Typst.Defaults files may now be either JSON or YAML (though a
.yamlextension will still be assumed if the file has no extension). The structure of a JSON defaults file is isomorphic to that of a YAML defaults file.Variable expansion now works even for the
defaultsfield of defaults files ([bug]:defaultsin default YAML does not interpolate${.}#8024, Jacob Larkin).--extract-mediawill now create a zip archive containing the media (instead of a directory) if the path provided has a.zipextension.Processing with
--citeprocis now affected by areset-citation-positionsclass on headings. When thereset-citation-positionsclass is added to a top-level heading,--citeprocwill reset position information at that point in the document. This is needed in order to ensure that the first citation in a chapter to a work that has been cited in a previous chapter will not be in abbreviated form.RST reader:
-(Terms ending with a minus sign break the definition list #11323). This reverts some old code giving special treatment to lines ending in hyphens; I don’t understand why it was there, because rst2html does not seem to do this.HTML reader:
<style>elements in<body>as a newline #10643, Inline <style> blocks in HTML files are stripped #11246).<style>elements in<body>as a newline #10643, Inline <style> blocks in HTML files are stripped #11246).Markdown reader:
$...$) (Inconsistent handling of spacing with inline math delimiters ($) #11311, benniekiss). Do not allow blank lines before closing$delimiter. This brings the parser in line with the documentation.alertsextension for pandoc markdown (Add the 'alert' extension to Pandoc standard markdown #9716). It is not enabled by default.MediaWiki reader:
<var>and<samp>tags #11299).<var>and<samp>tags #11299).<mark>,<var>,<samp>, and<kbd>now produce Code or Span elements with classes, which can be handled by multiple output formats, instead of simply being parsed as raw HTML tags.RTF reader:
\pard(RTF reader: Ensure new paragraph on \pard #11361, Tuong Nguyen Manh). New paragraphs may start with\pardalone without an explicit paragraph break with\parpreceding it.ODT reader:
DocBook reader:
roleattribute is parsed and added to Pandoc AST elements, using a wrapper Div if needed.DocBook/JATS reader:
Docx reader:
tblGrid(DOCX reader skips tables missing <w:tblGrid> #11380).LaTeX reader:
Org reader:
Texinfo writer:
Typst writer:
HTML writer:
. . .pause work in nested blocks (Slide pause in a column doesn't work #7201, Pauses between columns not working for revealjs #7582).--syntax-highlighting=idiomaticwith reveal.js output, pandoc now generates HTML compatible with reveal.js’s built-in highlight.js plugin: Code blocks use<pre><code class="language-X">format. The template loads highlight.js CSS, JS, and RevealHighlight plugin.Markdown writer:
\line breaks are used for commonmark.JATS writer:
<fig-group>element. Furthermore, figure content that isn’t allowed as children of<fig>elements, such as raw text, gets wrapped in<p>elements to ensure schema-conforming XML.AsciiDoc writer:
#character.Docx writer:
<Override>for/word/media/in[Content_Types].xmlwhen the reference doc contains media, which violates OPC rules and causes Word to report corruption.writeDocxinto a number of smaller functions (Claude Opus 4.5).everywhereto traverse the entire XML tree when setting language attributes, navigate directly to the known pathw:docDefaults/w:rPr/w:lang. This is more efficient and removes the dependency onData.Generics.EPUB writer:
MediaWiki writer:
PPTX writer:
notesfield in the YAML metadata block that will be used as speaker notes for the title slide in PowerPoint output. Previously, there was no way to add speaker notes to the title slide since it is generated from metadata rather than from content blocks.LaTeX writer:
pdfstandardvariable can be used to specify PDF standards (PDF/A, PDF/X, PDF/UA) in LaTeX output. This uses LaTeX’s\DocumentMetadatacommand, which requires LuaLaTeX. PDF version requirements are automatically inferred, but can be explicitly overridden. Automatic tagging is added for standards that require it.Typst template:
--pdf-standard=ua1.HTML5 template:
JATS template:
Text.Pandoc.Citeproc:
@commentaryentries (Problem with the type "commentary" in biblatex #11322).jurisdictionbiblatex type (Typo for the bibtex type "jurisdiction" #11321).Text.Pandoc.Shared:
hasLineBreaks[API change]. This was formerly defined in the DocBook writer but more generally useful.Text.Pandoc.PDF:
SOURCE_DATE_EPOCHto verbose environment variable info.Text.Pandoc.Class:
openURLinto Text.Pandoc.Class.IO.HTTP (unexported module).Lua subsystem (Albert Krewinkel):
pandoc.readersandpandoc.writersmaps now have string values instead of boolean values. The string signals the type of the reader/writer,"text"for TextReader/TextWriter and"bytestring"for ByteStringReader/ByteStringWriter.pandoc.with_state(Add the ability to modify the resource path from lua #10859). The function allows to run a callback with a modified pandoc state. This provides the ability to temporarily modify the resource path, the user data directory, and the HTTP request headers.pandoc.with_stateerror on unknown options (pandoc.with_state: Raise error on invalid options #11376).pandoc.utils.documentation(Lua: provide a function that describes an object #10999). This is now used to generate much of the Lua API documentation.Text.Pandoc.App:
Text.Pandoc.Logging:
prettyfield to ToJSON instance for LogMessage. This just reproduces the output oflogMessage, for convenience for those who are using the JSON output outside of Haskell.Text.Pandoc.Error:
displayExceptionfor PandocError. This is a behavior change, not an API change, since there was already a definition that defaulted to using Show. The change here is that we userenderErrorfor a more human-readable version.Drop support for compilation with GHC versions < 9.6.
Use released citeproc 0.13, djot 0.1.3, skylighting-format-blaze-html 0.1.2 (see HTML classes being removed when specifying the language in inline code attributes #11423), texmath 0.13.1, asciidoc 0.1.0.1, typst-0.9, hslua 2.5.
Add
-Wno-deriving-typebleto cabal ghc-options for ghc >= 9.12.Add
httpcabal flag (Allow to disable network access via a cabal flag #10980). This allows pandoc to be compiled without support for making HTTP requests, which is useful when WASM is the target.pandoc-lua-engine has a new build flag
repl, allowing support for the Lua repl to be disabled for the wasm build.We now sign Windows artifacts with a code signing certificate provided by SignPath.
Mention Excel in cabal description.
Makefile: remove some obsolete targets.
MANUAL.txt:
--chunk-template(fix typo about --chunk-template #11358, Albert Lei).wrap.Fix a few mistakes in the contributing docs. (Fix a few mistakes in the contributing docs. #11318, har7an).
Fix a couple small errors in
doc/lua-filters.md,doc/custom-writers.md, anddoc/custom-readers.md(Some minor documentation errors #11408, Typo "meta.data" in custom-writers.md #11388).This discussion was created from the release pandoc 3.9.
Beta Was this translation helpful? Give feedback.
All reactions