summaryrefslogtreecommitdiff
path: root/changelog
diff options
context:
space:
mode:
Diffstat (limited to 'changelog')
-rw-r--r--changelog3340
1 files changed, 3285 insertions, 55 deletions
diff --git a/changelog b/changelog
index c5f3739fd..7c8516e2d 100644
--- a/changelog
+++ b/changelog
@@ -1,26 +1,3252 @@
-pandoc (1.19.2.4)
+pandoc (2.1.2)
- * Add dependencies on texmath and skylighting to the executable.
- This is needed for dependency version numbers to be available,
- with Cabal > 2.
+ * 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 <literal> 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 <quote> 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).
-pandoc (1.19.2.3)
+ * 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 filters and custom writers.
+
+ * Tests: Abstract powerpoint tests out to OOXML tests (Jesse Rosenthal).
+ There is very little pptx-specific in these tests, so we abstract out
+ the basic testing function so it can be used for docx as well. This
+ should allow us to catch some errors in the docx writer that slipped
+ by the roundtrip testing.
+
+ * Lua filters: store constructors in registry (Albert Krewinkel). Lua
+ functions used to construct AST element values are stored in the Lua
+ registry for quicker access. Getting a value from the registry is much
+ faster than getting a global value (partly to idiosyncrasies of hslua);
+ this change results in a considerable performance boost.
+
+ * Documentation:
+
+ + `doc/org.md` Add draft of Org-mode documentation (Albert Krewinkel).
+ + `doc/lua-filters.md`: document global vars set for filters
+ (Albert Krewinkel).
+ + INSTALL.md: mention Stack version. (#4343, Adam Brandizzi).
+ + MANUAL: add documentation on custom styles (Jesse Rosenthal).
+ + MANUAL.txt: Document incremental and nonincremental divs (Jesse
+ Rosenthal). Blockquoted lists are still described, but fenced divs are
+ presented in preference.
+ + MANUAL.txt: document header and footer variables (newmana).
+ + MANUAL.txt: self-contained implies standalone (#4304, Daniel Lublin).
+ + CONTRIBUTING.md: label was renamed. (#4310, Alexander Brandizzi).
+
+ * Require tagsoup 0.14.3 (#4282), fixing HTML tokenization bug.
+
+ * Use latest texmath.
+
+ * Use latest pandoc-citeproc.
+
+ * Allow exceptions 0.9.
+
+ * Require aeson-pretty 0.8.5 (#4394).
+
+ * Bump blaze-markup, blaze-html lower bounds to 0.8, 0.9 (#4334).
+
+ * Update tagsoup to 0.14.6 (Alexander Krotov, #4282).
+
+ * Removed ghc-prof-options. As of cabal 1.24, sensible defaults are used.
+
+ * Update default.nix to current nixpkgs-unstable for hslua-0.9.5 (#4348,
+ jarlg).
+
+
+pandoc (2.1.1)
+
+ * Markdown reader:
+
+ + Don't coalesce adjacent raw LaTeX blocks if they are separated by a
+ blank line. See lierdakil/pandoc-crossref#160.
+ + Improved `inlinesInBalancedBrackets` (#4272, jgm/pandoc-citeproc#315).
+ The change both improves performance and fixes a regression whereby
+ normal citations inside inline notes and figure captions were not
+ parsed correctly.
+
+ * RST reader:
+
+ + Better handling for headers with an anchor (#4240). Instead of creating a
+ Div containing the header, we put the id directly on the header.
+ This way header promotion will work properly.
+ + Add aligned environment when needed in math (#4254). `rst2latex.py`
+ uses an `align*` environment for math in `.. math::` blocks, so this
+ math may contain line breaks. If it does, we put the math in an
+ `aligned` environment to simulate `rst2latex.py`'s behavior.
+
+ * HTML reader:
+
+ + Fix col width parsing for percentages < 10% (#4262, n3fariox).
+
+ * LaTeX reader:
+
+ + Advance source position at end of stream.
+ + Pass through macro defs in `rawLaTeXBlock` even if the `latex_macros`
+ extension is set (#4246). This reverts to earlier behavior and is
+ probably safer on the whole, since some macros only modify things in
+ included packages, which pandoc's macro expansion can't modify.
+ + Fixed pos calculation in tokenizing escaped space.
+ + Allow macro definitions inside macros (#4253). Previously we went into
+ an infinite loop with
+ ```
+ \newcommand{\noop}[1]{#1}
+ \noop{\newcommand{\foo}[1]{#1}}
+ \foo{hi}
+ ```
+ + Fix inconsistent column widths (#4238). This fixes a bug whereby column
+ widths for the body were different from widths for the header in some
+ tables.
+
+ * Docx reader (Jesse Rosenthal):
+
+ + Parse hyperlinks in `instrText` tags (#3389, #4266). This was a form of
+ hyperlink found in older versions of word. The changes introduced for
+ this, though, create a framework for parsing further fields in MS Word
+ (see the spec, ECMA-376-1:2016, §17.16.5, for more on these fields).
+ We introduce a new module, `Text.Pandoc.Readers.Docx.Fields` which
+ contains a simple parsec parser. At the moment, only simple hyperlink
+ fields are accepted, but that can be extended in the future.
+
+ * Muse reader (Alexander Krotov):
+
+ + Parse `~~` as non-breaking space in Text::Amuse mode.
+ + Refactor list parsing.
+
+ * Powerpoint writer (Jesse Rosenthal):
+
+ + Change reference to `notesSlide` to `endNotesSlide`.
+ + Move image sizing into `picProps`.
+ + Improve table placement.
+ + Make our own `_rels/.rels` file.
+ + Import reference-doc images properly.
+ + Move `Presentation.hs` out of `PandocMonad`.
+ + Refactor into separate modules. T.P.W.Powerpoint.Presentation
+ defines the Presentation datatype and goes Pandoc->Presentation;
+ T.P.W.Pandoc.Output goes Presentation->Archive.
+ Text.Pandoc.Writers.Powerpoint a thin wrapper around the two modules.
+ + Avoid overlapping blocks in column output.
+ + Position images correctly in two-column layout.
+ + Make content shape retrieval environment-aware.
+ + Improve image handling. We now determine image and caption placement
+ by getting the dimensions of the content box in a given layout.
+ This allows for images to be correctly sized and positioned in a
+ different template. Note that images without captions and headers are
+ no longer full-screened. We can't do this dependably in different
+ layouts, because we don't know where the header is (it could be to
+ the side of the content, for example).
+ + Read presentation size from reference file. Our presentation size is
+ now dependent on the reference/template file we use.
+ + Handle (sub)headers above slidelevel correctly. Above the slidelevel,
+ subheaders will be printed in bold and given a bit of extra space
+ before them. Note that at the moment, no distinction is made between
+ levels of headers above the slide header, though that can be changed.
+ + Check for required files. Since we now import from reference/dist
+ file by glob, we need to make sure that we're getting the files we
+ need to make a non-corrupt Powerpoint. This performs that check.
+ + Improve templating using `--reference-doc`. Templating should work
+ much more reliably now.
+ + Include Notes slide in TOC.
+ + Set notes slide header to slide-level.
+ + Add table of contents. This is triggered by the `--toc` flag. Note
+ that in a long slide deck this risks overrunning the text box. The user
+ can address this by setting `--toc-depth=1`.
+ + Set notes slide number correctly.
+ + Clean up adding metadata slide. We want to count the slide numbers
+ correctly if it's in there.
+ + Add anchor links. For anchor-type links (`[foo](#bar)`) we produce
+ an anchor link. In powerpoint these are links to slides, so we keep
+ track of a map relating anchors to the slides they occur on.
+ + Make the slide number available to the blocks. For anchors,
+ block-processing functions need to know what slide number
+ they're in. We make the `envCurSlideId` available to blocks.
+ + Move `curSlideId` to environment.
+ + Allow setting `toc-title` in metadata.
+ + Link notes to endnotes slide.
+
+ * Markdown writer:
+
+ + Fix cell width calculation (#4265). Previously we could get
+ ever-lengthening cell widths when a table was run repeatedly through
+ `pandoc -f markdown -t markdown`.
+
+ * LaTeX writer:
- * Add CPP to Setup.hs so it works with Cabal >= 2 and < 2.
+ + Escape `&` in lstinline (Robert Schütz).
+
+ * ConTeXt writer:
+
+ + Use xtables instead of Tables (#4223, Henri Menke).
+ Default to xtables for context output. Natural Tables are used
+ if the new `ntb` extension is set.
+
+ * HTML writer:
+
+ + Fixed footnote backlinks with `--id-prefix` (#4235).
+
+ * `Text.Pandoc.Extensions`: Added `Ext_ntb` constructor (API change,
+ Henri Menke).
+
+ * `Text.Pandoc.ImageSize`: add derived `Eq` instance to `Dimension`
+ (Jesse Rosenthal, API change).
+
+ * Lua filters (Albert Krewinkel):
+
+ + Make `PANDOC_READER_OPTIONS` available.
+ The options which were used to read the document are made available to
+ Lua filters via the `PANDOC_READER_OPTIONS` global.
+ + Add lua module `pandoc.utils.run_json_filter`, which runs a JSON filter
+ on a Pandoc document.
+ + Refactor filter-handling code into `Text.Pandoc.Filter.JSON`,
+ `Text.Pandoc.Filter.Lua`, and `Text.Pandoc.Filter.Path`.
+ + Improve error messages. Provide more context about the task
+ which caused an error.
+
+ * data/pandoc.lua (Albert Krewinkel):
+
+ + Accept singleton inline as a list. Every constructor which accepts a
+ list of inlines now also accepts a single inline element for
+ convenience.
+ + Accept single block as singleton list. Every constructor which accepts
+ a list of blocks now also accepts a single block element for
+ convenience. Furthermore, strings are accepted as shorthand for
+ `{pandoc.Str "text"}` in constructors.
+ + Add attr, listAttributes accessors. Elements with
+ attributes got an additional `attr` accessor. Attributes were
+ accessible only via the `identifier`, `classes`, and `attributes`,
+ which was in conflict with the documentation, which indirectly states
+ that such elements have the an `attr` property.
+ + Drop `_VERSION`. Having a `_VERSION` became superfluous, as this
+ module is closely tied to the pandoc version, which is available via
+ `PANDOC_VERSION`.
+ + Fix access to Attr components. Accessing an Attr value (e.g.,
+ ` Attr().classes`) was broken; the more common case of accessing it via
+ an Inline or Block element was unaffected by this.
+
+ * Move `metaValueToInlines` to from Docx writer to
+ `Text.Pandoc.Writers.Shared`, so it can be used by other writers
+ (Jesse Rosenthal).
+
+ * MANUAL.txt:
+
+ + Clarify otherlangs in LaTeX (#4072).
+ + Clarify `latex_macros` extension.
+ + Recommend use of `raw_attribute` extension in header includes (#4253).
+
+ * Allow latest QuickCheck, tasty, criterion.
+
+ * Remove custom prelude and ghc 7.8 support.
+
+ * Reduce compiler noise (exact paths for compiled modules).
+
+pandoc (2.1)
+
+ * Allow filters and lua filters to be interspersed (#4196). Previously
+ we ran all lua filters before JSON filters. Now we run filters in
+ the order they are presented on the command line, whether lua or JSON.
+ There are two incompatible API changes: The type of `applyFilters`
+ has changed, and `applyLuaFilters` has been removed. `Filter` is
+ also now exported.
+
+ * Use latest skylighting and omit the `missingIncludes` check, fixing
+ a major performance regression in earlier releases of the 2.x series
+ (#4226). Behavior change: If you use a custom syntax definition that
+ refers to a syntax you haven't loaded, pandoc will now complain when
+ it is highlighting the text, rather than doing a check at the start.
+ This change dramatically speeds up invocations of pandoc on short
+ inputs.
+
+ * Text.Pandoc.Class: make `FileTree` opaque (don't export
+ `FileTree` constructor). This forces users to interact with it using
+ `insertInFileTree` and `getFileInfo`, which normalize file names.
+
+ * Markdown reader:
+
+ + Rewrite `inlinesInBalancedBrackets`. The rewrite is much more
+ direct, avoiding `parseFromString`. And it performs significantly
+ better; unfortunately, parsing time still increases exponentially
+ (see #1735).
+ + Avoid parsing raw tex unless `\` + letter seen. This seems to
+ help with the performance problem, #4216.
+
+ * LaTeX reader: Simplified a check for raw tex command.
+
+ * Muse reader (Alexander Krotov):
+
+ + Enable round trip test (#4107).
+ + Automatically translate `#cover` into `#cover-image`.
+ Amusewiki uses #cover directive to specify cover image.
+
+ * Docx reader (Jesse Rosenthal):
+
+ + Allow for insertion/deletion of paragraphs (#3927).
+ If the paragraph has a deleted or inserted paragraph break (depending
+ on the track-changes setting) we hold onto it until the next
+ paragraph. This takes care of accept and reject. For this we introduce
+ a new state which holds the ils from the previous para if necessary.
+ For `--track-changes=all`, we add an empty span with class
+ `paragraph-insertion`/`paragraph-deletion` at the end of the paragraph
+ prior to the break to be inserted or deleted.
+ + Remove unused anchors (#3679). Docx produces a lot of anchors with
+ nothing pointing to them---we now remove these to produce cleaner
+ output. Note that this has to occur at the end of the process
+ because it has to follow link/anchor rewriting.
+ + Read multiple children of `w:sdtContents`.
+ + Combine adjacent anchors. There isn't any reason to have numerous
+ anchors in the same place, since we can't maintain docx's
+ non-nesting overlapping. So we reduce to a single anchor.
+ + Improved tests.
+
+ * Muse writer (Alexander Krotov): don't escape URIs from AST
+
+ * Docx writer:
+
+ + Removed redundant subtitle in title (Sebastian Talmon).
+ + `firstRow` table definition compatibility for Word 2016 (Sebastian
+ Talmon). Word 2016 seems to use a default value of "1" for table
+ headers, if there is no firstRow definition (although a default
+ value of 0 is documented), so all tables get the first Row formatted
+ as header. Setting the parameter to 0 if the table has no header
+ row fixes this for Word 2016
+ + Fix custom styles with spaces in the name (#3290).
+
+ * Powerpoint writer (Jesse Rosenthal):
+
+ + Ignore Notes div for parity with other slide outputs.
+ + Set default slidelevel correctly. We had previously defaulted to
+ slideLevel 2. Now we use the correct behavior of defaulting to the
+ highest level header followed by content. We change an expected test
+ result to match this behavior.
+ + Split blocks correctly for linked images.
+ + Combine adjacent runs.
+ + Make inline code inherit code size. Previously (a) the code size
+ wasn't set when we force size, and (b) the properties was set from
+ the default, instead of inheriting.
+ + Simplify `replaceNamedChildren` function.
+ + Allow linked images. The following markdown:
+ `[![Image Title](image.jpg)](http://www.example.com)`
+ will now produce a linked image in the resulting PowerPoint file.
+ + Fix error with empty table cell. We require an empty `<a:p>` tag,
+ even if the cell contains no paragraphs---otherwise PowerPoint
+ complains of corruption.
+ + Implement two-column slides. This uses the columns/column div
+ format described in the pandoc manual. At the moment, only two
+ columns (half the screen each) are allowed. Custom widths are not
+ supported.
+ + Added more tests.
+
+ * OpenDocument/ODT writers: improved rendering of formulas (#4170, oltolm).
+
+ * Lua filters (Albert Krewinkel):
+
+ + `data/pandoc.lua`: drop 'pandoc-api-version' from Pandoc objects
+ + The current pandoc-types version is made available to Lua programs in
+ the global `PANDOC_API_VERSION`. It contains the version as a list of
+ numbers.
+ + The pandoc version available as a global `PANDOC_VERSION` (a list
+ of numbers).
+ + `data/pandoc.lua`: make `Attr` an `AstElement`.
+ + `data/pandoc.lua`: make all types subtypes of `AstElement`.
+ `Pandoc`, `Meta`, and `Citation` were just plain functions and did
+ not set a metatable on the returned value, which made it difficult
+ to amend objects of these types with new behavior. They are now
+ subtypes of AstElement, meaning that all their objects can gain
+ new features when a method is added to the behavior object
+ (e.g., `pandoc.Pandoc.behavior`).
+ + `data/pandoc.lua`: split type and behavior tables. Clearly distinguish
+ between a type and the behavioral properties of an instance of that
+ type. The behavior of a type (and all its subtypes) can now be
+ amended by adding methods to that types `behavior` object, without
+ exposing the type objects internals. E.g.:
+ ```lua
+ pandoc.Inline.behavior.frob = function () print'42' end
+ local str = pandoc.Str'hello'
+ str.frob() -- outputs '42'
+ ```
+ + `data/pandoc.lua`: fix Element inheritance. Extending all elements
+ of a given type (e.g., all inline elements) was difficult, as the
+ table used to lookup unknown methods would be reset every time a
+ new element of that type was created, preventing recursive property
+ lookup. This is was changed in that all methods and attributes of
+ supertypes are now available to their subtypes.
+ + `data/pandoc.lua`: fix attribute names of Citation (#4222). The
+ fields were named like the Haskell fields, not like the documented,
+ shorter version. The names are changed to match the documentation
+ and Citations are given a shared metatable to enable simple
+ extensibility.
+ + `data/pandoc.lua`: drop function `pandoc.global_filter`.
+ + Bump `hslua` version to 0.9.5. This version fixes a bug that made it
+ difficult to handle failures while getting lists or a Map from Lua.
+ A bug in pandoc, which made it necessary to always pass a tag when
+ using MetaList or MetaBlock, is fixed as a result. Using the pandoc
+ module's constructor functions for these values is now optional
+ (if still recommended).
+ + Stop exporting `pushPandocModule` (API change). The introduction
+ of `runPandocLua` renders direct use of this function obsolete.
+ + Update generation of module docs for lua filters.
+ + `Lua.Module.Utils`: make stringify work on `MetaValues` (John
+ MacFarlane). I'm sure this was intended in the first place,
+ but currently only `Meta` is supported.
+
+ * Improve benchmarks.
+
+ + Set the default extensions properly.
+ + Improve benchmark argument parsing. You can now say
+ `make bench BENCHARGS="markdown latex reader"` and both the
+ markdown and latex readers will be benchmarked.
+
+ * MANUAL.txt simplify and add more structure (Mauro Bieg).
+
+ * Generate README.md from template and MANUAL.txt.
+ `make README.md` will generate the README.md after changes
+ to MANUAL.txt have been made.
+
+ * Update copyright notices to include 2018 (Albert Krewinkel).
+
+pandoc (2.0.6)
+
+ * Added `jats` as an input format.
+
+ + Add Text.Pandoc.Readers.JATS, exporting `readJATS` (API
+ change) (Hamish Mackenzie).
+ + Improved citation handling in JATS reader. JATS citations
+ are now converted to pandoc citations, and JATS ref-lists
+ are converted into a `references` field in metadata, suitable
+ for use with pandoc-citeproc. Thus a JATS article with embedded
+ bibliographic information can be processed with pandoc and
+ pandoc-citeproc to produce a formatted bibliography.
+
+ * Allow `--list-extensions` to take an optional FORMAT argument.
+ This lists the extensions set by default for the selected FORMAT.
+ The extensions are now alphabetized, and the `+` or `-`
+ indicating the default setting comes before, rather than after,
+ the extension.
+
+ * Markdown reader:
+
+ + Preserve original whitespace between blocks.
+ + Recognize `\placeformula` as context.
+ + Be pickier about table captions. A caption starts with a `:` which
+ can't be followed by punctuation. Otherwise we can falsely interpret
+ the start of a fenced div, or even a table header line like
+ `:--:|:--:`, as a caption.
+ + Always use four space rule for example lists. It would be awkward
+ to indent example list contents to the first non-space character after
+ the label, since example list labels are often long. Thanks to
+ Bernhard Fisseni for the suggestion.
+ + Improve raw tex parsing. Note that the Markdown reader is also
+ affected by the `latex_macros` extension changes described below
+ under the LaTeX reader.
+
+ * LaTeX reader:
+
+ + `latex_macros` extension changes (#4179). Don't pass through macro
+ definitions themselves when `latex_macros` is set. The macros
+ have already been applied. If `latex_macros` is enabled, then
+ `rawLaTeXBlock` in Text.Pandoc.Readers.LaTeX will succeed in parsing
+ a macro definition, and will update pandoc's internal macro map
+ accordingly, but the empty string will be returned.
+ + Export `tokenize`, `untokenize` (API change).
+ + Use `applyMacros` in `rawLaTeXBlock`, `rawLaTeXInline`.
+ + Refactored `inlineCommand`.
+ + Fix bug in tokenizer. Material following `^^` was
+ dropped if it wasn't a character escape. This only affected
+ invalid LaTeX, so we didn't see it in the wild, but it appeared
+ in a QuickCheck test failure.
+ + Fix regression in LateX tokenization (#4159). This mainly affects the
+ Markdown reader when parsing raw LaTeX with escaped spaces.
+ + Add tests of LaTeX tokenizer.
+ + Support `\foreignlanguage` from babel.
+ + Be more tolerant of `&` character (#4208). This allows us to parse
+ unknown tabular environments as raw LaTeX.
+
+ * Muse reader (Alexander Krotov):
+
+ + Parse anchors immediately after headings as IDs.
+ + Require that note references does not start with 0.
+ + Parse empty comments correctly.
+
+ * Org reader (Albert Krewinkel):
+
+ + Fix asterisks-related parsing error (#4180).
+ + Support minlevel option for includes (#4154). The level of headers
+ in included files can be shifted to a higher level by specifying a
+ minimum header level via the `:minlevel` parameter. E.g.
+ `#+include: "tour.org" :minlevel 1` will shift the headers in
+ tour.org such that the topmost headers become level 1 headers.
+ + Break-up org reader test file into multiple modules.
+
+ * OPML reader:
+
+ + Enable raw HTML and other extensions by default for notes
+ (#4164). This fixes a regression in 2.0. Note that extensions can
+ now be individually disabled, e.g. `-f opml-smart-raw_html`.
+
+ * RST reader:
+
+ + Allow empty list items (#4193).
+ + More accurate parsing of references (#4156). Previously we erroneously
+ included the enclosing backticks in a reference ID (#4156). This
+ change also disables interpretation of syntax inside references, as
+ in docutils. So, there is no emphasis in `` `my *link*`_ ``.
+
+ * Docx reader:
+
+ + Continue lists after interruption (#4025, Jesse Rosenthal).
+ Docx expects that lists will continue where they left off after an
+ interruption and introduces a new id if a list is starting again. So
+ we keep track of the state of lists and use them to define a "start"
+ attribute, if necessary.
+ + Add tests for structured document tags unwrapping (Jesse Rosenthal).
+ + Preprocess Document body to unwrap `w:sdt` elements (Jesse Rosenthal,
+ #4190).
+
+ * Plain writer:
+
+ + Don't linkify table of contents.
+
+ * RST writer:
+
+ + Fix anchors for headers (#4188). We were missing an `_`.
+
+ * PowerPoint writer (Jesse Rosenthal):
+
+ + Treat lists inside BlockQuotes as lists. We don't yet produce
+ incremental lists in PowerPoint, but we should at least treat lists
+ inside BlockQuotes as lists, for compatibility with other slide formats.
+ + Add ability to force size. This replaces the more specific
+ `blockQuote runProp`, which only affected the size of blockquotes. We
+ can use this for notes, etc.
+ + Implement notes. This currently prints all notes on a final slide.
+ Note that at the moment, there is a danger of text overflowing the
+ note slide, since there is no logic for adding further slides.
+ + Implement basic definition list functionality to PowerPoint writer.
+ + Don't look for default template file for Powerpoint (#4181).
+ + Add pptx to isTextFormat list. This is used to check standalone
+ and not writing to the terminal.
+ + Obey slide level option (Jesse Rosenthal).
+ + Introduce tests.
+
+ * Docx writer:
+
+ + Ensure that `distArchive` is the one that comes with pandoc
+ (#4182). Previously a `reference.docx` in `~/.pandoc` (or the user data
+ dir) would be used instead, and this could cause problems because a
+ user-modified docx sometimes lacks vital sections that we count
+ on the `distArchive` to supply.
+
+ * Org writer:
+
+ + Do not wrap "-" to avoid accidental bullet lists (Alexander Krotov).
+ + Don't allow fn refs to wrap to beginning of line (#4171, with help from
+ Alexander Krotov). Otherwise they can be interpreted as footnote
+ definitions.
+
+ * Muse writer (Alexander Krotov):
+
+ + Don't wrap note references to the next line (#4172).
+
+ * HTML writer:
+
+ + Use br elements in line blocks instead of relying on CSS
+ (#4162). HTML-based templates have had the custom CSS for
+ `div.line-block` removed. Those maintaining custom templates will want
+ to remove this too. We still enclose line blocks in a div with class
+ `line-block`.
+
+ * LaTeX writer:
+
+ + Use `\renewcommand` for `\textlatin` with babel (#4161).
+ This avoids a clash with a deprecated `\textlatin` command defined
+ in Babel.
+ + Allow fragile=singleslide attribute in beamer slides (#4169).
+ + Use `\endhead` after `\toprule` in headerless tables (#4207).
+
+ * FB2 writer:
+
+ + Add cover image specified by `cover-image` meta (Alexander Krotov,
+ #4195).
+
+ * JATS writer (Hamish Mackenzie):
+
+ + Support writing `<fig>` and `<table-wrap>` elements
+ with `<title>` and `<caption>` inside them by using Divs with class set
+ to one of `fig`, `table-wrap` or `caption` (Hamish Mackenzie). The
+ title is included as a Heading so the constraint on where Heading can
+ occur is also relaxed.
+ + Leave out empty alt attributes on links.
+ + Deduplicate image mime type code.
+ + Make `<p>` optional in `<td>` and `<th>` (#4178).
+ + Self closing tags for empty xref (#4187).
+ + Improve support for code language.
+
+ * Custom writer:
+
+ + Use init file to setup Lua interpreter (Albert Krewinkel).
+ The same init file (`data/init`) that is used to setup the Lua
+ interpreter for Lua filters is also used to setup the interpreter of
+ custom writers.lua.
+ + Define instances for newtype wrapper (Albert Krewinkel). The custom
+ writer used its own `ToLuaStack` instance definitions, which made
+ it difficult to share code with Lua filters, as this could result
+ in conflicting instances. A `Stringify` wrapper is introduced to
+ avoid this problem.
+ + Added tests for custom writer.
+ + Fixed definition lists and tables in `data/sample.lua`.
+
+ * Fixed regression: when target is PDF, writer extensions were being
+ ignored. So, for example, `pandoc -t latex-smart -o file.pdf`
+ did not work properly.
+
+ * Lua modules (Albert Krewinkel):
+
+ + Add `pandoc.utils` module, to hold utility functions.
+ + Create a Haskell module Text.Pandoc.Lua.Module.Pandoc to
+ define the `pandoc` lua module.
+ + Make a Haskell module for each Lua module. Move definitions for the
+ `pandoc.mediabag` modules to a separate Haskell module.
+ + Move `sha1` from the main `pandoc` module to `pandoc.utils`.
+ + Add function `pandoc.utils.hierarchicalize` (convert list of
+ Pandoc blocks into (hierarchical) list of Elements).
+ + Add function `pandoc.utils.normalize_date` (parses a date and
+ converts it (if possible) to "YYYY-MM-DD" format).
+ + Add function `pandoc.utils.to_roman_numeral` (allows conversion
+ of numbers below 4000 into roman numerals).
+ + Add function `pandoc.utils.stringify` (converts any AST element
+ to a string with formatting removed).
+ + `data/init.lua`: load `pandoc.utils` by default
+ + Turn pipe, read into full Haskell functions. The `pipe` and `read`
+ utility functions are converted from hybrid lua/haskell functions
+ into full Haskell functions. This avoids the need for intermediate
+ `_pipe`/`_read` helper functions, which have dropped.
+ + pandoc.lua: re-add missing MetaMap function. This was a bug
+ introduced in version 2.0.4.
+
+ * Text.Pandoc.Class: Add `insertInFileTree` [API change]. This gives
+ a pure way to insert an ersatz file into a `FileTree`. In addition, we
+ normalize paths both on insertion and on lookup.
+
+ * Text.Pandoc.Shared: export `blocksToInlines'` (API change, Maura Bieg).
+
+ * Text.Pandoc.MIME: Add opus to MIME type table as audio/ogg (#4198).
+
+ * Text.Pandoc.Extensions: Alphabetical order constructors for
+ `Extension`. This makes them appear in order in `--list-extensions`.
+
+ * Allow lenient decoding of latex error logs, which are not always
+ properly UTF8-encoded (#4200).
+
+ * Update latex template to work with recent versions of beamer.
+ The old template produced numbered sections with some recent
+ versions of beamer. Thanks to Thomas Hodgson.
+
+ * Updated reference.docx (#4175). Instead of just "Hello, world", the
+ document now contains exemplars of most of the styles that have an
+ effect on pandoc documents. This makes it easier to see the effect
+ of style changes.
+
+ * Removed `default.theme` data file (#4096). It is no longer needed now
+ that we have `--print-highlight-style`.
+
+ * Added `stack.lts9.yaml` for building with lts 9 and ghc 8.0.2.
+ We still need this for the alpine static linux build, since
+ we don't have ghc 8.2.2 for that yet.
+
+ * Removed `stack.pkg.yaml`. We only really need `stack.yaml`; we
+ can put flag settings for pandoc-citeproc there.
+
+ * Makefile: Add 'trypandoc' and 'pandoc-templates' targets to
+ make releases easier.
+
+ * MANUAL.txt:
+
+ + Add note on what formats have `+smart` by default.
+ + Use native syntax for custom-style (#4174, Mauro Bieg).
+ + Introduce dedicated Extensions section, since some extensions
+ affect formats other than markdown (Mauro Bieg, #4204).
+ + Clarify default html output for `--section-divs` (Richard Edwards).
+
+ * filters.md: say that Text.Pandoc.JSON comes form pandoc-types.
+ Closes jgm/pandoc-website#16.
+
+ * epub.md: Delete removed `-S` option from command (#4151, Georger Araújo).
+
+pandoc (2.0.5)
+
+ * Fix a bug in 2.0.4, whereby pandoc could not read the theme files
+ generated with `--print-highlight-style` (#4133). Improve JSON
+ serialization of styles.
+
+ * Fix CSS issues involving line numbers (#4128).
+ Highlighted code blocks are now enclosed in a div with class `sourceCode`.
+ Highlighting CSS no longer sets a generic color for pre and code; we only
+ set these for class `sourceCode`.
+
+ * `--pdf-engine-opt`: fix bug where option order was reversed (#4137).
+
+ * Add PowerPoint (pptx) writer (Jesse Rosenthal).
+ It works following the standard Pandoc conventions for making other
+ sorts of slides. Caveats:
+
+ + Syntax highlighting is not yet implemented. (This is difficult
+ because there are no character classes in Powerpoint.)
+ + Footnotes and Definition lists are not yet implemented. (Notes will
+ usually take the form of a final slide.
+ + Image placement and auto-resizing has a few glitches.
+ + Reference powerpoint files don't work dependably from the command
+ line. This will be implemented, but at the moment users are advised
+ to change themes from within Powerpoint.
+
+ * Create shared Text.Pandoc.Writers.OOXML module (Jesse Rosenthal).
+ This is for functions used by both Powerpoint and Docx writers.
+
+ * Add default pptx data for Powerpoint writer (Jesse Rosenthal).
+
+ * Add `empty_paragraphs` extension.
+
+ + Deprecate `--strip-empty-paragraphs` option. Instead we now
+ use an `empty_paragraphs` extension that can be enabled on
+ the reader or writer. By default, disabled.
+ + Add `Ext_empty_paragraphs` constructor to `Extension`.
+ + Revert "Docx reader: don't strip out empty paragraphs."
+ This reverts commit d6c58eb836f033a48955796de4d9ffb3b30e297b.
+ + Implement `empty_paragraphs` extension in docx reader and writer,
+ opendocument writer, HTML reader and writer.
+ + Add tests for `empty_paragraphs` extension.
+
+ * Markdown reader:
+
+ + Don't parse native div as table caption (#4119).
+ + Improved computation of column widths in pipe tables.
+ Pipe tables with lines longer than the text width (as set
+ by `--columns`) are now scaled to text width, with the relative
+ widths of columns determined by the ratios between the
+ header lines. Previously we computed column widths using
+ the ratio of header line lengths to column width, so that
+ tables with narrow header lines were extremely thin, which
+ was very rarely the desired result.
+
+ * LaTeX reader: fix `\` before newline (#4134). This should be a space,
+ as long as it's not followed by a blank line. This has been fixed at the
+ tokenizer level.
+
+ * Muse reader (Alexander Krotov):
+
+ + Add test for `#disable-tables` directive in Emacs mode.
+ + Don't allow emphasis to be preceded by letter.
+ + Add underline support in Emacs Muse mode..
+ + Support multiline directives in Amusewiki mode
+
+ * Man writer: omit internal links (#4136). That is, just print the link
+ text without the URL.
+
+ * Markdown reader: accept processing instructions as raw HTML (#4125).
+
+ * Lua filters (Albert Krewinkel):
+
+ + Use script to initialize the interpreter. The file `init.lua` is
+ used to initialize the Lua interpreter which is used in Lua filters.
+ This gives users the option to require libraries which they want to
+ use in all of their filters, and to extend default modules.
+ + Fix package loading for Lua 5.1. The list of package searchers is
+ named `package.loaders` in Lua 5.1 and LuaJIT, and `package.searchers`
+ in Lua 5.2 and later.
+ + Refactor lua module handling. The integration with Lua's package/module
+ system is improved: A pandoc-specific package searcher is prepended to
+ the searchers in `package.searchers`. The modules `pandoc` and
+ `pandoc.mediabag` can now be loaded via `require`.
+ + Bump lower bound of hslua. The release hslua 0.9.3 contains a new
+ function which makes using Haskell functions as package loaders much
+ easier.
+
+ * reveal.js template: add title-slide identifier to title slide (#4120).
+ This allows it to be styled more easily.
+
+ * LaTeX template: Added support for `pagestyle` variable (#4135,
+ Thomas Hodgson)
+
+ * Add `-threaded` to ghc-options for executable (#4130, fixes a build
+ error on linux).
+
+
+pandoc (2.0.4)
+
+ * Add `--print-highlight-style` option. This generates a JSON version
+ of a highlighting style, which can be saved as a `.theme` file, modified,
+ and used with `--highlight-style` (#4106, #4096).
+
+ * Add `--strip-empty-paragraphs` option. This works for any input format.
+ It is primarily intended for use with docx and odt documents where
+ empty paragraphs have been used for inter-paragraph spaces.
+
+ * Support `--webtex` for `gfm` output.
+
+ * Recognize `.muse` file extension.
+
+ * Support beamer `\alert` in LaTeX reader. Closes #4091.
+
+ * Docx reader: don't strip out empty paragraphs (#2252).
+ Users who have a conversion pipeline from docx may want to consider adding
+ `--strip-empty-paragraphs` to the command line.
+
+ * Org reader (Albert Krewinkel): Allow empty list items (#4090).
+
+ * Muse reader (Alexander Krotov):
+
+ + Parse markup in definition list terms.
+ + Allow definition to end with EOF.
+ + Make code blocks round trip.
+ + Drop common space prefix from list items.
+ + Add partial round trip test.
+ + Don't interpret XML entities.
+ + Remove `nested`.
+ + Parse `~~` as non-breaking space in Emacs mode.
+ + Correctly remove indentation from notes. Exactly one space is
+ required and considered to be part of the marker.
+ + Allow list items to be empty.
+ + Add ordered list test.
+ + Add more multiline definition tests.
+ + Don't allow blockquotes within lists.
+ + Fix reading of multiline definitions.
+ + Add inline `<literal>` support.
+ + Concatenate inlines of the same type
+
+ * Docx writer: allow empty paragraphs (#2252).
+
+ * CommonMark/gfm writer:
+
+ + Use raw html for native divs/spans (#4113). This allows a pandoc
+ markdown native div or span to be rendered in gfm using raw html tags.
+ + Implement `raw_html` and `raw_tex` extensions. Note that `raw_html`
+ is enabled by default for `gfm`, while `raw_tex` is disabled by default.
+
+ * Muse writer (Alexander Krotov):
+
+ + Test that inline math conversion result is normalized.
+ Without normalization this test produced
+ `<em>a</em><em>b</em><em>c</em>`.
+ + Improve inline list normalization and move to writer.
+ + Escape hash symbol.
+ + Escape `----` to avoid accidental horizontal rules.
+ + Escape only `</code>` inside code tag.
+ + Additional `<verbatim>` is not needed as `<code>` is verbatim already.
+
+ * LaTeX writer:
+
+ + Allow specifying just width or height for image size.
+ Previously both needed to be specified (unless the image was
+ being resized to be smaller than its original size).
+ If height but not width is specified, we now set width to
+ textwidth. If width but not height is specified, we now set
+ height to textheight. Since we have `keepaspectratio`, this
+ yields the desired result.
+ + Escape `~` and `_` in code with `--listings` (#4111).
+
+ * HTML writer: export `tagWithAttributes`. This is a helper allowing
+ other writers to create single HTML tags.
+
+ * Let papersizes `a0`, `a1`, `a2`, ... be case-insensitive by
+ converting the case as needed in LaTeX and ConTeXt writers.
+
+ * Change `fixDisplayMath` from `Text.Pandoc.Writers.Shared`
+ so that it no longer produces empty `Para`'s as an artifact.
+
+ * `Text.Pandoc.Shared.blocksToInlines`: rewrote using builder.
+ This gives us automatic normalization, so we don't get
+ for example two consecutive Spaces.
+
+ * Include default CSS for 'underline' class in HTML-based templates.
+
+ * revealjs template: add `tex2jax` configuration for the
+ math plugin. With the next release of reveal.js, this will
+ fix the problem of `$`s outside of math contexts being
+ interpreted as math delimiters (#4027).
+
+ * `pandoc.lua` module for use in lua filters (Albert Krewinkel):
+
+ + Add basic lua List module (#4099, #4081). The List module is
+ automatically loaded, but not assigned to a global variable. It can be
+ included in filters by calling `List = require 'List'`. Lists of blocks,
+ lists of inlines, and lists of classes are now given `List` as a metatable,
+ making working with them more convenient. E.g., it is now possible to
+ concatenate lists of inlines using Lua's concatenation operator `..`
+ (requires at least one of the operants to have `List` as a metatable):
+
+ function Emph (emph)
+ local s = {pandoc.Space(), pandoc.Str 'emphasized'}
+ return pandoc.Span(emph.content .. s)
+ end
+
+ The `List` metatable is assigned to the tables which get passed to
+ the constructors `MetaBlocks`, `MetaInline`, and `MetaList`. This
+ enables the use of the resulting objects as lists.
+ + `Lua/StackInstances`: push Pandoc and Meta via constructor.
+ Pandoc and Meta elements are now pushed by calling the respective
+ constructor functions of the pandoc Lua module. This makes serialization
+ consistent with the way blocks and inlines are pushed to lua and allows
+ to use List methods with the `blocks` value.
+ + Add documentation for pandoc.List in `lua-filters.md`.
+
+ * Use latest tagsoup. This fixes a bug in parsing HTML tags with
+ `&` (but not a valid entity) following them (#4094, #4088).
+
+ * Use skylighting 0.4.4.1, fixing the color of unmarked code text
+ when `numberLines` is used (#4103).
+
+ * Make `normalizeDate` more forgiving (Mauro Bieg, #4101), not
+ requiring a leading 0 on single-digit days.
+
+ * Fix `--help` output for `--highlight-style` to include `FILE` (Mauro
+ Bieg, #4095).
+
+ * Clearer deprecation warning for `--latexmathml, --asciimathml, -m`.
+ Previously we only mentioned `--latexmathml`, even if `-m` was
+ used.
+
+ * Changelog: fix description of lua filters in 2.0 release
+ (Albert Krewinkel). Lua filters were initially run *after* conventional
+ (JSON) filters. However, this was changed later to make it easier to deal
+ with files in the mediabag. The changelog is updated to describe that
+ feature of the 2.0 release correctly.
+
+ * Change Generic JSON instances to TemplateHaskell (Jasper Van der Jeugt,
+ #4085). This reduces compile time and memory usage significantly.
+
+ * `lua-filters.md`: Added tikz filter example.
+
+ * Create alternative zip file for macOS binaries.
+
+ * Create alternative zip file for Windows binaries.
+
+ * Update INSTALL.md since we now provide zips for binaries.
+
+ * Relax `http-types` dependency (Justus Sagemüller, #4084).
+
+ * Add `epub.md`, `getting-started.md` to docs. These used to live in
+ the website repo.
+
+ * Add `packages` target to Makefile.
+
+ * Bump bounds for binary, http-types, tasty-hunit
+
+pandoc (2.0.3)
+
+ * Lua filters: preload text module (Albert Krewinkel, #4077).
+ The `text` module is preloaded in lua. The module contains some UTF-8
+ aware string functions, implemented in Haskell. The module is loaded on
+ request only, e.g.:
+
+ text = require 'text'
+ function Str (s)
+ s.text = text.upper(s.text)
+ return s
+ end
+
+ * Allow table-like access to attributes in lua filters (Albert Krewinkel,
+ #4071). Attribute lists are represented as associative lists in Lua. Pure
+ associative lists are awkward to work with. A metatable is attached to
+ attribute lists, allowing to access and use the associative list as if
+ the attributes were stored in as normal key-value pair in table.
+ Note that this changes the way `pairs` works on attribute lists. Instead
+ of producing integer keys and two-element tables, the resulting iterator
+ function now returns the key and value of those pairs. Use `ipairs` to
+ get the old behavior. Warning: the new iteration mechanism only works if
+ pandoc has been compiled with Lua 5.2 or later (current default: 5.3).
+
+ * Text.Pandoc.Parsing.uri: allow `&` and `=` as word characters (#4068).
+ This fixes a bug where pandoc would stop parsing a URI with an
+ empty attribute: for example, `&a=&b=` wolud stop at `a`.
+ (The uri parser tries to guess which punctuation characters
+ are part of the URI and which might be punctuation after it.)
+
+ * Introduce `HasSyntaxExtensions` typeclass (Alexander Krotov, #4074).
+
+ + Added new `HasSyntaxExtensions` typeclass for `ReaderOptions` and
+ `WriterOptions`.
+ + Reimplemented `isEnabled` function from `Options.hs` to accept both
+ `ReaderOptions` and `WriterOptions`.
+ + Replaced `enabled` from `CommonMark.hs` with new `isEnabled`.
+
+ * Add `amuse` extension (Alexander Krotov) to enable Amuse wiki
+ behavior for `muse`. New `Ext_amuse` constructor for
+ `Extension`. Note: this is switched on by default; for
+ Emacs behavior, use `muse-amuse`.
+
+ * Muse reader (Alexander Krotov):
+
+ + Count only one space as part of list item marker.
+ + Produce SoftBreaks on newlines. Now wrapping can be preserved
+ with `--wrap=preserve`.
+ + Add Text::Amuse footnote extensions. Footnote end is indicated by
+ indentation, so footnotes can be placed anywhere in the text,
+ not just at the end of it.
+ + Accept Emacs Muse definition lists when `-amuse`.
+ Emacs Muse does not require indentation.
+
+ * HTML reader:
+
+ + Ensure we don't produce level 0 headers (#4076), even for chapter
+ sections in epubs. This causes problems because writers aren't set
+ up to expect these.
+ + Allow spaces after `\(` and before `\)` with `tex_math_single_backslash`.
+ Previously `\( \frac{1}{a} < \frac{1}{b} \)` was not parsed as math in
+ `markdown` or `html` `+tex_math_single_backslash`.
+ + Parse div with class `line-block` as LineBlock.
+ + Don't fail with block-level content in figcaption (Mauro Bieg, #4183).
+
+ * MANUAL: clarify that math extensions work with HTML.
+ Clarify that `tex_math_dollars` and `tex_math_single_backslash`
+ will work with HTML as well as Markdown.
+
+ * Creole reader: Fix performance issue for longer lists (Sascha Wilde,
+ #4067).
+
+ * RST reader: better support for 'container' directive (#4066).
+ Create a div, incorporate name attribute and classes.
+
+ * LaTeX reader:
+
+ + Support column specs like `*{2}{r}` (#4056). This is equivalent to
+ `rr`. We now expand it like a macro.
+ + Allow optional args for parbox (#4056).
+ + Allow optional arguments on `\footnote` (#4062).
+
+ * EPUB writer: Fixed path for cover image (#4069). It was previously
+ `media/media/imagename`, and should have been `media/imagename`.
+
+ * Markdown writer: fix bug with doubled footnotes in grid tables
+ (#4061).
+
+ * LaTeX template: include natbib/biblatex after polyglossia (#4073).
+ Otherwise we seem to get an error; biblatex wants polyglossia
+ language to be defined.
+
+ * Added examples to lua filters documentation.
+
+
+pandoc (2.0.2)
+
+ * Deprecated ancient HTML math methods: `--latexmathml`, `--gladtex`,
+ `--mimetex`, `--jsmath`.
+
+ * Fixed URIs in `data/jats.csl`. They were being rendered twice,
+ leading to invalid XML in default JATS output with pandoc-citeproc.
+
+ * `lua-filters.md`: use real-world man page filter as example.
+
+ * Add lua filter functions `walk_inline` and `walk_block`
+ in the pandoc module, to apply filters inside particular
+ inline and block elements.
+
+ * Refactored some code from `Text.Pandoc.Lua.PandocModule`
+ into new internal module `Text.Pandoc.Lua.Filter`.
+
+ * Markdown reader:
+
+ + Allow fenced code blocks to be indented 1-3 spaces (#4011).
+ This brings our handling of them into alignment with CommonMark's.
+ + Fix YAML metadata with "chomp" (`|-`). Previously if a
+ YAML block under `|-` contained a blank line, pandoc would
+ not parse it as metadata.
+
+ * Removed `etc.` from abbreviations file. Often `etc.` ends a
+ sentence, and we want the period to be treated as a
+ sentence-ending period.
+
+ * Fix regression with `--metadata` (#4054). Values specified with
+ `--metadata` should replace a metadata value set in the document
+ itself, rather than creating a list including a new value.
+
+ * EPUB writer:
+
+ + Fix EPUB OCF structure. #3720 had been improperly implemented.
+ + Fix modified paths for raw HTML tags (src, poster, etc.)
+ (#4050, #4055). This had not been updated for the new EPUB
+ container layout, with a separate text/ subdirectory.
+ + Fix image paths with empty `--epub-subdirectory`.
+
+ * Miscellaneous code cleanup (Alexander Krotov).
+
+ * Use pandoc-types 1.17.3, which adds `Walkable` instances
+ for `[Block] Block` and `[Inline] Inline`.
+
+ * Remove obsolete `stack.full.yaml` (#4052).
+
+ * Change to using pandoc-citeproc 0.12.1 in binary packages.
+
+ * Consolidate math output method documentation (#4049, Mauro Bieg).
+
+ * `MANUAL.txt`: fix header level of "Extension: emoji" (Albert Krewinkel).
+
+ * Use lua filter to generate man page from `MANUAL.txt`, replacing old
+ Haskell filters. This is easier and faster.
+
+ * Improved `INSTALL.md`.
+
+ * Update commands to extract deb archive on Linux (#4043, Salim B).
+
+
+pandoc (2.0.1.1)
+
+ * Improved fix to #3989 (parsing of HTML tags containing
+ `>` in an attribute or comment). The previous fix (in 2.0.1) only
+ worked in certain cases.
+
+ * FB2 writer (Alexander Krotov):
+
+ + Add `unrecognised` genre to `<title-info>`
+ (Alexander Krotov). XML schema requires at least one genre.
+ + Remove `<annotation>` from `<body>`.
+
+ * CommonMark writer: fix strikethrough for `gfm` (#4038).
+
+ * Use texmath 0.10, which adds support for a wider range of
+ symbols and fixes default column alignments in MathML
+ and OMML.
+
+ * Highlighting fixes, using skylighting 0.4.3.2:
+
+ + Fix invalid CSS.
+ + Support `lineAnchors` (or `line-anchors`) in HTML code blocks.
+ + Ensure that code lines don't get duplicate identifiers (#4031).
+ The line identifiers are built using the code block's identifier
+ as a prefix. If the code block has null identifier, we use
+ `cb1`, `cb2`, etc.
+
+ * Added a few abbreviations to `data/abbreviations`,
+ and sorted the list (#3984, Wandmalfarbe).
+
+ * Improved support for columns in HTML writer (#4028).
+
+ + Remove `width` attribute from the `div`.
+ + Remove space between `<div class="column">` elements,
+ since this prevents columns whose widths sum to 100%
+ (the space takes up space).
+ + Move as much as possible of the CSS to the template.
+ + Ensure that all the HTML-based templates (including epub)
+ contain the CSS for columns.
+ + Columns default to 50% width unless they are given a width
+ attribute. So if you want two equal-width columns, you
+ can use a div with class `column` and no `width` attribute.
+
+ * SelfContained: use `base64` for css links with media attribute (#4026).
+ This fixes `--self-contained` with S5.
+
+ * Improve `pandoc-template-mode.el` (Vaclav Haisman).
+
+ * Issue INFO, not WARNING, when a .sty file cannot be
+ read in LaTeX reader. It is normally not an issue requiring
+ a fix from the user if .sty files are not found.
+
+ * INSTALL.md: MacOS instructions needed xar -f (adam234).
+
+ * MANUAL.txt:
+
+ + Clarify that --setext-headers doesn't affect gfm output (#4035).
+ + Clarify what is needed to open and close a div in `fenced_divs`
+ (#4039, Tristano Ajmone).
+ + Removed reference to `default.beamer` in docs (#4024).
+ Also added mention of other templates affecting PDF output
+ with different settings.
+
+pandoc (2.0.1)
+
+ * Fixed regression in parsing of HTML comments in markdown and other
+ non-HTML formats (`Text.Pandoc.Readers.HTML.htmlTag`) (#4019).
+ The parser stopped at the first `>` character, even if it wasn't
+ the end of the comment.
+
+ * Creole reader (Sascha Wilde):
+
+ + Fix some minor typos and formatting.
+ + Add additional test on nowiki-block after para.
+ + Fix lists with trailing white space.
+
+ * LaTeX reader: handle `%` comment right after command.
+ For example, `\emph%`.
+
+ * Markdown reader: make sure fenced div closers work in lists.
+ Previously the following failed:
+
+ ::: {.class}
+ 1. one
+ 2. two
+ :::
+
+ and you needed a blank line before the closing `:::`.
+
+ * Make `fenced_divs` affect the Markdown writer. If `fenced_divs` is
+ enabled, Divs will be rendered as fenced divs.
+
+ * LaTeX/Beamer writer: support "blocks" inside columns and other Divs
+ (#4016).
+
+ * HTML Writer: consistently use dashed class-names (Mauro Bieg, #3556).
+ Note: this change may require some changes in CSS rules.
+ `footnoteRef` has become `footnote-ref`, `titleslide` has
+ become `title-slide`, and `footnoteBack` has become `footnote-back`.
+
+ * JATS writer: Properly pass through author metadata (#4020).
+
+ * FB2 writer (Alexander Krotov):
+
+ + Write blocks outside of `<p>` in definitions.
+ + Make bullet lists consistent with ordered lists, repeating
+ the marker for the outer list rather than indenting sublists,
+ since indentation does not work in readers.
+ + Add new style FB2 tests.
+
+ * `Text.Pandoc.ImageSize`: Add `Millimeter` constructor to `Dimension`
+ (#4012) [API change]. Now sizes given in 'mm' are no longer converted
+ to 'cm'.
+
+ * Revise documentation of small caps syntax (Andrew Dunning, #4013).
+
+ * Fix broken reference links in manual (Andrew Dunning, #4014)
+
+ * Fixed example of slide columns structure in changelog (#4015).
+ Also documented this feature in MANUAL.txt.
+
+
+pandoc (2.0.0.1)
+
+ * EPUB writer:
+
+ + Fixed filepaths for nonstandard epub-subdirectory values.
+ + Ensure that epub2 is recognized as a non-text format,
+ so that a template is used.
+ + Don't include "prefix" attribute for ibooks for epub2.
+ It doesn't validate.
+ + Fix stylesheet paths; previously we had an incorrect
+ stylesheet path for the cover page and nav page.
+
+ * LaTeX reader:
+
+ + Insert space when needed in macro expansion (#4007).
+ Sometimes we need to insert a space after a control sequence
+ to prevent it merging with a following letter.
+ + Allow unbraced arguments for macros (#4007).
+ + Allow body of macro definition to be unbraced (#4007).
+
+ * Linux package build: ensure that pandoc-citeproc is statically linked.
+
+ * trypandoc: add native, ms.
+
+pandoc (2.0)
+
+ [new features]
-pandoc (1.19.2.2)
+ * New output format `ms` (groff ms). Complete support, including
+ tables, math, syntax highlighting, and PDF bookmarks. The writer uses
+ texmath's new eqn writer to convert math to eqn format, so a ms file
+ produced with this writer should be processed with `groff -ms -e` if
+ it contains math.
- * Fix build with GHC 8.2.1 (#3876, Peter Simons). Setup.hs does not
- compile with Cabal 2.x, so we require an earlier version via
- setup-depends. The following packages need newer versions with
- GHC 8.2.1 and had their constraints relaxed accordingly:
- executable-path, process, syb, and time.
+ * New output format `jats` (Journal Article Tag Suite). This is an XML
+ format used in archiving and publishing articles. Note that a
+ URI-encoded CSL stylesheet (`data/jats.csl`) is added automatically
+ unless a stylesheet is specified using `--css`.
-pandoc (1.19.2.1)
+ * New output format `gfm` (GitHub-flavored CommonMark) (#3841).
+ This uses bindings to GitHub's fork of cmark, so it should parse
+ gfm exactly as GitHub does (excepting certain postprocessing
+ steps, involving notifications, emojis, etc.). `markdown_github`
+ has been deprecated in favor of `gfm`.
+
+ * New output format `muse` (Emacs Muse) (Alexander Krotov, #3489).
+
+ * New input format `gfm` (GitHub-flavored CommonMark) (#3841).
+ This uses bindings to GitHub's fork of cmark. `markdown_github`
+ has been deprecated in favor of `gfm`.
+
+ * New input format `muse` (Emacs Muse) reader (Alexander Krotov, #3620).
+
+ * New input format `tikiwiki` (TikiWiki markup) (rlpowell, #3800).
+
+ * New input format `vimwiki` (Vimwiki markup) (Yuchen Pei, #3705).
+ Note that there is a new data file, `data/vimwiki.css`, which can
+ be used to display the HTML produced by this reader and
+ pandoc's HTML writer in the style of vimwiki's own HTML
+ export.
+
+ * New input format `creole` (Creole 1.0) (#3994, Sascha Wilde).
+
+ * New syntax for Divs, with `fenced_divs` extension enabled by
+ default (#168). This gives an attractive, plain-text way to create
+ containers for block-level content.
+
+ * Added new syntax for including raw content in any output format,
+ enabled by the `raw_attribute` extension (which is on by default
+ for `markdown` and `multimarkdown`). The syntax is the same as
+ for fenced code blocks or code inlines, only with `{=FORMAT}` for
+ attributes, where `FORMAT` is the name of the output format
+ (e.g., `ms`, `html`).
+
+ * Implement multicolumn support for slide formats (#1710).
+ The structure expected is:
+
+ :::::::::::::: {.columns}
+ ::: {.column width="40%"}
+ contents...
+ :::
+ ::: {.column width="60%"}
+ contents...
+ :::
+ ::::::::::::::
+
+ Support has been added for beamer and all HTML slide formats.
+
+ * Allows line comments in templates, beginning with `$--` (#3806).
+ (Requires doctemplates 0.2.1.)
+
+ * Add `--eol=crlf|lf|native` flag and writer option to control line endings
+ (Stefan Dresselhaus, #3663, #2097).
+
+ * Add `--log` option to save log messages in JSON format to a file (#3392).
+
+ * Add `--request-header` option, to set request headers when pandoc
+ makes HTTP requests to fetch external resources. For example:
+ `--request-header User-Agent:blah`.
+
+ * Added lua filters (Albert Krewinkel, #3514). The new `--lua-filter`
+ option works like `--filter` but takes pathnames of special lua filters
+ and uses the lua interpreter baked into pandoc, so that no external
+ interpreter is needed. Note that lua filters are all applied before
+ regular filters, regardless of their position on the command line.
+ For documentation of lua filters, see `doc/lua-filters.md`.
+
+ * Set `PANDOC_READER_OPTIONS` in environment where filters are run.
+ This contains a JSON representation of `ReaderOptions`, so filters
+ can access it.
+
+ * Support creation of pdf via groff `ms` and pdfroff.
+ `pandoc -t ms -o output.pdf input.txt`.
+
+ * Support for PDF generation via HTML and `weasyprint` or `prince`
+ (Mauro Bieg, #3909). `pandoc -t html5 -o output.pdf --pdf-engine=prince`.
+
+ * Added `--epub-subdirectory` option (#3720). This specifies the
+ subdirectory in the OCF container that holds the EPUB specific content.
+ We now put all EPUB related content in an `EPUB/` subdirectory by default
+ (later this will be configurable).
+
+ ```
+ mimetype
+ META-INF/
+ com.apple.ibooks.display-options.xml
+ container.xml
+ EPUB/ <<--configurable-->>
+ fonts/ <<--static-->>
+ font.otf
+ media/ <<--static-->>
+ cover.jpg
+ fig1.jpg
+ styles/ <<--static-->>
+ stylesheet.css
+ content.opf
+ toc.ncx
+ text/ <<--static-->>
+ ch001.xhtml
+ ```
+
+ * Added `--resource-path=SEARCHPATH` command line option (#852).
+ SEARCHPATH is separated by the usual character, depending on OS
+ (: on unix, ; on windows). Default resource path is just working
+ directory. However, the working directory must be explicitly
+ specified if the `--resource-path` option is used.
+
+ * Added --abbreviations=FILE option for custom abbreviations file
+ (#256). Default abbreviations file (`data/abbreviations`) contains
+ a list of strings that will be recognized by pandoc's
+ Markdown parser as abbreviations. (A nonbreaking space will
+ be inserted after the period, preventing a sentence space in
+ formats like LaTeX.) Users can override the default by putting a file
+ abbreviations in their user data directory (`~/.pandoc` on *nix).
+
+ * Allow a theme file as argument to `--highlight-style`.
+ Also include a sample, `default.theme`, in `data/`.
+
+ * Allow `--syntax-definition` option for dynamic loading of syntax
+ highlighting definitions (#3334).
+
+ * Lists in `markdown` by default now use the CommonMark variable
+ nesting rules (#3511). The indentation required for a block-level
+ item to be included in a list item is no longer fixed, but is
+ determined by the first line of the list item. To be included in
+ the list item, a block must be indented to the level of the first
+ non-space content after the list marker. Exception: if are 5 or more
+ spaces after the list marker, then the content is interpreted as an
+ indented code block, and continuation paragraphs must be indented
+ two spaces beyond the end of the list marker. See the CommonMark
+ spec for more details and examples.
+
+ Documents that adhere to the four-space rule should, in most cases,
+ be parsed the same way by the new rules. Here are some examples
+ of texts that will be parsed differently:
+
+ - a
+ - b
+
+ will be parsed as a list item with a sublist; under the four-space
+ rule, it would be a list with two items.
+
+ - a
+
+ code
+
+ Here we have an indented code block under the list item, even though it
+ is only indented six spaces from the margin, because it is four spaces
+ past the point where a continuation paragraph could begin. With the
+ four-space rule, this would be a regular paragraph rather than a code
+ block.
+
+ - a
+
+ code
+
+ Here the code block will start with two spaces, whereas under
+ the four-space rule, it would start with `code`. With the four-space
+ rule, indented code under a list item always must be indented eight
+ spaces from the margin, while the new rules require only that it
+ be indented four spaces from the beginning of the first non-space
+ text after the list marker (here, `a`).
+
+ This change was motivated by a slew of bug reports from people
+ who expected lists to work differently (#3125, #2367, #2575, #2210,
+ #1990, #1137, #744, #172, #137, #128) and by the growing prevalance
+ of CommonMark (now used by GitHub, for example). Those who
+ prefer the old behavior can use `-f markdown+four_space_rule`.
+
+ * Added `four_space_rule` extension. This triggers the old pandoc
+ parsing rule for content nested under list items (the "four space
+ rule").
+
+ * Added `spaced_reference_links` extension (#2602). It allows whitespace
+ between the two parts of a reference link: e.g.
+
+ [a] [b]
+
+ [b]: url
+
+ This was previously enabled by default; it is now forbidden by default.
+
+ * Add `space_in_atx_header` extension (#3512). This is enabled by default
+ in pandoc and GitHub markdown but not the other flavors.
+ This requires a space between the opening #'s and the header
+ text in ATX headers (as CommonMark does but many other implementations
+ do not). This is desirable to avoid falsely capturing things like
+
+ #hashtag
+
+ or
+
+ #5
+
+ * Add `sourcefile` and `outputfile` template variables (Roland Hieber,
+ #3431).
+
+ * Allow ibooks-specific metadata in epubs (#2693). You can now have
+ the following fields in your YAML metadata, and it will be treated
+ appropriately in the generated EPUB:
+
+ ```
+ ibooks:
+ version: 1.3.4
+ specified-fonts: false
+ ipad-orientation-lock: portrait-only
+ iphone-orientation-lock: landscape-only
+ binding: true
+ scroll-axis: vertical
+ ```
+
+
+ [behavior changes]
+
+ * Reader functions no longer presuppose that CRs have been
+ stripped from the input. (They strip CRs themselves, before
+ parsing, to simplify the parsers.)
+
+ * Added support for translations (localization) (#3559).
+ Currently this only affects the LaTeX reader, for things
+ like `\figurename`. Translation data files for 46 languages
+ can be found in `data/translations`.
+
+ * Make `--ascii` work with DocBook output too.
+
+ * Rename `--latex-engine` to `--pdf-engine`,
+ and `--latex-engine-opt` to `--pdf-engine-opt`.
+
+ * Removed `--parse-raw` and `readerParseRaw`. These were confusing.
+ Now we rely on the `+raw_tex` or `+raw_html` extension with latex or html
+ input. Thus, instead of `--parse-raw -f latex` we use `-f latex+raw_tex`,
+ and instead of `--parse-raw -f html` we use `-f html+raw_html`.
+
+ * With `--filter` R filters are now recognized, even if they are
+ not executable (#3940, #3941, Andrie de Vries).
+
+ * Support SVG in PDF output, converting with `rsvg2pdf` (#1793).
+
+ * Make epub an alias for epub3, not epub2.
+
+ * Removed `--epub-stylesheet`; use `--css` instead (#3472, #847).
+ Multiple stylesheets may be used. Stylesheets will be taken both from
+ `--css` and from the `stylesheet` metadata field (which can contain
+ either a file path or a list of them).
+
+ * `--mathml` and MathML in HTMLMathMethod no longer take an argument.
+ The argument was for a bridge JavaScript that used to be necessary
+ in 2004. We have removed the script already.
+
+ * `--katex` improvements. The latest version is used, and the
+ autoload script is loaded by default.
+
+ * Change MathJax CDN default since old one is shutting down (#3544).
+ Note: The new URL requires a version number, which we'll have
+ to update manually in subsequent pandoc releases in order to
+ take advantage of mathjax improvements.
+
+ * `--self-contained`: don't incorporate elements with `data-external="1"`
+ (#2656). You can leave an external link as it is by adding the attribute
+ data-external="1" to the element. Pandoc will then not try to
+ incorporate its content when `--self-contained` is used. This is
+ similar to a feature already supported by the EPUB writer.
+
+ * Allow `--extract-media` to work with non-binary input formats
+ (#1583, #2289). If `--extract-media` is supplied with a non-binary
+ input format, pandoc will attempt to extract the contents of all
+ linked images, whether in local files, data: uris, or external uris.
+ They will be named based on the sha1 hash of the contents.
+
+ * Make `papersize: a4` work regardless of the case of `a4`.
+ It is converted to `a4` in LaTeX and `A4` in ConTeXt.
+
+ * Make `east_asian_line_breaks` affect all readers/writers (#3703).
+
+ * Underlined elements are now treated consistently by readers
+ (#2270, hftf); they are always put in a Span with class `underline`.
+ This allows the user to treat them differently from other emphasis,
+ using a filter. Docx, Org, Textile, Txt2Tags, and HTML readers
+ have been changed.
+
+ * Improved behavior of `auto_identifiers` when there are explicit ids
+ (#1745). Previously only autogenerated ids were added to the list
+ of header identifiers in state, so explicit ids weren't taken
+ into account when generating unique identifiers. Duplicated
+ identifiers could result. This simple fix ensures that explicitly given
+ identifiers are also taken into account.
+
+ * Use `table-of-contents` for contents of toc, make `toc` a boolean
+ (#2872). Changed markdown, rtf, and HTML-based templates accordingly.
+ This allows you to set `toc: true` in the metadata; this
+ previously produced strange results in some output formats.
+ For backwards compatibility, `toc` is still set to the
+ toc contents. But it is recommended that you update templates
+ to use `table-of-contents` for the toc contents and `toc`
+ for a boolean flag.
+
+ * Change behavior with binary format output to stdout.
+ Previously, for binary formats, output to stdout was disabled
+ unless we could detect that the output was being piped (and not
+ sent to the terminal). Unfortunately, such detection is not
+ possible on Windows, leaving windows users no way to pipe binary
+ output. So we have changed the behavior in the following way:
+
+ + Output to stdout is allowed when it can be determined that
+ the output is being piped (on non-Windows platforms).
+ + If the `-o` option is not used, binary output is never sent
+ to stdout by default; instead, an error is raised.
+ + If `-o -` is used, binary output is sent to stdout, regardless
+ of whether it is being piped. This works on Windows too.
+
+ * Better error behavior: uses of `error` have been replaced by
+ raising of `PandocError`, which can be trapped and handled by the
+ calling program.
+
+ * Removed `hard_line_breaks` extension from `markdown_github` (#3594).
+ GitHub has two Markdown modes, one for long-form documents like READMEs
+ and one for short things like issue coments. In issue comments, a line
+ break is treated as a hard line break. In README, wikis, etc., it is
+ treated as a space as in regular Markdown. Since pandoc is more likely to
+ be used to convert long-form documents from GitHub Markdown,
+ `-hard_line_breaks` is a better default.
+
+ * Include `backtick_code_blocks` extension in `mardkown_mmd` (#3637).
+
+ * Escape `MetaString` values (as added with `-M/--metadata` flag) (#3792).
+ Previously they would be transmitted to the template without any
+ escaping. Note that `--M title='*foo*'` yields a different result from
+
+ ---
+ title: *foo*
+ ---
+
+ In the latter case, we have emphasis; in the former case, just
+ a string with literal asterisks (which will be escaped
+ in formats, like Markdown, that require it).
+
+ * Allow `em`, `cm`, `in` for image height/width in HTML, LaTeX (#3450).
+
+ * HTML writer: Insert `data-` in front of unsupported attributes. Thus,
+ a span with attribute `foo` gets written to HTML5 with `data-foo`, so
+ it is valid HTML5. HTML4 is not affected. This will allow us to use
+ custom attributes in pandoc without producing invalid HTML. (With help
+ from Wandmalfarbe, #3817.)
+
+ * Plain writer: improved super/subscript rendering. We now
+ handle more non-digit characters for which there are
+ sub/superscripted unicode characters. When unicode
+ sub/superscripted characters are not available, we use
+ `_(..)` or `^(..)` (#3518).
+
+ * Docbook, JATS, TEI writers: print INFO message when omitting interior
+ header (#3750). This only applies to section headers inside list items,
+ e.g., which were otherwise silently omitted.
+
+ * Change to `--reference-links` in Markdown writer (#3701). With
+ `--reference-location` of `section` or `block`, pandoc will now repeat
+ references that have been used in earlier sections. The Markdown
+ reader has also been modified, so that *exactly* repeated references
+ do not generate a warning, only references with the same label but
+ different targets. The idea is that, with references after every block,
+ one might want to repeat references sometimes.
+
+ * ODT/OpenDocument writer:
+
+ + Support `lang` attribute (#1667).
+ + Added support for `--toc` (#2836). Thanks to @anayrat.
+
+ * Docx writer:
+
+ + `lang` meta, see #1667 (Mauro Bieg, #3515).
+ + Change `FigureWithCaption` to `CaptionedFigure` (iandol, #3658).
+ + Use `Table` rather than `Table Normal` for table style (#3275).
+ `Table Normal` is the default table style and can't be modified.
+ + Pass through comments (#2994). We assume that comments are defined as
+ parsed by the docx reader:
+
+ I want <span class="comment-start" id="0" author="Jesse Rosenthal"
+ date="2016-05-09T16:13:00Z">I left a comment.</span>some text to
+ have a comment <span class="comment-end" id="0"></span>on it.
+
+ We assume also that the id attributes are unique and properly
+ matched between comment-start and comment-end.
+ + Bookmark improvements. Bookmark start/end now surrounds content rather
+ than preceding it. Bookmarks generated for Div with id
+ (jgm/pandoc-citeproc#205).
+ + Add `keywords` metadata to docx document properties (Ian).
+
+ * RST writer: support unknown interpreted text roles by
+ parsing them as `Span` with `role` attributes (#3407). This
+ way they can be manipulated in the AST.
+
+ * HTML writer:
+
+ + Line block: Use class instead of style attribute (#1623). We now
+ issue `<div class="line-block">` and include a default definition
+ for `line-block` in the default templates, instead of hard-coding a
+ `style` on the div.
+ + Add class `footnoteBack` to footnote back references (Timm Albers).
+ This allows for easier CSS styling.
+ + Render SmallCaps as span with smallcaps class (#1592), rather than
+ using a style attribute directly. This gives the user more flexibility
+ in styling small caps in CSS.
+ + With reveal.js we use `data-src` instead of `src` for images for
+ lazy loading.
+ + Special-case `.stretch` class for images in reveal.js (#1291).
+ Now in reveal.js, an image with class `stretch` in a paragraph
+ by itself will stretch to fill the whole screen, with no
+ caption or figure environment.
+
+ * Added warnings for non-rendered blocks to writers.
+
+ * Writers now raise an error on template failure.
+
+ * When creating a PDF via LaTeX, warn if the font is missing some
+ characters (#3742).
+
+ * Remove initial check for PDF-creating program (#3819).
+ Instead, just try running it and raise the exception if it
+ isn't found at that point. This improves things for users of Cygwin
+ on Windows, where the executable won't be found by `findExecutable`
+ unless `.exe` is added. The same exception is raised as before, but
+ at a later point.
+
+ * Readers issue warning for duplicate header identifiers (#1745).
+ Autogenerated header identifiers are given suffixes so as not to clash
+ with previously used header identifiers. But they may still coincide with
+ an explicit identifier that is given for a header later in the document,
+ or with an identifier on a div, span, link, or image. We now issue
+ a warning in this case, so users can supply an explicit identifier.
+
+ * CommonMark reader now supports `emoji`, `hard_line_breaks`, `smart`,
+ and `raw_html` extensions.
+
+ * Markdown reader:
+
+ + Don't allow backslash + newline to affect block structure (#3730).
+ Note that as a result of this change, the following, which formerly
+ produced a header with two lines separated by a line break, will
+ now produce a header followed by a paragraph:
+
+ # Hi\
+ there
+
+ This may affect some existing documents that relied on
+ this undocumented and unintended behavior. This change makes pandoc
+ more consistent with other Markdown implementations, and with itself
+ (since the two-space version of a line break doesn't work inside ATX
+ headers, and neither version works inside Setext headers).
+
+
+ * Org reader (Albert Krewinkel, unless noted):
+
+ + Support `table.el` tables (#3314).
+ + Support macros (#3401).
+ + Support the `#+INCLUDE:` file inclusion mechanism (#3510).
+ Recognized include types are `example`, `export`, `src`, and
+ normal org file inclusion. Advanced features like line numbers
+ and level selection are not implemented yet.
+ + Interpret more meta value as inlines. The values of the following
+ meta variables are now interpreted using org-markup instead of
+ treating them as pure strings: `keywords` (comma-separated list of
+ inlines), `subtitle` (inline values), `nocite` (inline values, can
+ be repeated).
+ + Support `\n` export option (#3940). This turns all newlines in the
+ text into hard linebreaks.
+
+ * RST reader:
+
+ + Improved admonition support (#223). We no longer add an
+ `admonition` class, we just use the class for the type of admonition,
+ `note` for example. We put the word corresponding to the label in
+ a paragraph inside a `Div` at the beginning of the admonition with
+ class `admonition-title`. This is about as close as we can get to
+ RST's own output.
+ + Initial support of `.. table` directive. This allows adding captions
+ to tables.
+ + Support `.. line-block` directive. This is deprecated but may still
+ be in older documents.
+ + Support scale and align attributes of images (#2662).
+ + Implemented implicit internal header links (#3475).
+ + Support RST-style citations (#853). The citations appear at the end
+ of the document as a definition list in a special div with id
+ `citations`. Citations link to the definitions.
+ + Recurse into bodies of unknown directives (#3432).
+ In most cases it's better to preserve the content than
+ to emit it. This isn't guaranteed to have good results;
+ it will fail spectacularly for unknown raw or verbatim directives.
+ + Handle chained link definitions (#262). For example,
+
+ .. _hello:
+ .. _goodbye: example.com
+
+ Here both `hello` and `goodbye` should link to `example.com`.
+ + Support anchors (#262). E.g.
+
+ `hello`
+
+ .. _hello:
+
+ paragraph
+
+ This is supported by putting "paragraph" in a `Div` with id `hello`.
+ + Support `:widths:` attribute for table directive.
+ + Implement csv-table directive (#3533). Most attributes are supported,
+ including `:file:` and `:url:`.
+ + Support unknown interpreted text roles by parsing them as Span
+ with "role" attributes (#3407). This way they can be manipulated in
+ the AST.
+
+ * HTML reader: parse a span with class `smallcaps` as `SmallCaps`.
+
+ * LaTeX reader:
+
+ + Implemented `\graphicspath` (#736).
+ + Properly handle column prefixes/suffixes. For example, in
+ `\begin{tabular}{>{$}l<{$}>{$}l<{$} >{$}l<{$}}`
+ each cell will be interpreted as if it has a `$`
+ before its content and a `$` after (math mode).
+ + Handle komascript `\dedication` (#1845). It now adds a
+ `dedication` field to metadata. It is up to the user to supply
+ a template that uses this variable.
+ + Support all `\textXX` commands, where XX = `rm`, `tt`, `up`, `md`,
+ `sf`, `bf` (#3488). Spans with a class are used when there is
+ nothing better.
+ + Expand `\newenvironment` macros (#987).
+ + Add support for LaTeX subfiles package (Marc Schreiber, #3530).
+ + Better support for subfigure package (#3577).
+ A figure with two subfigures turns into two pandoc
+ figures; the subcaptions are used and the main caption
+ ignored, unless there are no subcaptions.
+ + Add support for \vdots (Marc Schreiber, #3607).
+ + Add basic support for hyphenat package (Marc Schreiber, #3603).
+ + Add basic `\textcolor` support (Marc Schreiber).
+ + Add support for `tabularx` environment (Marc Schreiber, #3632).
+ + Better handling of comments inside math environments (#3113).
+ This solves a problem with commented out `\end{eqnarray}` inside
+ an eqnarray (among other things).
+ + Parse tikzpicture as raw verbatim environment if `raw_tex` extension
+ is selected (#3692). Otherwise skip with a warning. This is better
+ than trying to parse it as text!
+ + Add `\colorbox` support (Marc Schreiber).
+ + Set identifiers on Spans used for `\label`.
+ + Have `\setmainlanguage` set `lang` in metadata.
+ + Support etoolbox's `\ifstrequal`.
+ + Support `plainbreak`, `fancybreak` et al from the memoir class
+ (bucklereed, #3833).
+ + Support `\let`. Also, fix regular macros so they're expanded at the
+ point of use, and NOT also the point of definition. `\let` macros,
+ by contrast, are expanded at the point of definition. Added an
+ `ExpansionPoint` field to `Macro` to track this difference.
+ + Support simple `\def` macros. Note that we still don't support
+ macros with fancy parameter delimiters, like `\def\foo#1..#2{...}`.
+ + Support \chaptername, \partname, \abstractname, etc. (#3559,
+ obsoletes #3560).
+ + Put content of `\ref`, `\label`, `\eqref` commands into `Span` with
+ attributes, so they can be handled in filters (Marc Schreiber, #3639)
+ + Add Support for `glossaries` and `acronym` package (Marc Schreiber,
+ #3589). Acronyms are not resolved by the reader, but acronym and
+ glossary information is put into attributes on Spans so that they
+ can be processed in filters.
+ + Use `Link` instead of `Span` for `\ref`. This makes more sense
+ semantically and avoids unnecessary `Span [Link]` nestings when
+ references are resolved.
+ + Rudimentary support for `\hyperlink`.
+ + Support `\textquoteleft|right`, `\textquotedblleft|right` (#3849).
+ + Support `\lq`, `\rq`.
+ + Implement `\newtoggle`, `\iftoggle`, `\toggletrue|false` from etoolbox
+ (#3853).
+ + Support `\RN` and `\Rn`, from biblatex (bucklereed, #3854).
+ + Improved support for `\hyperlink`, `\hypertarget` (#2549).
+ + Support `\k` ogonek accent.
+ + Improve handling of accents. Handle ogonek, and fall back correctly
+ with forms like `\"{}`.
+ + Better support for ogonek accents.
+ + Support for `\faCheck` and `\faClose` (Marc Schreiber, #3727).
+ + Support for `xspace` (Marc Schreiber, #3797).
+ + Support `\setmainlanguage` or `\setdefaultlanguage` (polyglossia)
+ and `\figurename`.
+ + Better handling of `\part` in LaTeX (#1905). Now we parse chapters as
+ level 0 headers, and parts as level -1 headers. After parsing, we
+ check for the lowest header level, and if it's less than 1 we bump
+ everything up so that 1 is the lowest header level. So `\part` will
+ always produce a header; no command-line options are needed.
+ + Add block version of `\textcolor` (Marc Schreiber).
+ + `\textcolor` works as inline and block command (Marc Schreiber).
+ + `\textcolor` will be parse as span at the beginning of a paragraph
+ (Marc Schreiber).
+ + Read polyglossia/babel `\text(LANG){...}` (bucklereed)
+ + Improved handling of include files in LaTeX reader (#3971).
+ Previously `\include` wouldn't work if the included file
+ contained, e.g., a begin without a matching end.
+ + Support `\expandafter` (#3983).
+ + Handle `\DeclareRobustCommand` (#3983). Currently it's just treated
+ as a synonym for `\newcommand`.
+ + Handle `\lettrine` (Mauro Bieg).
+
+ * Math improvements due to updates in texmath:
+
+ + Improved handling of accents and upper/lower delimiters.
+ + Support for output in GNU eqn format (used with *roff).
+ + Allow `\boldsymbol` + a token without braces, and similarly
+ with other styling commands.
+ + Improve parsing of `\mathop` to allow multi-character operator names.
+ + Add thin space after math operators when "faking it with
+ unicode."
+
+ * `walk` is now used instead of `bottomUp` in the `ToJSONFilter`
+ instance for `a -> [a]` (pandoc-types). Note that behavior
+ will be slightly different, since `bottomUp`'s treatment of
+ a function `[a] -> [a]` is to apply it to each sublist of a
+ list, while walk applies it only to maximal sublists.
+ Usually the latter behavior is what is wanted, and the
+ former can be simulated when needed. But there may be
+ existing filters that need to be rewritten in light of the
+ new behavior. Performance should be improved.
+
+ * There are some changes to syntax highlighting due to revisions
+ in the `skylighting` library:
+
+ + Support for `powershell` has been added, and many syntax
+ definitions have been updated.
+ + Background colors have been added to the `kate` style.
+ + The way highlighted code blocks are formatted in HTML has
+ been changed (David Baynard), in ways that may require
+ changes in hard-coded CSS affecting highlighting.
+ (If you haven't included hard-coded highlighting CSS in
+ your template, you needn't change anything.)
+
+
+ [API changes]
+
+ * New module `Text.Pandoc.Class` (Jesse Rosenthal, John MacFarlane).
+ This contains definitions of the `PandocMonad` typeclass, the
+ `PandocIO` and `PandocPure` monads, and associated functions.
+
+ * Changed types of all writers and readers.
+
+ + We now use `Text` instead of `String` in the interface (#3731).
+ (We have not yet changed the internals of most readers to work
+ with `Text`, but making this change in the API now opens up a
+ path to doing that.)
+ + The result is now of form `m a` with constraint `PandocMonad m`.
+ Readers and writers can be combined to form monadic values which
+ can be run using either `runIO` or `runPure`. If `runIO` is used,
+ then both readers and writers will be able to do IO when needed
+ (for include files, for example); if `runPure` is used,
+ then the functions are pure and will not touch IO.
+ + Where previously you used
+ `writeRST def (readMarkdown def "[foo](url)")`, now you
+ would use
+ `runPure $ readMarkdown def (pack "[foo](url)") >>= writeRST def`.
+
+ * New module `Text.Pandoc.Readers` (Albert Krewinkel). This
+ contains reader helper functions formerly defined in the
+ top-level `Text.Pandoc` module.
+
+ + Changed `StringReader` -> `TextReader`.
+ + `getReader` now returns a pair of a reader and
+ `Extensions`, instead of building the extensions into the
+ reader (#3659). The calling code must explicitly set
+ `readerExtensions` using the `Extensions` returned. The
+ point of the change is to make it possible for the calling
+ code to determine what extensions are being used.
+
+ * New module `Text.Pandoc.Writers` (Albert Krewinkel).
+ This contains writer helper functions formerly defined in the
+ top-level `Text.Pandoc` module.
+
+ + Changed `StringWriter` -> `TextWriter`.
+ + `getWriter` now retuns a pair of a reader and
+ `Extensions`, instead of building the extensions into the
+ reader (#3659). The calling code must explicitly set
+ `readerExtensions` using the `Extensions` returned. The
+ point of the change is to make it possible for the calling
+ code to determine what extensions are being used.
+
+ * New module `Text.Pandoc.Lua`, exporting `runLuaFilter` (Albert Krewinkel,
+ #3514).
+
+ * New module `Text.Pandoc.App`. This abstracts out the functionality
+ of the command line program (`convertWithOpts`), so it can be reproduced
+ e.g. in a desktop or web application. Instead of exiting, we throw errors
+ (#3548), which are caught (leading to exit) in pandoc.hs, but allow other
+ users of `Text.Pandoc.App` to recover. `pandoc.hs` is now a 2-liner.
+ The module also exports some utility functions for parsing options
+ and running filters.
+
+ * New module `Text.Pandoc.Logging` (exported module) (#3392).
+ This now contains the `Verbosity` definition previously in
+ `Text.Pandoc.Options`, as well as a new `LogMessage` datatype that will
+ eventually be used instead of raw strings for warnings. This will enable
+ us, among other things, to provide machine-readable warnings if desired.
+ Include ToJSON instance and showLogMessage. This gives us the possibility
+ of both machine-readable and human-readable output for log messages.
+
+ * New module `Text.Pandoc.BCP47`, with `getLang`, `Lang(..)`, `parseBCP47`.
+
+ * New module `Text.Pandoc.Translations`, exporting `Term`,
+ `Translations`, `readTranslations`.
+
+ * New module `Text.Pandoc.Readers.LaTeX.Types', exporting `Macro`, `Tok`,
+ `TokType`, `Line`, `Column`.
+
+ * `Text.Pandoc.Error`: added many new constructors for `PandocError`.
+
+ * Expose some previously private modules (#3260). These are often
+ helpful to people writing their own reader or writer modules:
+
+ + `Text.Pandoc.Writers.Shared`
+ + `Text.Pandoc.Parsing`
+ + `Text.Pandoc.Asciify`
+ + `Text.Pandoc.Emoji`
+ + `Text.Pandoc.ImageSize`
+ + `Text.Pandoc.Highlighting`
+`
+ * New module `Text.Pandoc.Extensions` (Albert Krewinkel):
+ Extension parsing and processing functions were defined in the top-level
+ `Text.Pandoc` module. These functions are moved to the Extensions
+ submodule as to enable reuse in other submodules.
+
+ * Add `Ext_raw_attribute` constructor for `Extension`.
+
+ * Add `Ext_fenced_divs` constructor for `Extension'.
+
+ * Add `Ext_four_space_rule` constructor in `Extension`.
+
+ * Add `Ext_gfm_auto_identifiers` constructor for `Extension`.
+
+ * Add `Monoid` instance for `Extensions`.
+
+ * Add `Text.Pandoc.Writers.Ms`, exporting `writeMs`.
+
+ * Add `Text.Pandoc.Writers.JATS`, exporting `writeJATS`.
+
+ * Add `Text.Pandoc.Writers.Muse`, exporting `writeMuse`.
+
+ * Add `Text.Pandoc.Readers.Muse`, exporting `readMuse`.
+
+ * Add `Text.Pandoc.Readers.TikiWiki`, exporting `readTikiWiki`.
+
+ * Add `Text.Pandoc.Readers.Vimwiki`, exporting `readVimwiki`.
+
+ * Add `Text.Pandoc.Readers.Creole`, exporting `readCreole`.
+
+ * Export `setVerbosity` from `Text.Pandoc`.
+
+ * `Text.Pandoc.Pretty`: Add `Eq` instance for `Doc`.
+
+ * `Text.Pandoc.XML`: `toEntities`: changed type to `Text -> Text`.
+
+ * `Text.Pandoc.UTF8`:
+
+ + Export `fromText`, `fromTextLazy`, `toText`, `toTextLazy`.
+ Define `toString`, `toStringLazy` in terms of them.
+ + Add new functions parameterized on `Newline`: `writeFileWith`,
+ `putStrWith`, `putStrLnWith`, `hPutStrWith`, `hPutStrLnWith`.
+
+ * `Text.Pandoc.MediaBag`: removed `extractMediaBag`.
+
+ * `Text.Pandoc.Highlighting`:
+
+ + `highlighting` now returns an Either rather than Maybe.
+ This allows us to display error information returned by the skylighting
+ library. Display a warning if the highlighting library throws an error.
+ + Add parameter for `SyntaxMap` to `highlight`.
+
+ * `Text.Pandoc.Writers.Math`:
+
+ + Export `defaultMathJaxURL`, `defaultKaTeXURL`. This will ensure that
+ we only need to update these in one place.
+
+ * `Text.Pandoc.SelfContained`:
+
+ + Removed `WriterOptions` parameter from `makeSelfContained`.
+ + Put `makeSelfContained` in PandocMonad instead of IO. This removes
+ the need to pass MediaBag around and improves exceptions. It also
+ opens up the possibility of using makeSelfContained purely.
+ + Export `makeDataURI`.
+
+ * `Text.Pandoc.ImageSize`:
+
+ + Export `lengthToDim`, new function `scaleDimension`.
+ + Export `inEm` from ImageSize (#3450).
+ + Change `showFl` and `show` instance for `Dimension` so
+ extra decimal places are omitted.
+ + Added `Em` as a constructor of `Dimension`.
+ + Add `WriterOptions` parameter to `imageSize` signature (Mauro Bieg).
+
+ * `Text.Pandoc.Templates`:
+
+ + Change type of `renderTemplate'`. Now it runs in `PandocMonad`
+ and raises a proper `PandocTemplateError` if there are problems, rather
+ than failing with uncatchable `error`.
+ + Change signature of `getDefaultTemplate`. Now it runs in any instance
+ of `PandocMonad`, and returns a `String` rather than an `Either` value.
+ And it no longer takes a `datadir` parameter, since this can be
+ retrieved from `CommonState`.
+
+ * `Text.Pandoc.Options`:
+
+ + Added `writerEpubSubdirectory` to `WriterOptions` (#3720).
+ The EPUB writer now takes its EPUB subdirectory from this option.
+ + In `WriterOptions`, rename `writerLaTeXEngine` to `writerPdfEngine`
+ and `writerLaTeXArgs` to `writerPdfArgs` (Mauro Bieg, #3909).
+ + Add `writerSyntaxMap` to `WriterOptions`.
+ + Removed `writerEpubStylesheet` from `WriterOptions`.
+ + Remove `writerUserDataDir` from `WriterOptions`. It is now carried
+ in `CommonState` in `PandocMonad` instances. (And thus it can be used
+ by readers too.)
+ + Changed `writerEpubMetadata` to a `Maybe String`.
+ + Removed `readerApplyMacros` from `ReaderOptions`. Now we just check
+ the `latex_macros` reader extension.
+ + FromJSON/ToJSON instances for `ReaderOptions`.
+ + In `HTMLMathMethod`, the `KaTeX` contsructor now takes only
+ one string (for the KaTeX base URL), rather than two.
+ + Removed `writerSourceURL` from `WriterOptions`. We now use
+ `stSourceURL` in `CommonState`, which is set by `setInputFiles`.
+
+ * `Text.Pandoc.Shared`:
+
+ + `tabFilter` now takes a `Text`, not `String`.
+ + `openURL`: Changed type from an Either. Now it will just raise
+ an exception to be trapped later.
+ + Remove `normalizeSpaces` (#1530).
+ + Remove `warn`. (Use `report` from `Text.Pandoc.Class` instead.)
+ + Export a new function `crFilter`.
+ + Add `eastAsianLineBreakFilter` (previously in Markdown reader).
+ + Provide custom `isURI` that rejects unknown schemes.
+ (Albert Krewinkel, #2713). We also export the set of known
+ `schemes`. The new function replaces the function of the same name
+ from `Network.URI`, as the latter did not check whether a scheme is
+ well-known. All official IANA schemes (as of 2017-05-22) are
+ included in the set of known schemes. The four non-official schemes
+ `doi`, `isbn`, `javascript`, and `pmid` are kept.
+ + Remove `err`.
+ + Remove `readDataFile`, `readDefaultDataFile`, `getReferenceDocx`,
+ `getReferenceODT`. These now live in `Text.Pandoc.Class`,
+ where they are defined in terms of `PandocMonad`
+ primitives and have different signatures.
+ + Remove `openURL`. Use `openURL` from `Text.Pandoc.Class` instead.
+ + Add `underlineSpan`.
+
+ * `Text.Pandoc.Readers.HTML`: export new `NamedTag` class.
+
+ * `Text.Pandoc.Readers.Markdown`: remove `readDocxWithWarnings`.
+ With the new API one can simply use `getLog` after running
+ the reader.
+
+ * `Text.Pandoc.Readers.LaTeX`: Changed types for `rawLaTeXInline`
+ and `rawLaTeXBlock`. (Both now return a `String`, and they are
+ polymorphic in state.)
+
+
+ [bug fixes and under-the-hood improvements]
+
+ * TEI writer: Added identifiers on `<div>` elements.
+
+ * DokuWiki reader: Better handling for code block in list item (#3824).
+
+ * Custom writer: Remove old preprocesesor conditionals (Albert Krewinkel).
+
+ * ZimWiki writer: Removed internal formatting from note and table cells,
+ because ZimWiki does not support it (Alex Ivkin, #3446).
+
+ * MediaWiki writer:
+
+ + Updated list of syntax highlighting languages (#3461).
+ Now `r` gets you `<source>` rather than `<code>` (among others).
+ + Add display attribute on `<math>` tags (#3452). This allows display
+ math to be rendered properly.
+ + Remove newline before `</ref>` (#2652).
+ + Don't softbreak lines inside list items (#3531).
+
+ * Org writer:
+
+ + Reduce to two spaces after bullets (#3417, Albert Krewinkel).
+ + Add unit tests (Alexander Krotov).
+ + Stop using raw HTML to wrap divs (Albert Krewinkel, #3771).
+ + Do not strip `#` from Org anchor links (Alexander Krotov).
+
+ * CommonMark writer:
+
+ + Avoid excess blank lines at end of output.
+ + Prefer pipe tables to HTML tables even if it means losing relative
+ column width information (#3734).
+ + Support table, strikethrough extensions, when enabled (as with gfm).
+ Note that we bypass the commonmark writer from cmark and construct our
+ own pipe tables, with better results.
+ + Properly support `--wrap=none`.
+ + Use smallcaps class for `SmallCaps` (#1592).
+ + Omit "fig:" prefix in image titles. This is used internally to
+ indicate internal figures.
+
+ * RST writer:
+
+ + Properly handle table captions.
+ + Don't wrap lines in in definition list terms. Wrapping is not allowed.
+ + Implemented `+/-smart` and improved escaping with `+smart`.
+ + Add empty comments when needed to avoid including a blockquote
+ in the indented content of a preceding block (#3675).
+ + Improve grid table output, fix bug with empty rows (#3516).
+ Uses the new `gridTable` in Writers.Shared, which is here
+ improved to better handle 0-width cells.
+ + Remove space at beginning/end of RST code span (#3496). Otherwise
+ we get invalid RST. There seems to be no way to escape the space.
+ + Add header anchors when header has non-standard id (#3937).
+ + Correctly handle inline code containing backticks, using a `:literal:`
+ role (#3974).
+ + Don't backslash-escape word-internal punctuation (#3978).
+
+ * Markdown writer:
+
+ + Don't include variables in metadata blocks. Previously variables set
+ on the command line were included in e.g. YAML metadata, contrary to
+ documentation and intentions.
+ + Improved escaping with `+smart`.
+ + Fixed grid tables embedded in grid tables (#2834).
+ + Use span with class 'smallcaps' for SmallCaps, instead of a style
+ attribute as before (#1592).
+ + Escape initial `%` in a paragraph if the `pandoc_title_blocks`
+ extension is enabled (#3454). Otherwise in a document starting with
+ a literal `%` the first line is wrongly interpreted as a title.
+ + Fixed false ordered lists in YAML metadata (#3492, #1685). Now we
+ properly escape things that would otherwise start ordered lists,
+ such as
+
+ ---
+ title: 1. inline
+ ...
+ + Better handling of tables with empty columns (#3337). We now
+ calculate the number of columns based on the longest row (or the
+ length of aligns or widths).
+ + Escape unordered list markers at beginning of paragraph (#3497), to
+ avoid false interpretation as a list.
+ + Escape `|` appropriately.
+ + Ensure space before list at top level (#3487).
+ + Avoid spurious blanklines at end of document after tables and list,
+ for example.
+ + Fixed bugs in simple/multiline list output (#3384).
+ Previously we got overlong lists with `--wrap=none`. This is fixed.
+ Previously a multiline list could become a simple list (and would
+ always become one with `--wrap=none`).
+ + Don't emit a simple table if `simple_tables` disabled (#3529).
+ + Case-insensitive reference links (David A Roberts, #3616).
+ Ensure that we do not generate reference links whose labels differ only
+ by case. Also allow implicit reference links when the link
+ text and label are identical up to case.
+ + Put space before reference link definitions (Mauro Bieg, #3630).
+ + Better escaping for links (David A. Roberts, #3619). Previously the
+ Markdown writer would sometimes create links where there were none
+ in the source. This is now avoided by selectively escaping bracket
+ characters when they occur in a place where a link might be created.
+ + Added missing `\n` (David A. Roberts, #3647).
+ + Fixed duplicated reference links with `--reference-links`
+ and `--reference-location=section` (#3674). Also ensure that there
+ are no empty link references `[]`.
+ + Avoid inline surround-marking with empty content (#3715).
+ E.g. we don't want `<strong></strong>` to become `****`.
+ Similarly for emphasis, super/subscript, strikeout.
+ + Don't allow soft break in header (#3736).
+ + Make sure `plain`, `markdown_github`, etc. work for raw.
+ Previously only `markdown` worked. Note: currently a raw block labeled
+ `markdown_github` will be printed for any `markdown` format.
+ + Ensure that `+` and `-` are escaped properly so they don't cause
+ spurious lists (#3773). Previously they were only
+ if succeeded by a space, not if they were at end of line.
+ + Use pipe tables if `raw_html` disabled and `pipe_tables` enabled,
+ even if the table has relative width information (#3734).
+ + Markdown writer: don't crash on `Str ""`.
+ + Make `Span` with null attribute transparent. That is, we don't use
+ brackets or `<span>` tags to mark spans when there are no attributes;
+ we simply output the contents.
+ + Escape pipe characters when `pipe_tables` enabled (#3887).
+ + Better escaping of `<` and `>`. If `all_symbols_escapable` is set,
+ we backslash escape these. Otherwise we use entities as before.
+ + When writing plain, don't use `&nbsp;` to separate list and indented
+ code. There's no need for it in this context, since this isn't to be
+ interpreted using Markdown rules.
+ + Preserve classes in JS obfuscated links (Timm Albers, #2989).
+ HTML links containing classes originally now preserve them when using
+ JavaScript email obfuscation.
+ + Render `SmallCaps` as a native span when `native_spans` are enabled.
+ + Always write attributes with `bracketed_spans` (d-dorazio).
+
+ * Man writer:
+
+ + Fix handling of nested font commands (#3568). Previously pandoc emitted
+ incorrect markup for bold + italic, for example, or bold + code.
+ + Avoid error for definition lists with no definitions (#3832).
+
+ * DocBook writer:
+
+ + Fix internal links with `writerIdentifierPrefix opt`
+ (#3397, Mauro Bieg).
+
+ * Docx writer:
+
+ + Don't include bookmarks on headers unless non-null id (#3476).
+ + Support 9 levels of headers (#1642).
+ + Allow 9 list levels (#3519).
+ + Don't take `distArchive` from datadir (#3322). The docx writer takes
+ components from the distribution's version of `reference.docx` when it
+ can't find them in a user's custom `reference.docx`. Previously, we
+ allowed a `reference.docx` in the data directory (e.g. `~/.pandoc`)
+ to be used as the distribution's reference.docx. This led to a
+ bizarre situation where pandoc would produce a good docx using
+ `--template ~/.pandoc/ref.docx`, but if `ref.docx` were moved to
+ `~/.pandoc/reference.docx`, it would then produce a corrupted docx.
+ + Fixed handling of soft hyphen (0173) (#3691).
+ + Better handling of keywords (#3719).
+ + Cleaner code for handling dir and style attributes for `Div`.
+ + Use `Set` for dynamic styles to avoid duplicates.
+ + Removed redundant element from data/docx/word/numbering.xml.
+ The elements we need are generated when the document is
+ compiled; this didn't do anything.
+ + Activate `evenAndOddHeaders` from reference docx (#3901,
+ Augustín Martín Barbero).
+
+ * ODT/OpenDocument writer:
+
+ + Calculate aspect ratio for percentage-sized images (Mauro Bieg, #3239).
+ + Use more widely available bullet characters (#1400). The old
+ characters weren't available in some font sets. These seem to work
+ well on Windows and Linux versions of LibreOffice.
+ + Wider labels for lists (#2421). This avoids overly narrow labels for
+ ordered lists with `()` delimiters. However, arguably it creates
+ overly wide labels for bullets. Also, lists now start flush with
+ the margin, rather than indented.
+ + Fixed dropped elements in some ordered lists (#2434).
+
+ * FB2 writer:
+
+ + Don't render `RawBlock` as code.
+ + Don't fail with an error on interior headers (e.g. in list) (#3750).
+ Instead, omit them with an INFO message.
+ + Add support for "lang" metadata (Alexander Krotov, #3625).
+ + Format `LineBlock` as poem (Alexander Krotov). Previously writer
+ produced one paragraph with `<empty-line/>` elements, which are not
+ allowed inside `<p>` according to FB2 schema.
+ + Replace `concatMap` with `cMap` (Alexander Krotov).
+ + Write FB2 lists without nesting blocks inside `<p>` (Alexander
+ Krotov, #4004)
+
+ * HTML writer:
+
+ + Make sure `html4`, `html5` formats work for raw blocks/inlines.
+ + Render raw inline environments when `--mathjax` used (#3816).
+ We previously did this only with raw blocks, on the assumption
+ that math environments would always be raw blocks. This has changed
+ since we now parse them as inline environments.
+ + Ensure we don't get two style attributes for width and height.
+ + Report when not rendering raw inline/block.
+ + Issue warning if no title specified and template used (#3473).
+ + Info message if `lang` is unspecified (#3486).
+ + Removed unused parameter in `dimensionsToAttributeList`.
+ + Avoid two class attributes when adding `uri` class (#3716).
+ + Fix internal links with `writerIdentifierPrefix opt` (#3397, Mauro
+ Bieg).
+ + Use revealjs's math plugin for mathjax (#3743). This is a thin
+ wrapper around mathjax that makes math look better on revealjs.
+ + Slidy: use h1 for all slides, even if they were originally
+ level 2 headers (#3566). Otherwise the built-in table of contents
+ in Slidy breaks.
+
+ * LaTeX writer:
+
+ + Don't render LaTeX images with data: URIs (#3636). Note that
+ `--extract-media` can be used when the input contains data: URIs.
+ + Make highlighted code blocks work in footnotes (Timm Albers).
+ + Don't use figure inside table cell (#3836).
+ + Use proper code for list enumerators (#3891). This should fix problems
+ with lists that don't use arabic numerals.
+ + Always add hypertarget when there's a non-empty identifier (#2719).
+ Previously the hypertargets were only added when there was actually
+ a link to that identifier.
+ + Use `%` after hypertarget before code block.
+ + Add `\leavevmode` before hypertarget at start of paragraph (#2704,
+ fixes formatting problems in beamer citations).
+ + Don't use `lstinline` in \item[..] (#645). If you do, the contents
+ of item disappear or are misplaced. Use `\texttt` instead.
+ + Fix problem with escaping in `lstinline` (#1629). Previously the
+ LaTeX writer created invalid LaTeX when `--listings` was specified and
+ a code span occured inside emphasis or another construction.
+ + Fix error with line breaks after empty content (#2874). LaTeX
+ requires something before a line break, so we insert a `~` if no
+ printable content has yet been emitted.
+ + Use BCP47 parser.
+ + Fixed detection of otherlangs (#3770). We weren't recursing into
+ inline contexts.
+ + Handle language in inline code with `--listings` (#3422).
+ + Write euro symbol directly in LaTeX (Andrew Dunning, #3801).
+ The textcomp package allows pdfLaTeX to parse `€` directly, making the
+ `\euro` command unneeded.
+ + Fixed footnotes in table captions (#2378). Note that if the table has
+ a first page header and a continuation page header, the notes will
+ appear only on the first occurrence of the header.
+ + In `writeBeamer` output, allow hyperlinks to frames (#3220).
+ Previously you could link to a header above or below slide level but
+ not *to* slide level. This commit changes that. Hypertargets are
+ inserted inside frame titles; technically the reference is to just
+ after the title, but in normal use (where slides are viewed full
+ screen in a slide show), this does not matter.
+ + Remove `\strut` at beginning of table cells (#3436). This fixes a
+ problem with alignment of lists in table cells. The `\strut` at the
+ end seems to be enough to avoid the too-close spacing that motivated
+ addition of the strut in #1573.
+ + Add partial siunitx Support (Marc Schreiber, #3588).
+
+ * ConTeXt writer:
+
+ + Refactored to use BCP47 module.
+ + Remove unnecessary `$` (Alexander Krotov, #3482).
+ + Use header identifiers for chapters (#3968).
+
+ * EPUB writer:
+
+ + `title_page.xhtml` is now put in `text/`.
+ + Don't strip formatting in TOC (#1611).
+
+ * Textile reader:
+
+ + Fix bug for certain links in table cells (#3667).
+ + Allow 'pre' code in list item (#3916).
+
+ * HTML reader:
+
+ + Added warnings for ignored material (#3392).
+ + Better sanity checks to avoid parsing unintended things as
+ raw HTML in the Markdown reader (#3257).
+ + Revise treatment of `li` with `id` attribute (#3596). Previously we
+ always added an empty div before the list item, but this created
+ problems with spacing in tight lists. Now we do this: If the list
+ item contents begin with a `Plain` block, we modify the `Plain`
+ block by adding a `Span` around its contents. Otherwise, we add a
+ `Div` around the contents of the list item (instead of adding an
+ empty `Div` to the beginning, as before).
+ + Add `details` tag to list of block tags (#3694).
+ + Removed `button` from block tag list (#3717). It is already in the
+ `eitherBlockOrInlineTag` list, and should be both places.
+ + Use `Set`s instead of lists for block tag lookup.
+ + Rewrote to use `Text` throughout. Effect on memory usage is modest
+ (< 10%).
+ + Use the lang value of `<html>` to set the lang meta value (bucklereed,
+ #3765).
+ + Ensure that paragraphs are closed properly when the parent block
+ element closes, even without `</p>` (#3794).
+ + Parse `<figure>` and `<figcaption>` (Mauro Bieg, #3813).
+ + Parse `<main>` like `<div role=main>` (bucklereed, #3791).
+ `<main>` closes `<p>` and behaves like a block element generally
+ + Support column alignments (#1881). These can be set either
+ with a `width` attribute or with `text-width` in a `style` attribute.
+ + Modified state type to be an instance of `HasLogMessages`, so
+ `registerHeader` can issue warnings.
+ + `</td>` or `</th>` should close any open block tag (#3991).
+ + `<td>` should close an open `<th>` or `<td>`.
+ + `htmlTag` improvements (#3989). We previously failed on cases
+ where an attribute contained a `>` character. This patch fixes the
+ bug, which especially affects raw HTML in Markdown.
+
+ * Txt2Tags reader:
+
+ + Newline is not indentation (Alexander Krotov).
+
+ * MediaWiki reader:
+
+ + Allow extra hyphens after `|-` in tables (#2649).
+ + Allow blank line after table start (#2649).
+ + Fixed more table issues (#2649).
+ + Ensure that list starts begin at left margin (#2606). Including when
+ they're in tables or other list items.
+ + Make smart double quotes depend on `smart` extension (#3585).
+ + Don't do curly quotes inside `<tt>` contexts (#3585). Even if `+smart`.
+ + Modified state type to be an instance of `HasLogMessages`, so
+ `registerHeader` can issue warnings.
+
+ * TWiki reader (Alexander Krotov):
+
+ + Remove unnecessary `$` (#3597).
+ + Simplify `linkText` (#3605).
+
+ * EPUB reader:
+
+ + Minor refactoring, avoiding explicit MediaBag handling.
+ This all works behind the scenes in CommonState plumbing.
+
+ * Docx reader:
+
+ + Don't drop smartTag contents (#2242).
+ + Handle local namespace declarations (#3365). Previously we didn't
+ recognize math, for example, when the xmlns declaration occured on
+ the element and not the root.
+ + More efficient trimSps (#1530). Replacing `trimLineBreaks`. This
+ does the work of `normalizeSpaces` as well, so we avoid the need for
+ that function here.
+ + Avoid 0-level headers (Jesse Rosenthal, #3830). We used to parse
+ paragraphs styled with "HeadingN" as "nth-level header." But if a
+ document has a custom style named "Heading0", this will produce a
+ 0-level header, which shouldn't exist. We only parse this style
+ if N>0. Otherwise we treat it as a normal style name, and
+ follow its dependencies, if any.
+ + Add tests for avoiding zero-level header (Jesse Rosenthal).
+
+ * ODT reader:
+
+ + Replaced `collectRights` with Rights from `Data.Either`.
+ + Remove dead code (Albert Krewinkel).
+
+ * Org reader (Albert Krewinkel, unless noted).
+
+ + Don't allow tables inside list items (John MacFarlane, #3499).
+ + Disallow tables on list marker lines (#3499).
+ + Convert markup at beginning of footnotes (John MacFarlane, #3576).
+ + Allow emphasized text to be followed by `[` (#3577).
+ + Handle line numbering switch for src blocks.
+ The line-numbering switch that can be given to source blocks (`-n` with
+ an start number as an optional parameter) is parsed and translated to a
+ class/key-value combination used by highlighting and other readers and
+ writers.
+ + Stop adding rundoc prefix to src params. Source block parameter names
+ are no longer prefixed with `rundoc`. This was intended to simplify
+ working with the rundoc project, a babel runner. However, the rundoc
+ project is unmaintained, and adding those markers is not the reader's
+ job anyway. The original language that is specified for a source
+ element is now retained as the `data-org-language` attribute and only
+ added if it differs from the translated language.
+ + Allow multi-word arguments to src block params (#3477). The reader now
+ correctly parses src block parameter list even if parameter arguments
+ contain multiple words.
+ + Avoid creating `nullMeta` by applying `setMeta` directly
+ (Alexander Krotov).
+ + Replace `sequence . map` with `mapM`.
+ + Fix smart parsing behavior. Parsing of smart quotes and special
+ characters can either be enabled via the `smart` language extension or
+ the `'` and `-` export options. Smart parsing is active if either the
+ extension or export option is enabled. Only smart parsing of special
+ characters (like ellipses and en and em dashes) is enabled by default,
+ while smart quotes are disabled. Previously, all smart parsing was
+ disabled unless the language extension was enabled.
+ + Subject full doc tree to headline transformations (Albert Krewinkel,
+ #3695). Emacs parses org documents into a tree structure, which is
+ then post-processed during exporting. The reader is changed to do the
+ same, turning the document into a single tree of headlines starting
+ at level 0.
+ + Fix cite parsing behaviour (Herwig Stuetz). Until now, `org-ref`
+ cite keys included special characters also at the end. This caused
+ problems when citations occur right before colons or at the end of
+ a sentence. With this change, all non alphanumeric characters at
+ the end of a cite key are ignored. This also adds `,` to the list
+ of special characters that are legal in cite keys to better mirror
+ the behaviour of org-export.
+ + Fix module names in haddock comments. Copy-pasting had lead to
+ haddock module descriptions containing the wrong module names.
+ + Recognize babel result blocks with attributes (#3706). Babel
+ result blocks can have block attributes like captions and names.
+ Result blocks with attributes were not recognized and were parsed
+ as normal blocks without attributes.
+ + Include tags in headlines. The Emacs default is to include tags in the
+ headline when exporting. Instead of just empty spans, which contain the
+ tag name as attribute, tags are rendered as small caps and wrapped in
+ those spans. Non-breaking spaces serve as separators for multiple tags.
+ + Respect export option for tags (#3713). Tags are appended to
+ headlines by default, but will be omitted when the `tags` export option
+ is set to nil.
+ + Use `tag-name` attribute instead of `data-tag-name`.
+ + Use `org-language` attribute rather than `data-org-language`.
+ + Modified state type to be an instance of `HasLogMessages`, so
+ `registerHeader` can issue warnings.
+ + End footnotes after two blank lines. Footnotes can not only be
+ terminated by the start of a new footnote or a header, but also by two
+ consecutive blank lines.
+ + Update emphasis border chars (#3933). The org reader was updated to
+ match current org-mode behavior: the set of characters which are
+ acceptable to occur as the first or last character in an org emphasis
+ have been changed and now allows all non-whitespace chars at the
+ inner border of emphasized text (see `org-emphasis-regexp-components`).
+
+ * RST reader:
+
+ + Fixed small bug in list parsing (#3432). Previously the parser didn't
+ handle properly this case:
+
+ * - a
+ - b
+ * - c
+ - d
+ + Handle multiline cells in simple tables (#1166).
+ + Parse list table directive (Keiichiro Shikano, #3432).
+ + Make use of `anyLineNewline` (Alexander Krotov, #3686).
+ + Use `anyLineNewline` in `rawListItem` (Alexander Krotov, #3702).
+ + Reorganize block parsers for ~20% faster parsing.
+ + Fixed `..include::` directive (#3880).
+ + Handle blank lines correctly in line blocks (Alexander Krotov, #3881).
+ Previously pandoc would sometimes combine two line blocks separated
+ by blanks, and ignore trailing blank lines within the line block.
+ + Fix indirect hyperlink targets (#512).
+
+ * Markdown reader:
+
+ + Allow attributes in reference links to start on next line (#3674).
+ + Parse YAML metadata in a context that sees footnotes defined in
+ the body of the document (#1279).
+ + When splitting pipe table cells, skip tex math (#3481).
+ You might have a `|` character inside math. (Or for that matter
+ something that the parser might mistake for raw HTML.)
+ + Treat span with class `smallcaps` as SmallCaps.
+ This allows users to specify small caps in Markdown this way:
+ `[my text]{.smallcaps}` (#1592).
+ + Fixed internal header links (#2397).
+ This patch also adds `shortcut_reference_links` to the list
+ of mmd extensions.
+ + Treat certain environments as inline
+ when they occur without space surrounding them (#3309, #2171).
+ E.g. equation, math. This avoids incorrect vertical space
+ around equations.
+ + Optimized `nonindentSpaces`. Makes the benchmark go from 40 to 36 ms.
+ + Allow latex macro definitions indented 1-3 spaces.
+ Previously they only worked if nonindented.
+ + Improved parsing of indented raw HTML blocks (#1841).
+ Previously we inadvertently interpreted indented HTML as
+ code blocks. This was a regression. We now seek to determine the
+ indentation level of the contents of an HTML block, and (optionally)
+ skip that much indentation. As a side effect, indentation may be
+ stripped off of raw HTML blocks, if `markdown_in_html_blocks` is
+ used. This is better than having things interpreted as indented
+ code blocks.
+ + Fixed smart quotes after emphasis (#2228). E.g. in `*foo*'s 'foo'`.
+ + Warn for notes defined but not used (#1718).
+ + Use `anyLineNewline` (Alexander Krotov).
+ + Interpret YAML metadata as Inlines when possible (#3755). If
+ the metadata field is all on one line, we try to interpret it as
+ Inlines, and only try parsing as Blocks if that fails. If it
+ extends over one line (including possibly the `|` or `>` character
+ signaling an indented block), then we parse as Blocks. This was
+ motivated by some German users finding that `date: '22. Juin 2017'`
+ got parsed as an ordered list.
+ + Fixed spurious parsing as citation as reference def (#3840).
+ We now disallow reference keys starting with `@` if the
+ `citations` extension is enabled.
+ + Parse `-@roe` as suppress-author citation (pandoc-citeproc#237).
+ Previously only `[-@roe]` (with brackets) was recognized as
+ suppress-author, and `-@roe` was treated the same as `@roe`.
+ + Fixed parsing of fenced code after list when there is no intervening
+ blank line (#3733).
+ + Allow raw latex commands starting with `\start` (#3558). Previously
+ these weren't allowed because they were interpreted as starting
+ ConTeXt environments, even without a corresponding `\stop`...
+ + Added `inlines`, `inlines1`.
+ + Require nonempty alt text for `implicit_figures` (#2844).
+ A figure with an empty caption doesn't make sense.
+ + Removed texmath macro material; now all this is handled
+ in the LaTeX reader functions.
+ + Fixed bug with indented code following raw LaTeX (#3947).
+
+ * LaTeX reader:
+
+ + Rewrote LaTeX reader with proper tokenization (#1390,
+ #2118, #3236, #3779, #934, #982). This rewrite is primarily
+ motivated by the need to get macros working properly. A side benefit
+ is that the reader is significantly faster. We now tokenize the
+ input text, then parse the token stream. Macros modify the token
+ stream, so they should now be effective in any context, including
+ math. Thus, we no longer need the clunky macro processing
+ capacities of texmath.
+ + Parse `\,` to `\8198` (six-per-em space) (Henri Werth).
+ + Allow `\newcommand\foo{blah}` without braces.
+ + Support `\lstinputlisting` (#2116).
+ + Issue warnings when skipping unknown latex commands (#3392).
+ + Include contents of `\parbox`.
+ + Allow `\hspace` and `\vspace` to count as raw block or inline.
+ Previously we would refuse to parse anything as raw inline if
+ it was in the `blockCommands` list. Now we allow exceptions
+ if they're listed under ignoreInlines in inlineCommands.
+ This should make it easier e.g. to include an `\hspace`
+ between two side-by-side raw LaTeX tables.
+ + Don't drop contents of `\hypertarget`.
+ + Handle spaces before `\cite` arguments.
+ + Allow newpage, clearpage, pagebreak in inline contexts as well as
+ block contexts (#3494).
+ + Treat `{{xxx}}` the same as `{xxx}` (#2115).
+ + Use `pMacroDefinition` in macro (for more direct parsing).
+ Note that this means that `macro` will now parse one
+ macro at a time, rather than parsing a whole group together.
+ + Fixed failures on \ref{}, \label{} with `+raw_tex`. Now these
+ commands are parsed as raw if `+raw_tex`; otherwise, their argument
+ is parsed as a bracketed string.
+ + Don't crash on empty `enumerate` environment (#3707).
+ + Handle escaped `&` inside table cell (#3708).
+ + Handle block structure inside table cells (#3709). `minipage` is no
+ longer required.
+ + Handle some width specifiers on table columns (#3709). Currently
+ we only handle the form `0.9\linewidth`. Anything else would have
+ to be converted to a percentage, using some kind arbitrary assumptions
+ about line widths.
+ + Make sure `\write18` is parsed as raw LaTeX. The change is in the
+ LaTeX reader's treatment of raw commands, but it also affects the
+ Markdown reader.
+ + Fixed regression with starred environment names (#3803).
+ + Handle optional args in raw `\titleformat` (#3804).
+ + Improved heuristic for raw block/inline. An unknown command at the
+ beginning of the line that could be either block or inline is
+ treated as block if we have a sequence of block commands followed by
+ a newline or a `\startXXX` command (which might start a raw ConTeXt
+ environment).
+ + Don't remove macro definitions from the output, even if
+ `Ext_latex_macros` is set, so that macros will be applied.
+ Since they're only applied to math in Markdown, removing the macros
+ can have bad effects. Even for math macros, keeping them should be
+ harmless.
+ + Removed `macro`. It is no longer necessary, since the
+ `rawLaTeXBlock` parser will parse macro definitions. This also avoids
+ the need for a separate `latexMacro` parser in the Markdown reader.
+ + Use `label` instead of `data-label` for label in caption (#3639).
+ + Fixed space after \figurename etc.
+ + Resolve references to section numbers.
+ + Fix `\let\a=0` case, with single character token.
+ + Allow `@` as a letter in control sequences. `@` is commonly used
+ in macros using `\makeatletter`. Ideally we'd make the tokenizer
+ sensitive to `\makeatletter` and `\makeatother`, but until then this
+ seems a good change.
+ + Track header numbers and correlate with labels.
+ + Allow `]` inside group in option brackets (#3857).
+ + lstinline with braces can be used (verb cannot be used with braces)
+ (Marc Schreiber, #3535).
+ + Fix keyval funtion: pandoc did not parse options in braces correctly
+ (Marc Schreiber, #3642).
+ + When parsing raw LaTeX commands, include trailing space (#1773).
+ Otherwise things like `\noindent foo` break and turn into
+ `\noindentfoo`. Affects `-f latex+raw_tex` and `-f markdown` (and other
+ formats that allow `raw_tex`).
+ + Don't treat "..." as Quoted (#3958). This caused quotes to be omitted in
+ `\texttt` contexts.
+ + Add tests for existing `\includegraphics` behaviour (Ben Firshman).
+ + Allow space before `=` in bracketd options (Ben Firshman).
+ + Be more forgiving in parsing command options. This was needed, for
+ example, to make some minted options work.
+ + Strip off quotes in `\include` filenames.
+
+ * Added `Text.Pandoc.CSV`, simple (unexported) CSV parser.
+
+ * `Text.Pandoc.PDF`:
+
+ + Got `--resource-path` working with PDF output (#852).
+ + Fetch images when generating PDF via context (#3380).
+ To do this, we create the temp directory as a subdirectory
+ of the working directory. Since context mk IV by default looks
+ for images in the parent directory, this works.
+ + Use `report` instead of `warn`, make it sensitive to verbosity settings.
+ + Use `fillMediaBag` and `extractMedia` to extract media to temp dir.
+ This reduces code duplication.
+ + `html2pdf`: use stdin instead of intermediate HTML file
+ + Removed useless `TEXINPUTS` stuff for `context2pdf`. mkiv context
+ doesn't use `TEXINPUTS`.
+
+ * `Text.Pandoc.Pretty`:
+
+ + Simplified definition of `realLength`.
+ + Don't error for blocks of size < 1. Instead, resize to 1 (see #1785).
+
+ * `Text.Pandoc.MIME`:
+
+ + Use `application/javascript` (not `application/x-javascript`).
+ + Added `emf` to mimeTypes with type `application/x-msmetafile` (#1713).
+
+ * `Text.Pandoc.ImageSize`:
+
+ + Improve SVG image size code (Marc Schreiber, #3580).
+ + Make `imageSize` recognize basic SVG dimensions (Mauro Bieg, #3462).
+
+ * Use `Control.Monad.State.Strict` throughout. This gives 20-30% speedup
+ and reduction of memory usage in most of the writers.
+
+ * Use `foldrWithKey` instead of deprecated `foldWithKey`.
+
+ * `Text.Pandoc.SelfContained`:
+
+ + Fixed problem with embedded fonts (#3629).
+ + Refactored getData from `getDataURI` in `SelfContained`.
+ + Don't use data URIs for script or style (#3423). Instead, just use
+ script or style tags with the content inside. The old method with
+ data URIs prevents certain optimizations outside pandoc. Exception:
+ data URIs are still used when a script contains `</script>` or a
+ style contains `</`.
+ + SelfContained: Handle URL inside material retrieved from a URL
+ (#3629). This can happen e.g. with an @import of a google web font.
+ (What is imported is some CSS which contains an url reference
+ to the font itself.) Also, allow unescaped pipe (|) in URL.
+ + Load resources from `data-src` (needed for lazy loading in
+ reveal.js slide shows).
+ + Handle `data-background-image` attribute on section (#3979).
+
+ * `Text.Pandoc.Parsing`:
+
+ + Added `indentWith` (Alexander Krotov, #3687).
+ + Added `stateCitations` to `ParserState`.
+ + Removed `stateChapters` from `ParserState`.
+ + In `ParserState`, make `stateNotes'` a Map, add `stateNoteRefs`.
+ + Added `gobbleSpaces` and `gobbleAtMostSpaces`.
+ + Adjusted type of `insertIncludedFile` so it can be used with token
+ parser.
+ + Replace old texmath macro stuff from Parsing. Use Macro from
+ Text.Pandoc.Readers.LaTeX.Types instead.
+ + Export `insertIncludedFile`.
+ + Added `HasLogMessages`, `logMessage`, `reportLogMessages` (#3447).
+ + Replace partial with total function (Albert Krewinkel).
+ + Introduce `HasIncludeFiles` type class (Albert Krewinkel). The
+ `insertIncludeFile` function is generalized to work with all parser
+ states which are instances of that class.
+ + Add `insertIncludedFilesF` which returns F blocks (Albert Krewinkel).
+ The `insertIncludeFiles` function was generalized and renamed
+ to `insertIncludedFiles'`; the specialized versions are based on that.
+ + `many1Till`: Check for the end condition before parsing (Herwig
+ Stuetz). By not checking for the end condition before the first
+ parse, the parser was applied too often, consuming too much of the
+ input. This only affects `many1Till p end` where `p` matches on a
+ prefix of `end`.
+ + Provide `parseFromString` (#3690). This is a verison of
+ `parseFromString` specialied to ParserState, which resets
+ `stateLastStrPos` at the end. This is almost always what we want.
+ This fixes a bug where `_hi_` wasn't treated as emphasis in the
+ following, because pandoc got confused about the position of the
+ last word: `- [o] _hi_`.
+ + Added `takeP`, `takeWhileP` for efficient parsing of `[Char]`.
+ + Fix `blanklines` documentation (Alexander Krotov, #3843).
+ + Give less misleading line information with `parseWithString`.
+ Previously positions would be reported past the end of the chunk.
+ We now reset the source position within the chunk and report
+ positions "in chunk."
+ + Add `anyLineNewline` (Alexander Krotov).
+ + Provide shared F monad functions for Markdown and Org readers
+ (Albert Krewinkel). The `F` monads used for delayed evaluation
+ of certain values in the Markdown and Org readers are based on a
+ shared data type capturing the common pattern of both `F` types.
+ + Add `returnF` (Alexander Krotov).
+ + Avoid parsing `Notes:**` as a bare URI (#3570). This avoids parsing
+ bare URIs that start with a scheme + colon + `*`, `_`, or `]`.
+ + Added `readerAbbreviations` to `ParserState`. Markdown reader
+ now consults this to determine what is an abbreviation.
+ + Combine grid table parsers (Albert Krewinkel, #3638). The grid table
+ parsers for markdown and rst was combined into one single
+ parser `gridTable`, slightly changing parsing behavior of both
+ parsers: (1) The markdown parser now compactifies block content
+ cell-wise: pure text blocks in cells are now treated as paragraphs
+ only if the cell contains multiple paragraphs, and as plain blocks
+ otherwise. Before, this was true only for single-column tables. (2)
+ The rst parser now accepts newlines and multiple blocks in header
+ cells.
+ + Generalize tableWith, gridTableWith (Albert Krewinkel).
+ The parsing functions `tableWith` and `gridTableWith` are generalized
+ to work with more parsers. The parser state only has to be an
+ instance of the `HasOptions` class instead of requiring a concrete
+ type. Block parsers are required to return blocks wrapped into a
+ monad, as this makes it possible to use parsers returning results
+ wrapped in `Future`s.
+
+ * `Text.Pandoc.Shared`:
+
+ + Simplify `toRomanNumeral` using guards (Alexander Krotov, #3445)
+ + `stringify`: handle Quoted better (#3958). Previously we were losing
+ the quotation marks in Quoted elements.
+
+ * `Text.Pandoc.Writers.Shared`:
+
+ + Export `metaToJSON'`, `addVariablesToJSON` (#3439).
+ This allows us to add the variables AFTER using the metadata
+ to generate a YAML header (in the Markdown writer).
+ + Added `unsmartify` (previously in RST writer).
+ Undo literal double curly quotes. Previously we left these.
+ + Generalize type of `metaToJSON` so it can take a Text. Previously a
+ String was needed as argument; now any ToJSON instance will do.
+ + Added `gridTable` (previously in Markdown writer).
+ + `gridTable`: Refactored to use widths in chars.
+ + `gridTable`: remove unnecessary extra space in cells.
+ + Fixed `addVariablesToJSON`. It was previously not allowing multiple
+ values to become lists.
+ + Pipe tables: impose minimum cell size (see #3526).
+
+
+ [default template changes]
+
+ * HTML templates (including EPUB and HTML slide show templates):
+
+ + Make default.html5 polyglot markup conformant (John Luke Bentley,
+ #3473). Polyglot markup is HTML5 that is also valid XHTML. See
+ <https://www.w3.org/TR/html-polyglot>. With this change, pandoc's
+ html5 writer creates HTML that is both valid HTML5 and valid XHTML.
+ + Regularized CSS in html/epub/html slide templates (#3485).
+ All templates now include `code{white-space: pre-wrap}`
+ and CSS for `q` if `--html-q-tags` is used. Previously some templates
+ had `pre` and others `pre-wrap`; the `q` styles were only sometimes
+ included.
+ + CSS for `.smallcaps`, (Mauro Bieg, #1592)
+ + `default.revealjs`: make `history` default to true.
+ + `default.revealjs`: use lazy loading (#2283).
+ + `default.revealjs`: add `mathjax` variable and some conditional code
+ to use the MathJaX plugin.
+ + `default.slidy` uses `https` instead of `http` (ickc, #3848).
+ + `default.dzslides`: Load Google Font using HTTPS by default
+ (Yoan Blanc).
+
+ * DocBook5 template: Use `lang` and `subtitle` variables (Jens Getreu,
+ #3855).
+
+ * LaTeX/Beamer template:
+
+ + Combine LaTeX/Beamer templates (Andrew Dunning, #3878).
+ `default.beamer` has been removed; beamer now uses the
+ `default.latex` template. Beamer-specific parts are conditional
+ on the `beamer` variable set by the writer. Note that
+ `pandoc -D beamer` will return this (combined) template.
+ + Use `xcolor` for `colorlinks` option (Andrew Dunning, #3877).
+ Beamer loads `xcolor` rather than `color`, and thus the
+ `dvipsnames` option doesn't take effect. This also provides a wider
+ range of colour selections with the `svgnames` option.
+ + Use starred versions of `xcolor` names (Andrew Dunning).
+ Prevents changes to documents defined using the `dvipsnames` list (e.g.
+ `Blue` gives a different result with svgnames enabled).
+ + Load `polyglossia` after header-includes (#3898). It needs to be
+ loaded as late as possible.
+ + Use `unicode-math` (Vaclav Haisman). Use `mathspec` with only
+ XeLaTeX on request.
+ + Don't load `fontspec` before `unicode-math` (over there).
+ The `unicode-math` package loads `fontspec` so explict loading of
+ `fontspec` before `unicode-math` is not necessary.
+ + Use `unicode-math` by default in default.latex template. mathspec will
+ be used in xelatex if the `mathspec` variable is set; otherwise
+ unicode-math will be used (Václav Haisman).
+ + Use `dvipsnames` options when `colorlinks` specified (otherwise
+ we get an error for `maroon`) (Thomas Hodgson).
+ + Added beamer `titlegraphic` and `logo` variables (Thomas Hodgson).
+ + Fix typo in fix for notes in tables (#2378, zeeMonkeez).
+ + Fix `hyperref` options clash (Andrew Dunning, #3847) Avoids an options
+ clash when loading a package (e.g. `tufte-latex`) that uses
+ `hyperref` settings different from those in the template.
+ + Add `natbiboptions` variable (#3768).
+ + Fix links inside captions in LaTeX output with links-as-notes
+ (Václav Haisman, #3651). Declare our redefined `\href` robust.
+ + Load `parskip` before `hyperref` (Václav Haisman, #3654).
+ + Allow setting Japanese fonts when using LuaLaTeX (Václav Haisman,
+ #3873). by using the `luatexja-fontspec` and `luatexja-preset`
+ packages. Use existing `CJKmainfont` and `CJKoptions` template
+ variables. Add `luatexjafontspecoptions` for `luatexja-fontspec`
+ and `luatexjapresetoptions` for `luatexja-preset`.
+ + Added `aspectratio` variable to beamer template (Václav Haisman,
+ #3723).
+ + Modified template.latex to fix XeLaTex being used with tables
+ (lwolfsonkin, #3661). Reordered `lang` variable handling to
+ immediately before `bidi`.
+
+ * ConTeXt template: Improved font handling: `simplefonts` is now
+ obsolete in ConTeXt (Pablo Rodríguez).
+
+
+ [documentation improvements]
+
+ * MANUAL.txt:
+
+ + Add URL for Prince HTML > PDF engine (Ian, #3919).
+ + Document that content above slide-level will be omitted in
+ slide shows. See #3460, #2265.
+ + Explain `--webtex` SVG url (Mauro Bieg, #3471)
+ + Small clarification in YAML metadata section.
+ + Document that html4 is technically XHTML 1.0 transitional.
+ + Remove refs to highlighting-kate (#3672).
+ + Document ibooks specific epub metadata.
+ + Clarify that mathml is used for ODT math.
+ + Mention limitations of Literate Haskell Support (#3410,
+ Joachim Breitner).
+ + Add documentation of limitations of grid tables (Stephen
+ McDowell, #3864).
+ + Clarify that meta-json contains transformed values (Jakob Voß,
+ #3491) Make clear that template variable `meta-json` does not
+ contain plain text values or JSON output format but field values
+ transformed to the selected output format.
+
+ * COPYRIGHT:
+
+ + Clarify that templates are dual-licensed.
+ + Clarify that pandoc-types is BSD3 licensed.
+ + List new files not written by jgm (Albert Krewinkel).
+ + Update dates in copyright notices (Albert Krewinkel). This follows
+ the suggestions given by the FSF for GPL licensed software.
+ <https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html>
+
+ * INSTALL.md:
+
+ + Improved instructions for tests with patterns.
+ + Put RPM-based distros on separate point (Mauro Bieg, #3449)
+
+ * CONTRIBUTING.md:
+
+ + Fixed typos (Wandmalfarbe, #3479).
+ + Add "ask on pandoc-discuss" (Mauro Bieg).
+
+ * Add lua filter documentation in `doc/lua-filters.md`. Note that the
+ end of this document is autogenerated from `data/pandoc.lua`
+ using `make doc/lua-filters.md`, which uses `tools/ldoc.ltp`
+ (Albert Krewinkel).
+
+ * Add `doc/filters.md`. This is the old scripting tutorial from
+ the website.
+
+ * Add `doc/using-the-pandoc-api.md` (#3289). This gives an introduction
+ to using pandoc as a Haskell library.
+
+
+ [build infrastructure improvements]
+
+ * Removed `data/templates` submodule. Templates are now a subtree
+ in `data/templates`. This removes the need to do `git submodule
+ update`.
+
+ * Renamed `tests` -> `test`.
+
+ * Remove `https` flag. Always build with HTTPS support.
+
+ * Use `file-embed` instead of `hsb2hs` to embed data files when
+ `embed_data_files` flag is set. `file-embed` gives us better dependency
+ tracking: if a data file changes, ghc/stack/cabal know to recompile
+ the Data module. This also removes `hsb2hs` as a build dependency.
+
+ * Add `custom-setup` stanza to pandoc, lowercase field names.
+
+ * Add `static` Cabal flag.
+
+ * Name change OSX -> MacOS. Add a -MacOS suffix to mac package rather
+ than -OSX. Changed local names from osx to macos.
+
+ * make_macos_package.sh - Use strip to reduce executable size.
+
+ * Revised binary linux package. Now a completely static executable
+ is created, using Docker and alpine. We create both a deb and a
+ tarball. The old `deb` directory has been replaced with a `linux`
+ directory. Running `make` in the `linux` directory should
+ perform the build, putting the binary packages in `artifacts/`.
+
+ * `linux/control.in`: add `Replaces:`, so existing pandoc-citeproc and
+ pandoc-data packages will be uninstalled; this package provides
+ both (#3822). Add latex packages as 'suggested', update
+ description.
+
+ * Remove cpphs build requirement -- it is no longer needed.
+
+ * Replaced `{deb,macos,windows}/stack.yaml` with `stack.pkg.yaml`.
+
+ * Name change OSX -> macOS (ickc, #3869).
+
+ * Fix casing of Linux, UNIX, and Windows (ickc).
+
+ * `.travis.yml`: create a source dist and do cabal build and test there.
+ That way we catch errors due to files missing from the data
+ section of pandoc.cabal.
+
+ * Makefile:
+
+ + Split `make haddock` from `make full`.
+ + Add BRANCH variable for winpkg.
+ + Add `lint` target.
+ + Improve `make full`. Disable optimizations.
+ Build everything, inc. trypandoc and benchmarks. Use parallel build.
+ + Allow `make test` to take `TESTARGS`.
+
+ * Added new command tests (`Tests.Command`), using small text files
+ in `test/command/`. Any files added in this directory will be treated
+ as shell tests (see smart.md for an example). This makes it very easy
+ to add regression tests etc.
+
+ * Test fixes so we can find data files. In old tests & command tests,
+ we now set the environment variable `pandoc_datadir`. In lua tests,
+ we set the datadir explicitly.
+
+ * Refactored `compareOutput` in docx writer test.
+
+ * Consolidated some common functions in `Tests.Helper`.
+
+ * Small change to unbalanced bracket test to speed up test suite.
+
+ * Speed up Native writer quickcheck tests.
+
+ * Use tasty for tests rather than test-framework.
+
+ * Add simple Emacs mode to help with Pandoc templates editing.
+ (Václav Haisman, #3889). `tools/pandoc-template-mode.el`
- * Require skylighting >= 0.1.1.4.
- * Adjust test output for skylighting version.
- * Relax upper bounds on blaze-html and blaze-markup.
pandoc (1.19.2)
@@ -319,11 +3545,11 @@ pandoc (1.19)
3. does some postprocessing of the paragraphs that combines tables
followed immediately by captions
- The ODT writer used the `TableCaption` style for the caption
- paragraph. This commit follows the OpenOffice approach which allows
- for appending captions to table but uses a built-in style named
- `Table` instead of `TableCaption`. Users of a custom `reference.odt`
- should change the style's name from `TableCaption` to `Table`.
+ The ODT writer used the `TableCaption` style for the caption
+ paragraph. This commit follows the OpenOffice approach which allows
+ for appending captions to table but uses a built-in style named
+ `Table` instead of `TableCaption`. Users of a custom `reference.odt`
+ should change the style's name from `TableCaption` to `Table`.
* ODT reader: Infer tables' header props from rows (#3199,
Hubert Plociniczak). ODT reader simply provided an empty header list
@@ -3274,7 +6500,7 @@ pandoc (1.13.2.1)
pandoc (1.13.2)
- * TWiki Reader: add new new twiki reader (API chaneg, Alexander Sulfrian).
+ * TWiki Reader: add new new twiki reader (API change, Alexander Sulfrian).
* Markdown reader:
@@ -3552,23 +6778,23 @@ pandoc (1.13.2)
Now we still support those, but also support the format recommended
for epub metadata in the pandoc README:
- ---
- title:
- - type: main
- text: My Book
- - type: subtitle
- text: An investigation of metadata
- creator:
- - role: author
- text: John Smith
- - role: editor
- text: Sarah Jones
- identifier:
- - scheme: DOI
- text: doi:10.234234.234/33
- publisher: My Press
- rights: (c) 2007 John Smith, CC BY-NC
- ...
+ ---
+ title:
+ - type: main
+ text: My Book
+ - type: subtitle
+ text: An investigation of metadata
+ creator:
+ - role: author
+ text: John Smith
+ - role: editor
+ text: Sarah Jones
+ identifier:
+ - scheme: DOI
+ text: doi:10.234234.234/33
+ publisher: My Press
+ rights: (c) 2007 John Smith, CC BY-NC
+ ...
* `Text.Pandoc.Templates.getDefaultTemplate`:
don't fail when called with "fb2" (#1660).
@@ -5291,6 +8517,8 @@ pandoc (1.12)
+ Export `varListToJSON`.
* `Text.Pandoc.PDF` exports `makePDF` instead of `tex2pdf`.
+ The signature of `makePDF` has changed and now contains
+ an additional argument for pdf engine options.
* `Text.Pandoc`:
@@ -5313,6 +8541,8 @@ pandoc (1.12)
+ All bibliography-related fields have been removed from
`ReaderOptions` and `WriterOptions`: `writerBiblioFiles`,
`readerReferences`, `readerCitationStyle`.
+ + Removed `writerPdfArgs` from `WriterOptions`. These are now
+ passed in as a parameter to `makePDF`.
* The `Text.Pandoc.Biblio` module has been removed. Users of the
pandoc library who want citation support will need to use
@@ -8564,7 +11794,7 @@ pandoc (1.5)
* Added Maybe datadir parameter to readDataFile, saveOpenDocumentAsODT,
latexMathMLScript, s5HeaderIncludes, and getDefaultTemplate. If
- Nothing, no user directory is searched for an override.
+ Nothing, no user directory is searched for an override.
* Added 'plain' output format. This is similar to markdown, but
removes links, pictures, inline formatting, and most anything that
@@ -8678,8 +11908,8 @@ pandoc (1.5)
+ Allow footnotes to be indented < 4 spaces.
This fixes a regression. A test case has been added.
+ Escape spaces in URLs as %20. Previously they were incorrectly
- escaped as +, which is appropriate only for the query part of
- a URL. Resolves Issue #220.
+ escaped as +, which is appropriate only for the query part of
+ a URL. Resolves Issue #220.
+ Require two spaces after capital letter + period for list item.
Otherwise "E. coli" starts a list. This might change the semantics
of some existing documents, since previously the two-space
@@ -8806,7 +12036,7 @@ pandoc (1.4)
* Pandoc no longer requires Template Haskell. Resolves Issue #186.
+ Removed need for TH in ODT module. Instead get reference.odt from
- data file at run time.
+ data file at run time.
+ Removed TH dependency from S5 module. S5 module now exports
s5HeaderIncludes, which pandoc.hs includes if writer is s5 and
standalone.
@@ -8823,7 +12053,7 @@ pandoc (1.4)
on unix), or, if not found there, from the system data
directory ($CABALDIR/shared/pandoc-VERSION/). All data
files, including templates, LaTeXMathML.js, s5 styles,
- and reference.odt, can be overridden by the user.
+ and reference.odt, can be overridden by the user.
* s5 files moved from data/ui/default to s5/default.
@@ -8848,7 +12078,7 @@ pandoc (1.4)
* Added --reference-odt option, so users may customize the styles
used in pandoc-generated ODT files. Users may also place a
- default reference.odt in the ~\.pandoc directory.
+ default reference.odt in the ~\.pandoc directory.
* ODT writer:
+ Indented and line-broke styles.xml so it can be modified more easily.
@@ -8932,8 +12162,8 @@ pandoc (1.3)
* Treat a backslash followed by a newline as a hard line break
in markdown. Resolves Issue #154. This is a nice alternative
- to markdown's "invisible" way of indicating hardline breaks
- using lines that end with two spaces.
+ to markdown's "invisible" way of indicating hardline breaks
+ using lines that end with two spaces.
* Improved performance of markdown reader by ~10% by eliminating the
need for a separate parsing pass for notes. Raw notes are now stored
@@ -8944,7 +12174,7 @@ pandoc (1.3)
* In markdown reader, treat 4 or more * or _ in a row as literal
text. (Trying to parse long strings of * or _ as strong or emph
- leads to exponential performance problems.)
+ leads to exponential performance problems.)
* Markdown reader: Use + rather than %20 for spaces in URLs.
@@ -8962,8 +12192,8 @@ pandoc (1.3)
* Modified html+lhs output to use "haskell" highlighter instead
of "literateHaskell". The highlighting module now adds bird tracks
- after highlighting (for HTML output), if the code block has the
- "literate" class. This gives better results, because kate's
+ after highlighting (for HTML output), if the code block has the
+ "literate" class. This gives better results, because kate's
haskell highlighter is much better than the literateHaskell
highlighter.
@@ -9084,7 +12314,7 @@ pandoc (1.2.1)
explicit marker. For example:
A. my list
- #. continued
+ #. continued
Resolves Issue #140.
+ Allow continuation lines in line blocks. Also added test cases for
@@ -9117,7 +12347,7 @@ pandoc (1.2.1)
* Added new Haskell version of markdown2pdf, due to
Paulo Tanimoto. This should be more portable than the old
- shell script.
+ shell script.
* Made 'pandoc -v' more explicit about compiler options.
Resolves Issue #139.
@@ -9267,7 +12497,7 @@ pandoc (1.1)
* Text.Pandoc.Shared: Modified wrappedTeX to eliminate the line break
between a footnote and immediately following nonspace characters in
LaTeX and ConTeXt output. (This gets interpreted as a space, which
- is not desired in cases like "text^[note]---".) Resolves Issue #93.
+ is not desired in cases like `text^[note]---`.) Resolves Issue #93.
* Windows installer: Don't require admin privileges to run
installer. Modified pandoc-setup.iss, and changed modpath.iss to
@@ -10773,8 +14003,8 @@ pandoc (0.3) unstable; urgency=low
* Revised footnote syntax. (See README for full details.) The
'[^1]' format now standard in markdown extensions is supported,
- as are inline footnotes with this syntax: '^[My note.]'.
- The earlier footnote syntax '^(1)' is no longer supported.
+ as are inline footnotes with this syntax: `^[My note.]`.
+ The earlier footnote syntax `^(1)` is no longer supported.
* Improved HTML representation of footnotes. All footnotes
are now auto-numbered and appear in an ordered list at the