From 3b80a6adb4a7d585662772582b6c9719aa39d83b Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sat, 28 Sep 2019 10:22:22 -0700
Subject: [PATCH] Update changelog.

---
 changelog | 562 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 560 insertions(+), 2 deletions(-)

diff --git a/changelog b/changelog
index a209e4782..e22b924c0 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,561 @@
+pandoc (2.8 PROVISIONAL)
+
+  * Add `-L` option as shortcut for `--lua-filter`.
+
+  * Add `--shift-heading-level-by` option and deprecate
+    `--base-heading-level` (#5615). The new option does
+   everything the old one does, but also allows negative shifts.
+   It also promotes the document metadata (if not null) to a
+   level-1 heading with a +1 shift, and demotes an initial
+   level-1 heading to document metadata with a -1 shift. This
+   supports converting documents that use an initial level-1
+   heading for the document title.
+
+  * Allow `--metadata-file` to be used repeatedly to include
+    multiple metadata files (Owen McGrath, #5702). Values in
+    files specified first will be used instead of those in later
+    files.
+
+  * `--ascii` now uses numerical hex character references (#5718).
+
+  * When `--ipynb-output` is used with the default "best" format, strip
+    ANSI escape codes for non-ipynb output (#5633).  These cause problems
+    in many formats, including LaTeX.
+
+  * Don't look for template files remotely for remote input (#5579).
+    Previously pandoc would look for the template at a remote URL when a
+    URL was used for the input file, instead of taking it from the
+    data directory.
+
+  * Don't add a newline to fragment output if there's already one.
+
+  * Change exit codes and document in MANUAL.txt:
+
+    + `PandocAppError` was 1, is now 4
+    + `PandocOptionError` was 2, is now 6
+    + `PandocMakePDFError` was 65, is now 66
+
+  * RST reader:
+
+    + Keep `name` property in `imgAttr` (Brian Leung, #5619).
+    + Fixed parsing of indented blocks (#5753).  We were requiring
+      consistent indentation, but this isn't required by RST.
+    + Use title, not admonition-title, for admonition title.
+      This puts RST reader into alignment with docbook reader.
+
+  * Org reader:
+
+    + Accept `ATTR_LATEX` in block attributes (Albert Krewinkel, #5648).
+      Attributes for LaTeX output are accepted as valid block attributes;
+      however, their values are ignored.
+    + Modify handling of example blocks (Brian Leung, #5717).
+    + Allow the `-i` switch to ignore leading spaces (Brian Leung).
+    + Handle awkwardly-aligned code blocks within lists (Brian Leung).
+      Code blocks in Org lists must have their `#+BEGIN_` aligned in a
+      reasonable way, but their other components can be
+      positioned otherwise.
+
+  * Muse reader:
+
+    + Add RTL support (Alexander Krotov, #5551).
+
+  * JIRA writer:
+
+    + Remove escapeStringForJira for code blocks (Jan-Otto Kröpke).
+
+  * Docx reader:
+
+    + Move style-parsing-specific code to a new unexported module,
+      Text.Pandoc.Readers.Docx.Parse.Styles.
+    + Move StyleMap to docx writer.
+
+  * Docbook reader:
+
+    + Richer parse for admonitions (Michael Peyton Jones, #1234).
+      Instead of parsing admonitions as blockquotes, we now parse
+      them as Divs with an appropriate class. We also handle titles
+      for admonitions as a nested Div with the "title" class.
+
+  * Markdown writer:
+
+    + Ensure proper nesting when we have long ordered list markers (#5705).
+    + Make `plain` output plainer (#5741).  Previously we used the following
+      Project Gutenberg conventions for plain output: extra space before and
+      after level 1 and 2 headings, all-caps for strong emphasis,
+      underscores surrounding regular emphasis. Now these
+      conventions are used only when the `gutenberg` extension is
+      enabled. By default, Strong and Emph are rendered without
+      special formatting, and headings are rendered without
+      special formatting, and with only one blank line following.
+      To restore the former behavior, use `-t plain+gutenberg`.
+    + Prefer using raw_attribute when enabled (#4311).
+      The `raw_attribute` will be used to mark raw bits, even HTML
+      and LaTeX, and even when `raw_html` and `raw_tex` are
+      enabled, as they are by default. To get the old behavior,
+      disable `raw_attribute` in the writer.
+
+  * AsciiDoc writer:
+
+    + Don't include `+` in code blocks for regular asciidoc.
+      This is asciidoctor-specific.
+    + Handle admonitions (#5690).
+
+  * LaTeX writer:
+
+    + Add thin space when needed in LaTeX quote ligatures (#5684).
+    + Use `\hspace{0pt}` for 0-width space U+200B (#5756).
+    + Use `cslreferences` environment for csl bibliographies.
+      This allows bibliographies to receive special formatting.
+      The template now contains definition of this environment (enabled
+      only when CSL is used).  It also defines a `\cslhangindent` length.
+      This is set to 2em by default when the bibliography style specifies
+      a hanging indent.  To override the length, you can use e.g.
+      `\setlength{\cslhangindent}{7em}` in header-includes.
+      See jgm/pandoc-citeproc#410.
+    + Strip off `{}` around locator for biblatex/natbib output (#5722).
+    + Fix line breaks at start of paragraph (#3324).
+      Previously we just omitted these. Now we render them
+      using `\hfill\break` instead of `\\`.  This is a revision
+      of a PR by @sabine (#5591) who should be credited with the idea.
+    + We no longer look in the template or header-includes to see if a
+      book or article documentclass is used, or to see whether the
+      `csquotes` package is used. To use `csquotes` for LaTeX, set
+      `csquotes` in your variables or metadata. To specify a book
+      style, use the `documentclass` variable or
+      `--top-level-division`.
+
+  * ConTeXt writer:
+
+    + Add option to include source files in ConTeXt PDFs (Tristan
+      Stenner, #5578). The metadata field or variable
+      (`includesource`) can be set to attach the source documents
+      to the resulting PDF.
+    + Customizable type of PDF/A for the ConTeXt writer (Karl
+      Pettersson, #5608).  The `pdfa` variable may now be set in metadata.
+      Also updated color profile settings in accordance with ConTeXt wiki,
+      and made ICC profile and output intent for PDF/A customizable
+      using `pdfaiccprofile` and `pdfaintent`.
+    + Unit tests: adjust code property to avoid an irrelevant
+      failure involving inline code with two consecutive newlines.
+
+  * HTML writer:
+
+    + Use numeric character references with `--ascii` (#5718).
+      Previously we used named character references with html5 output.
+      But these aren't valid XML, and we aim to produce html5 that is
+      also valid XHTML (polyglot markup).  (This is also needed for epub3.)
+    + Ensure that line numbers in code blocks get id-prefix (#5650).
+    + Ensure TeX formulas are rendered correctly (Philip Pesca,
+      #5658). The web service passed in to `--webtex` may render
+      formulas using inline or display style by default.
+      Prefixing formulas with the appropriate command ensures
+      they are rendered correctly.
+    + Render inline formulas correctly with `--webtex` (Philip
+      Pesca, #5655). We add `\textstyle` to the beginning of the
+      formula to ensure it will be rendered in inline style.
+    + Pass through `aria-` attributes to HTML5 (#5642).
+
+  * EPUB writer:
+
+    + Improve splitting into chapters (#5761), using `makeSection`.
+    + Avoid issuing warning multiple times when title not set (see #5760).
+    + Use svg tag wrapper for cover image (#5638).  In addition, the
+      code generating the image has been moved to the template, to make it
+      more customizable. NOTE: Those who use custom EPUB
+      templates will need to adjust their templates, adding the
+      code to generate the cover image. (Previously this was just
+      inserted into 'body'.)
+    + Improve toChapters, making it work better if there are Divs
+      around sections.
+    + Add support for EPUB2 covers (blmage, #3992).
+    + Do not override existing "fileN" medias when writing to EPUB format
+      (blmage, #4206).
+
+  * RST writer:
+
+    + Removed remnants of `admonition-title`.
+
+  * Dokuwiki writer:
+
+    + Handle mixed lists without HTML fallback (#5107).
+
+  * XWiki writer:
+
+    + Fix multiline table (Zihang Chen, #5683).
+
+  * Muse writer:
+
+    + Add RTL support (Alexander Krotov, #5551).
+
+  * Man writer:
+
+    + Suppress non-absolute link URLs (#5770).  Absolute URLs are
+      still printed in parentheses following the link text, but relative
+      URLs are suppressed (just as internal links starting with '#'
+      always have been).
+    + Improved definition list term output.  Now we boldface code but
+      not other things. This matches the most common style in man pages
+      (particularly option lists).
+
+  * Ms writer:
+
+    + Use `.LP` instead of `.PP` for line block (#5588).
+
+  * JATS writer:
+
+    + Do not emit empty `<fn-group>` (Mauro Bieg, #5595).
+    + Update template to v1.1dtd (#5632, Arfon Smith).
+    + Update `data/jats.csl` to avoid commas between editor
+      name-part elements. (#5629)
+    + Add `abstract` to template (Mauro Bieg).
+
+  * OpenDocument writer:
+
+    + Avoid duplicate attributes (#4634). We use the innermost
+      attribute in nested cases.
+    + If `native_numbering` extension is set, use native OpenDocument
+      enumeration for figures and tables (Nils Carlson).
+
+  * ODT writer:
+
+    + Add a test for MathML formulas in ODT documents (blmage).
+    + Improve the parsing of frames in ODT documents (blmage).
+
+  * Docx writer:
+
+    + Make handling of styles more robust in localized versions
+      of Word (Nikolay Yakimov, #5523, #5052, #5074).  We now use
+      style names, not ids, for assigning semantic meaning, since
+      the ids can change depending on the locale. Style name
+      comparisons are case-insensitive, since those are
+      case-insensitive in Word. Since docx style names can have
+      spaces in them, and pandoc-markdown classes can't, anywhere
+      when style name is used as a class name, spaces are
+      replaced with ASCII dashes `-`. Code styles, i.e. "Source
+      Code" and "Verbatim Char" now honor style inheritance. Docx
+      Reader now honours "Compact" style (used in
+      Pandoc-generated docx). The side-effect is that "Compact"
+      style no longer shows up in docx+styles output. Styles
+      inherited from "Compact" will still show up.
+    + Re-use Readers.Docx.Parse for StyleMap (#5766, Nikolay Yakimov).
+    + Internal improvements and code simplification (Nikolay Yakimov).
+    + Preserve built-in styles in DOCX with custom style (Ben Steinberg,
+      #5670).  This change prevents custom styles on divs and spans
+      from overriding styles on certain elements inside them, like
+      headings, blockquotes, and links. On those elements, the
+      "native" style is required for the element to display correctly.
+      This change also allows nesting of custom styles; in order to do so,
+      it removes the default "Compact" style applied to Plain blocks,
+      except when inside a table.
+    + Add `proofState` to list of elements carried over from
+      settings.xml in the reference.docx (Krystof Beuermann, #5703).
+    + Change order of `ilvl` and `numId` in `document.xml` (Agustín
+      Martín Barbero, #5645). Also, make list para properties go first.
+      This reordering of properties shouldn't be necessary but
+      it seems Word Online does not understand the docx correctly otherwise.
+
+  * PowerPoint writer:
+
+    + Code formatting is now context dependent (Jeroen de Haas, #5573).
+      This commit alters the way in which the Powerpoint writer treats
+      inline code and code blocks. Inline code is now formatted at
+      the same size as the surrounding text. Code blocks are now given
+      a margin and font size according to their level.
+      Furthermore this commit allows changing the font with which code is
+      formatted via the `monofont` option.
+    + Start numbering at appopriate numbers (Jesse Rosenthal, #5709).
+      Starting numbers for ordered lists were previously ignored. Now
+      we specify the number if it is something other than 1.
+
+  * Text.Pandoc.Parsing:
+
+    + Add `stateAllowLineBreaks` to `ParserState` [API change].
+    + Fix inline parsing in grid table cells (#5708).
+    + Change type of `setLastStrPos` so it takes a `Maybe SourcePos`
+      rather than a `SourcePos` [API change].
+    + Make `parseFromString'` and `gridTableWith` and
+      `gridTableWith'` polymorphic in the parser state,
+      constraining it with `HasLastStrPosition` [API change].
+    + `parseFromString'`: reset `stateLastStrPos` to `Nothing` before parse.
+
+  * Text.Pandoc.PDF:
+
+    + For PDFs via HTML, ensure temp file is deleted even if the pdf
+      program is not found (#5720).
+    + Better detection of a Cygwin environment (#5451).
+
+  * Text.Pandoc.Extensions:
+
+    + Add `Ext_gutenberg` constructor to `Extension` [API change].
+    + Add `Ext_native_numbering` constructor to `Extension` [API change]
+      (Nils Carlson).
+
+  * Text.Pandoc.App
+
+    + Change `optMetadataFile` type from `Maybe FilePath` to `[FilePath]`
+      (Owen McGrath, #5702) [API change].
+
+  * MediaWiki reader:
+
+    + Skip optional `{{table}}` template (#5757).
+
+  * Text.Pandoc.Logging:
+
+    + Add `CouldNotDeduceFormat` constructor to `LogMessage` [API change].
+      Issue this warning when we're falling back to markdown or
+      html because we don't recognize the extension of the input or
+      output files.
+    + Clarify warning for missing title (#5760).
+    + Add `UnusualConversion` constructor to `LogMessage` [API change]
+      (Mauro Bieg, #5736).  Emit warning on `-f latex -o out.pdf`.
+
+  * Lua filters:
+
+    + Improve function documentation (Albert Krewkinkel).
+    + Traverse nested blocks and inlines in correct order (Albert
+      Krewinkel, #5667). Traversal methods are updated to use the new
+      Walk module so that sequences with nested Inline (or Block) elements
+      are traversed in the order in which they appear in the linearized
+      document.
+    + New unexported module `Text.Pandoc.Lua.Walk` (Albert Krewinkel).
+      Lua filters must be able to traverse sequences of AST
+      elements and to replace elements by splicing sequences back
+      in their place. Special `Walkable` instances can be used for
+      this; those are provided in a new module
+      `Text.Pandoc.Lua.Walk`.
+    + `Attr` values can now be given as normal Lua tables (Albert
+      Krewinkel, #5744).  This can be used as a convenient alternative
+      to constructing `Attr` values with `pandoc.Attr`. Identifiers
+      are taken from the `id` field, classes must be given as
+      space separated words in the `class` field. All remaining fields
+      are included as attributes. With this change, the following lines
+      now create equal elements:
+      ```
+      pandoc.Span('test', {id = 'test', class = 'a b', check = 1})
+      pandoc.Span('test', pandoc.Attr('test', {'a','b'}, {check = 1}))
+      ```
+      This also works when using the *attr* setter:
+      ```
+      local span = pandoc.Span 'text'
+      span.attr = {id = 'test', class = 'a b', check = 1}
+      ```
+      Furthermore, the *attributes* field of AST elements can now be a
+      plain key-value table even when using the `attributes` accessor:
+      ```
+      local span = pandoc.Span 'test'
+      span.attributes = {check = 1}   -- works as expected now
+      ```
+    + Export `make_sections`, remove `hierarchicalize`. Lua filters that
+      use `hierarchicalize` will need to be rewritten to use
+      `make_sections`.
+    + Add a `clone()` method to all AST elements (Albert Krewinkel, #5568).
+    + Fix Lua function names in pandoc.system (niszet). Change
+      `get_current_directory` to `get_working_directory` and
+      `with_temp_directory` to `with_temporary_directory`, to
+      conform to the manual.
+
+  * Text.Pandoc.Error:
+
+    + Better message for `PandocShouldNeverHappenError`.
+    + Better message for `PandocTemplateError`.
+
+  * Text.Pandoc.Emoji:
+
+    + Update emoji list (#5666). Done using new `tools/emojis.hs`,
+     which uses the list from the gem GitHub uses. Future updates
+     can be done with this tool.
+
+  * Text.Pandoc.PDF:
+
+    + Pass value of `--dpi` to `rsvg-convert` when converting SVG to PDF
+      in the process of creating a PDF (#5721).
+
+  * Markdown reader:
+
+    + Headers: don't parse content over newline boundary (#5714).
+    + Handle inline code more eagerly within lists (Brian Leung, #5627).
+    + Removed some needless lookaheads.
+
+  * LaTeX reader:
+
+    + Fix parsing of optional arguments that contain braced text (#5740).
+    + Don't try to parse includes if `raw_tex` is set (#5673).
+      When the `raw_tex` extension is set, we just carry through
+      `\usepackage`, `\input`, etc. verbatim as raw LaTeX.
+    + Properly handle optional arguments for macros (#5682).
+    + Fix `\\` in `\parbox` inside a table cell (#5711).
+    + Improve `withRaw` so it can handle cases where the token string is
+      modified by a parser (e.g. accent when it only takes part of a Word
+      token) (#5686).  This fixes a bug that caused the ends of
+      certain documents to be dropped.
+    + Handle `\passthrough` macro used by latex writer (#5659).
+    + Support tex `\tt` command (#5654).
+    + Search for image with list of extensions like latex does, if an
+      extension is not provided (#4933).
+    + Handle `\looseness` command values better (#4439).
+    + Add `mbox` and `hbox` handling (Vasily Alferov, #5586).
+      When `+raw_tex` is enabled, these are passed through literally.
+      Otherwise, they are handled in a way that emulates LaTeX's behavior.
+    + Properly handle `\providecommand` and `\provideenvironment` (#5635).
+      They are now ignored if the corresponding command or environment
+      is already defined.
+    + Support epigraph command in LaTeX Reader (oquechy, #3523).
+    + Ensure that expanded macros in raw LaTeX  end with a space
+      if the original did (#4442).
+    + Treat `ly` environment from lilypond as verbatim (Urs Liska, #5671).
+    + Add `tikzcd` to list of special environments (Eigil Rischel).
+      This allows it to be processed by filters, in the same way that
+      one can do for `tikzpicture`.
+
+  * Roff reader:
+
+    + Better support for `while`.
+    + More improvements in parsing conditionals.
+    + Fix problem parsing comments before macro.
+    + Improve handling of groups.
+    + Better parsing of groups (#5410).  We now allow groups
+      where the closing `\\}` isn't at the beginning of a line.
+
+  * Text.Pandoc.Shared:
+
+    + Replace `Element` and `makeHierarchical` with `makeSections`.
+      Now that we have Divs, we can use them to represent the
+      structure of sections, and we don't need a special Element type.
+      `makeSections` reorganizes a block list, adding Divs with class
+      `section` around sections, and adding numbering if needed.
+      This change also fixes some longstanding issues recognizing section
+      structure when the document contains Divs (#3057, see also #997).
+    + Remove `Element` type [API change]
+    + Remove `makeHierarchicalize` [API change]
+    + Add `makeSections` [API change]
+    + Export `deLink` [API change]
+    + Make `filterIpynbOutput` strip ANSI escapes from code in output
+      for non-ipynb formats, when the default "best" option is used with
+      `--ipynb-output` (#5633).
+
+  * Text.Pandoc.Slides: recognize content in Divs when determining
+    slide level.
+
+  * Text.Pandoc.SelfContained:
+
+    + Omit content-type on type attribute for `<style>` (#5725).
+      It doesn't seem to be valid for HTML5, and as a result Chrome
+      ignores the style element.
+
+  * Text.Pandoc.Pretty has been removed [API change].
+    We now use the new external doclayout module instead.
+
+  * Text.Pandoc.Writers.Shared:
+
+    + Remove `metaToJSON`, `metaToJSON'` [API change].
+    + Modify `addVariablesToContext`, `defField`, `setField`, `getField`,
+     `resetField` to work with Context rather than JSON values. [API change]
+    + Export new function `endsWithPlain` [API change].
+
+  * Text.Pandoc.Options
+
+    + Change type of `writerTemplate` to `Maybe Template` instead
+      of `Maybe String`.
+
+  * Text.Pandoc.XML:
+
+    + Change `toEntities` to emit numerical hex character references
+      (#5718).
+
+  * Text.Pandoc.Templates:
+
+    + Don't import/export `varListToJSON` [API change].  It is removed in
+      doctemplates >= 0.3.
+    + Change type of `renderTemplate'` [API change].  Return value is
+      now Text rather than being polymorphic.  This makes room for
+      upcoming removal of the `TemplateTarget` class from doctemplates.
+
+  * Improvements in templates system (from doctemplates-0.6.1):
+
+   + Pandoc templates now support a number of new features that
+     have been added in doctemplates: notably, partials and keywords
+     to control nesting and reflowing of text.
+   + We now used templates parameterized on doclayout Doc types.
+     The main impact of this change is better reflowing of content
+     interpolated into templates.  Previously, interpolated variables
+     were rendered independently and intepolated as strings,
+     which could lead to overly long lines. Now the templates
+     interpolated as Doc values which may include breaking
+     spaces, and reflowing occurs after template interpolation
+     rather than before.
+   + Remove code from the LaTeX, Docbook, and JATS writers that
+     looked in the template for strings to determine whether it is a
+     book or an article, or whether csquotes is used. This was
+     always kludgy and unreliable.
+   + Change template code to use new API for doctemplates.
+
+  * Template changes:
+
+    + default.latex: added code for `cslreferences` environment,
+      to be used for pandoc-citeproc references. A `csl-hanging-indent`
+      variable (set automatically if there is a `hanging-ident`
+      class on the references Div) controls whether contents of this
+      environment receive a hanging indent.
+    + revealjs template: add navigationMode (Mauro Bieg, #5657).
+    + muse template: handle multiple authors better.
+    + docbook4, docbook5 templates: add indentation to body.
+    + HTML-based templates: use `styles.html` partial to avoid
+      code duplication.
+    + HTML-based templates: change indentation of styles in template.
+
+  * epub.css: Add CSS for hanging-indent div to support pandoc-citeproc's
+   new hanging indents.
+
+  * pandoc.cabal:
+
+    + Repeat ghc-options in all stanzas.
+    + Remove conditionals for ghc < 8 (Albert Krewinkel, #5693).
+    + Compile with `-Wcpp-undef` and `-fhide-source-paths` when possible
+      (Albert Krewinkel).
+    + Add cabal.project to extra-source-files (Albert Krewinkel).
+    + Add dependency on skylighting-core (#5729). Even though it shouldn't
+      be needed, some tools require it.
+    + Require latest pandoc-types, texmath, skylighting.
+    + Ensure TemplateHaskell is added to other-extensions when it is
+      used (Vanessa McHale, #5728).
+
+  * Makefile:
+
+    + Add ghci target.
+    + Add ghcid target.
+    + Remove references to obsolete flag (#5694).
+
+  * Benchmarks: fix failure on ipynb.
+
+  * Fix redundant constraint compiler warnings (Pete Ryland, #5625).
+
+  * Add `diff-zip.sh` to tools (John MacFarlane, Agustín Martín Barbero).
+    This is intended to make it easier to test differences in zip
+    containers, like epub, docx, or odt.
+
+  * Add `.gitattributes` (#5747).  This ensures that the golden files
+    in `test/fb2/reader/` don't have newlines converted. This should fix
+    a test failure on GitHub CI with Windows.
+
+  * Revise code for HsYAML-0.2.0.0 (@vijayphoenix, #5704).
+
+  * Remove blank line in code example in Haddocks (Leif Metcalf, #5679).
+
+  * MANUAL.txt:
+
+    + Add section for exit codes.
+    + Document some pptx limitations in slide show section:
+      No incremental display (#5689).  No pause with `. . .` (#5701).
+    + reveal.js flags (Mauro Bieg, #5653).
+    + Document addition of `data-` prefix to unknown attributes in HTML5.
+    + Link to YAML spec (Mauro Bieg, #5687).
+
+  * INSTALL.md:  fix instructions for libicu.
+
+  * CONTRIBUTING.md: add information on tests (Agustín Martín
+    Barbero, #5652).
+
+
 pandoc (2.7.3)
 
   * Add `jira` (Atlassian's Jira wiki markup) as output format (#2497,
@@ -580,7 +1138,7 @@ pandoc (2.7)
     the title slide (for beamer).  This change makes possible
     2D reveal.js slideshows with content in the top slide on
     each stack (#4317, #5237).
- 
+
   * Add command line option `--ipynb-output=all|none|best` (#5339).
     Output cells in ipynb notebooks often contain several different
     versions of an output, with different MIME types, e.g. an HTML
@@ -727,7 +1285,7 @@ pandoc (2.7)
       `utils`, and `text`, respectively.
 
   * Text.Pandoc.Lua (Albert Krewinkel):
-  
+
     + Split `StackInstances` into smaller Marshaling modules.
     + Get `CommonState` from Lua global. This allows more control over
       the common state from within Lua scripts.