Skip to content

Releases: jgm/pandoc

pandoc 2.3

17 Sep 05:48
@jgm jgm
Compare
Choose a tag to compare
  • 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 of Int (API change).
  • Markdown reader:

    • Use tex instead of latex for raw tex-ish content. We can’t always tell if it’s LaTeX, ConTeXt, or plain TeX. Better just to use tex always. Note that if context or latex 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 (Format latex). In most cases it should be trivial to modify the filters to accept tex as well.
    • Refactor and reorganize YAML code (Mauro Bieg).
    • Make example_lists work for interrupted lists without startnum (#4908).
  • 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).
  • Org reader (Albert Krewinkel):

    • Respect export option p for planning info. Inclusion of planning info (*DEADLINE*, *SCHEDULED*, and *CLOSED*) can be controlled via the p export option: setting the option to t 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).
  • 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 from csquotes (#4848). Note that foreignquote 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). The unnumbered class was being included twice for starred sections.
  • 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 using parseFromString. This change makes it possible to have verbatim </verse> tag inside verse.
  • 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 pass envInsideLinkDescription to it.
    • Separate shouldEscapeString function.
    • Simplify inline list rendering.
    • Replace newlines in strings with spaces.
  • Docx writer:

    • Add MetaString case for abstract, subtitle (#4900, Mauro Bieg).
    • Properly handle display math in spans (#4826). This isn’t a complete solution, since other nestings of display math may still cause problems, but it should work for what is by far the most common case.
  • HTML writer:

    • Always output <dt> element, even if it is empty (#4883, Alexander Krotov).
    • Don’t prefix epub: attributes with data-.
  • 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 the epub: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 in document-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:

    • Ensure that title element is always present, even if empty (#4839).
    • Put author tags in the template, rather than adding them in the writer (#4839).
  • LaTeX writer/template: be sensitive to filecolor variable (#4822). linkcolor only affects internal links, and urlcolor only affects linked URLs. For external links, the option to use is filecolor.

  • ConTeXt writer: output raw tex blocks as well as context (#969).

  • RST writer:

    • Use .. raw:: latex for tex 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.
  • Text.Pandoc.PDF: fix message printed when rsvg-convert is not available (#4855, Antonio Terceiro).

  • HTML5 template: add the title-block-header identifier to the header 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 for publisher, address, pubPlace, and date 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).
  • CONTRIBUTING.md:

    • Link to lua-filters repository (#4874).
    • Fix mistake in REPL instructions for stack. (#4849, Brian Leung).
  • 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

07 Aug 18:13
@jgm jgm
Compare
Choose a tag to compare
  • 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

07 Aug 05:40
@jgm jgm
Compare
Choose a tag to compare
  • 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

06 Aug 00:03
@jgm jgm
Compare
Choose a tag to compare

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 into Spaces, SoftBreaks, and Strs for title-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 of title variable for title block (#4803, Francesco Occhipinti). titleblock contains a properly formatted title and subtitle (using top-level headers). title and subtitle 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 of title. 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:

    • Add beamer info for slide backgrounds (#4802, John Muccigrosso).
    • Clarify when csquotes is used in LaTeX writer (#4514).
    • Add commonmark to list of output formats where raw_tex has an effect (see #4527).

pandoc 2.2.2.1

20 Jul 06:02
@jgm jgm
Compare
Choose a tag to compare
  • 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 in rawLaTeXBlock and rawLaTeXInline (#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:

    • Clarify gfm vs markdown_github (#4783, Mauro Bieg).
    • Use keywords instead of tags in YAML metadata example (#4779). Unlike tags, keywords is used in some of the writers and default templates.
  • Add missing rollingLinks option to revealjs template (#4778, Igor Khorlo).

pandoc 2.2.2

16 Jul 04:55
@jgm jgm
Compare
Choose a tag to compare
  • 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, and on 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 the ascii_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).
  • Markdown reader:

    • Allow empty code spans, e.g. ` `.
    • Emojis are now wrapped in Spans with class emoji and attribute data-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).
  • 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 if implicit_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 the section-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:

    • Properly handle footnotes in table captions (#4683). Refactored code from figure captions to use in both places.
    • In beamer output, fix single digit column percentage (#4690, Mauro Bieg).
  • FB2 writer (Alexander Krotov):

    • Convert Plain to Para in annotation (#2424).
    • Fix order of items in title-info (#2424).
  • 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 (class emoji, attribute data-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 old network-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

11 May 18:52
@jgm jgm
Compare
Choose a tag to compare
  • Restored and undeprecated gladtex for HTML math (#4607).

    • Added GladTeX constructor to Text.Pandoc.Options.HTMLMathMethod [API change, reverts removal in v2.2]
    • Restored and undeprecated --gladtex option, removed in v2.2.
  • 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:

    • Strip links from headers when creating TOC (#4340). Otherwise the TOC entries will not link to the sections.
    • Fix regression with tex math environments in HTML + MathJax (#4639).
  • 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 and doubleQuoteStart (#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 using tr and false, which should always be in the path on a *nix system, and find and echo 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 as c:/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):

    • Clarify truthiness in template variables (#2281).
    • Clarify pipe table width calculation (#4520).
  • 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

27 Apr 19:13
@jgm jgm
Compare
Choose a tag to compare
  • New input format: fb2 (FictionBook2) (Alexander Krotov).

  • Make --ascii work for all XML formats (ICML, OPML, JATS,…), and for ms and man.

  • 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.
  • 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).
  • 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.
  • DocBook reader:

    • Properly handle title in section element (#4526). Previously we just got section_title for section (though sect1, sect2, etc. were handled properly).
    • Read tex math as output by asciidoctor (#4569, Joe Hermaszewski).
  • 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:

    • Allow < 3 spaces indent under directives (#4579).
    • Fix anonymous redirects with backticks (#4598).
  • 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.
  • 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).
  • 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 /> for HorizontalRule 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 from SpeakerNotes in Slide. 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).
  • EPUB writer:

    • Add epub:type="footnotes" to notes section in EPUB3 (#4489).
  • LaTeX writer:

    • In beamer, don’t use format specifier for default ordered lists (#4556). This gives better results for styles that put ordered list markers in boxes or circles.
    • Update \lstinline delimiters (#4369, Tim Parenti).
  • 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.
  • Man writer:

    • Don’t escape U+2019 as ' (#4550).
  • Text.Pandoc.Options:

    • Removed JsMath, LaTeXMathML, and GladTeX constructors from Text.Pandoc.Options.HTMLMathMethod [API change].
  • Text.Pandoc.Class:

    • writeMedia: unescape URI-escaping in file path. This avoids writing things like file%20one.png to the file system.
  • Text.Pandoc.Parsing:

    • Fix romanNumeral parser (#4480). We previously accepted ‘DDC’ as 1100.
    • uri: don’t treat * characters at end as part of URI (#4561).
  • 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.
  • Text.Pandoc.PDF:

    • Use withTempDir in html2pdf.
    • 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.
  • 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 as latex.

  • LaTeX template:

    • Add beameroption variable (#4359, Étienne Bersac).
    • Use pgfpages package; this is needed for notes on second screen in beamer (Étienne Bersac).
    • Add background-image variable (#4601, John Muccigrosso).
  • 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 with embed_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:

    • Clarify template vs metadata variables (#4501, Mauro Bieg).
    • Fix raw content example (#4479, Mauro Bieg).
    • Specify that you use html for raw...
Read more

pandoc 2.1.3

19 Mar 01:40
@jgm jgm
Compare
Choose a tag to compare
  • 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).
  • 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:

    • Strip whitespace at beginning and ending of inline containers (#4327, Francesco Occhipinti).
    • Filter out empty inline containers (#4434). There is nothing in RST that corresponds to e.g. Emph [], so we just ignore elements like this (Francesco Occhipinti).
  • 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:

    • Asciify pdf anchors, since unicode anchors don’t work (#4436). Internal links should be converted automatically, so this shouldn’t affect users directly.
    • Don’t escape hyphens as \-; that’s for a minus sign (#4467).
  • 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 the plain 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.
  • 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 when polyglossia 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 consistently NoImplicitPrelude. 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. Remove weigh-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

03 Mar 06:42
@jgm jgm
Compare
Choose a tag to compare
  • 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.
  • 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:

    • Fixed comments inside citations (#4374).
    • Fix regression in package options including underscore (#4424).
    • Make --trace work.
    • Fixed parsing of tabular* environment (#4279).
  • 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 to definitionList.
    • 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.
  • 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 the custom-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.
  • 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 to presentation.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:

    • Put hypertarget inside figure environment (#4388). This works around a problem with the endfloat package and makes pandoc’s output compatible with it.
    • Fix image height with percentage (#4389). This previously caused the image to be resized to a percentage of textwidth, rather than textheight.
  • 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).
  • 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:

    • Use height instead of depth for images (#4331).
    • Ensure that id prefix is always used.
    • Don’t emit role attribute; that was a leftover from the Docbook writer.
    • Use ‘xml:id’, not ‘id’ attribute (#4371).
  • AsciiDoc writer:

    • Do not output implicit heading IDs (#4363, Alexander Krotov). Convert to asciidoc-auto_identifiers for old behaviour.
  • RST writer:

    • Remove blockToRST' moving its logic into fixBlocks (Francesco Occhipinti).
    • Insert comment between lists and quotes (#4248, Francesco Occchipinti).
  • 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 or nonincremental.

  • Text.Pandoc.ImageSize:

    • Make image size detection for PDFs more robust (#4322).
    • Determine image size for PDFs (#4322).
    • EMF Image size support (#4375, Andrew Pritchard).
  • 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 for commonmark format.
  • 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).
  • 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...

Read more