From c4ff0b5564aab0fdf8f6fe0fcecb332615933f4b Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sun, 3 Nov 2019 08:41:05 -0800
Subject: [PATCH] Update changelog.md.

---
 changelog.md | 245 +++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 210 insertions(+), 35 deletions(-)

diff --git a/changelog.md b/changelog.md
index d4314aaa3..078fbb773 100644
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,35 @@
 
 ## pandoc 2.8 PROVISIONAL (YYYY-MM-DD)
 
+  * Improvements in templates system (from doctemplates):
+
+   + Pandoc templates now support a number of new features that
+     have been added in doctemplates: notably, `elseif`, `it`,
+     partials, filters, and syntax to control nesting and reflowing of
+     text.  These changes make pandoc more suitable out of the
+     box for generating plain-text documents from data in YAML
+     metadata.  It can create enumerated lists and even tabular
+     structures.
+   + 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.
+
+  * Add `--defaults`/`-d` option.  This adds the ability to specify
+    a collection of default values for options in a YAML file. For
+    example, one might define a set of defaults for letters,
+    and then do `pandoc -d letter myletter.md -o myletter.pdf`.
+    See the documentation of this feature in MANUAL.txt.
+
   * Raise error on unsupported extensions (#4338).
 
   * The `--list-extensions[=FORMAT]` option now lists only
@@ -20,11 +49,22 @@
 
   * 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 specified first will be overridden by those in later
     files.
 
   * `--ascii` now uses numerical hex character references (#5718).
 
+  * Make some writers sensitive to 'unlisted' class on headings (#1762).
+    If this is present on a heading with the 'unnumbered' class,
+    the heading won't appear in the TOC.  This class has no
+    effect if 'unnumbered' is not also specified.  This affects HTML-based
+    writers (including slide shows and EPUB), LateX (including beamer), RTF,
+    and PowerPoint.  Other writers do not yet support `unlisted`.
+
+  * Fix `gfm_auto_identifiers` behavior with emojis (#5813).  Note that
+    we also now use emoji names for emojis when `ascii_identifiers`
+    is enabled.
+
   * 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.
@@ -42,6 +82,19 @@
     + `PandocOptionError` was 2, is now 6
     + `PandocMakePDFError` was 65, is now 66
 
+  * HTML reader:
+
+    + Better handling of `<q>` with cite attribute (#5798, Ole Martin Ruud).
+      If a `<q>` tag has a `cite` attribute, we interpret it as a Quoted
+      element with an inner Span.
+    + Add support for HTML `<samp>` element (#5792, Amogh Rathore).
+      The `<samp>` element is parsed as a Span with class `sample`.
+    + Add support for `<mark>` elements (Florian B, #5797).  Parse
+      `<mark>` elements from HTML as Spans with class `mark`.
+    + Add support for `<kbd>` elements, parsing them as Span with class
+      `kbd` (Daniele D'Orazio, #5796).
+
+
   * RST reader:
 
     + Keep `name` property in `imgAttr` (Brian Leung, #5619).
@@ -50,6 +103,8 @@
     + Use title, not admonition-title, for admonition title.
       This puts RST reader into alignment with docbook reader.
     + Don't strip final underscore from absolute URI (#5763).
+    + Avoid spurious warning when resolving links to internal anchors
+      ending with `_` (#5763).
 
   * Org reader:
 
@@ -62,14 +117,15 @@
       Code blocks in Org lists must have their `#+BEGIN_` aligned in a
       reasonable way, but their other components can be
       positioned otherwise.
+    + Fix parsing of empty comment lines (#5856, Albert Krewinkel).
+      Comment lines in Org-mode can be completely empty.
 
-  * Muse reader:
+  * Muse reader (Alexander Krotov):
 
-    + Add RTL support (Alexander Krotov, #5551).
-
-  * JIRA writer:
-
-    + Remove escapeStringForJira for code blocks (Jan-Otto Kröpke).
+    + Add RTL support (#5551).
+    + Do not allow closing asterisks to be followed by `*`.
+    + Do not split series of asterisks into symbols and emphasis (#5821).
+    + Do not terminate emphasis on `*` not followed by space.
 
   * Docx reader:
 
@@ -83,11 +139,31 @@
       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.
+    + Fix nesting of chapters and sections (#5864, Florian Klink,
+      Félix Baylac-Jacqué).
 
   * MediaWiki reader:
 
     + Skip optional `{{table}}` template (#5757).
 
+  * LaTeX reader:
+
+    + Fix dollar-math parsing to ensure that space is left between a
+      control sequence and a following letter (#5836).
+    + In `untokenize`, ensure space between control sequence
+      and following letter (#5836).
+    + Don't omit macro definitions defined in the preamble.
+      These were formerly omitted (though they still affected macro
+      resolution if `latex_macros` was set).  Now they are included in
+      the document body.
+    + Parse macro definitions as raw LaTeX when `latex_macros` is
+      disabled.  (When `latex_macros` is enabled, we omit them, since
+      pandoc is applying the macros itself.)
+    + Fix a hang/memory leak in certain circumstances (#5845).
+    + Text.Pandoc.Readers.LaTeX.Parsing: add `[Tok]` parameter to
+      `rawLaTeXParser`.  This allows us to repeat retokenizing
+      unnecessarily in e.g. `rawLaTeXBlock`.
+
   * Markdown writer:
 
     + Ensure proper nesting when we have long ordered list markers (#5705).
@@ -105,6 +181,8 @@
       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.
+    + Prefer `pipe_tables` to raw HTML even when we must
+      lose width information (#2608, #4497).
 
   * AsciiDoc writer:
 
@@ -135,6 +213,9 @@
       `csquotes` in your variables or metadata. To specify a book
       style, use the `documentclass` variable or
       `--top-level-division`.
+    + Fix horizontal rule (#5801).  We change to use 0.5pt rather than
+      `\linethickness`, which apparently only ever worked "by accident"
+      and no longer works with recent updates to texlive.
 
   * ConTeXt writer:
 
@@ -166,6 +247,12 @@
       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).
+    + Render a Quoted element with an inner Span with
+      `cite` attribute using a `<q>` tag (#5798, Ole Martin Ruud).
+    + Render a Span with class `mark` using the `<mark>` element
+      (Florian B, #5797).
+    + Render Span with class `kbd` using `<kbd>` element (Daniele
+      D'Orazio, #5796).
 
   * EPUB writer:
 
@@ -186,6 +273,9 @@
   * RST writer:
 
     + Removed remnants of `admonition-title`.
+    + Fix handling of `:align:` on figures and images (#4420).
+      When the image has the `align-right` (etc.) class, we now use
+      an `:align:` attribute.
 
   * Dokuwiki writer:
 
@@ -199,6 +289,10 @@
 
     + Add RTL support (Alexander Krotov, #5551).
 
+  * JIRA writer:
+
+    + Remove escapeStringForJira for code blocks (Jan-Otto Kröpke).
+
   * Man writer:
 
     + Suppress non-absolute link URLs (#5770).  Absolute URLs are
@@ -221,12 +315,18 @@
       name-part elements. (#5629)
     + Add `abstract` to template (Mauro Bieg).
 
+  * Jira writer:
+
+     + Remove extraneous newline after single-line block quotes
+       (#5858, Albert Krewinkel).
+
   * 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).
+    + Place caption before table (#5681, Dmitry Pogodin).
 
   * ODT writer:
 
@@ -457,6 +557,12 @@
     + Make `filterIpynbOutput` strip ANSI escapes from code in output
       for non-ipynb formats, when the default "best" option is used with
       `--ipynb-output` (#5633).
+    + Fix `camelCaseToHyphenated` so it handles `ABCDef` better.
+    + Improve `isTight` (#5857).  If a list has an empty item,
+      this should not count against its being a tight list.
+    + Export `htmlSpanLikeElements` [API change] (Daniele D'Orazio, #5796).
+      This is a mapping of HTML span-like elements that are internally
+      represented as a Span with a single class.
 
   * Text.Pandoc.Slides: recognize content in Divs when determining
     slide level.
@@ -476,17 +582,35 @@
     + Modify `addVariablesToContext`, `defField`, `setField`, `getField`,
      `resetField` to work with Context rather than JSON values. [API change]
     + Export new function `endsWithPlain` [API change].
+    + Change `gridTables` so it does better at keeping the widths of
+      columns (#4320).
 
   * Text.Pandoc.Options
 
     + Change type of `writerTemplate` to `Maybe Template` instead
       of `Maybe String`.
+    + Change To/FromJSON instances for `HTMLMathMethod`, `CiteMethod`,
+      `ObfuscationMethod`, `TrackChanges`, `WrapOption`,
+      `TopLevelDivision`, `ReferenceLocation`, `HTMLSlideVariant` (#5790).
+      In each case we use lowercase (or hyphenated lowercase) for
+      constructors to line up more closely with command-line option
+      values.  This is a breaking change for those who manually decode or
+      encode JSON for these data types (e.g. for `ReaderOptions` or
+      `WriterOptions`).
+
+  * Text.Pandoc.Filters:
+
+    + Add `FromYAML` instance for `Filter`.
 
   * Text.Pandoc.XML:
 
     + Change `toEntities` to emit numerical hex character references
       (#5718).
 
+  * Text.Pandoc.Highlighting:
+
+    + Add additional listings languages (Wandmalfarbe).
+
   * Text.Pandoc.Templates:
 
     + Don't import/export `varListToJSON` [API change].  It is removed in
@@ -495,25 +619,31 @@
       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):
+  * Text.Pandoc.App.Opt [API changes]:
 
-   + Pandoc templates now support a number of new features that
-     have been added in doctemplates: notably, `elseif`, `it`,
-     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.
+    + More convenient To/FromJSON instances.  Make the field names
+      like `strip-empty-paragraphs` rather than `optStripEmptyParagraphs`.
+      Anyone who is using JSON serialization of Opt will need to adjust
+      things accordingly.
+    + Change `optHighlightStyle` to a `Maybe String` instead of
+      `Maybe Style`.  Do the parsing/loading of themes later, after
+      option parsing.
+    + Remove `optBaseHeaderLevel` from `Opt`.  We now just use
+      `optShiftHeadingLevelBy`, to avoid redundancy.
+    + Change `optShiftHeadingLevel` to `optShiftHeadingLevelBy` to
+      match the option.
+    + Custom FromJSON instance for `LineEnding`, so either `CRLF`
+      or `crlf` will work.
+    + Change `optVariables` from `[(String, String)]` to `Context Text`.
+    + Change `optMetadata` to `Meta`, to allow structured values.
+      The current behavior of the `--metadata` option stays the same.
+    + Rename `optReader`, `optWriter` as `optFrom`, `optTo`.
+    + Add `FromYAML` instances to `Opt` and to all subsidiary types.
+    + Rename `optMetadataFile` to `optMetadataFiles`.
+    + Rename `optPDFEngineArgs` to `optPDFEngineOpts`.
+    + Rename `optWrapText` to `optWrap`.
+    + Add `IpynbOutput` enumerated type: use this instead of
+      a string for `optIpynbOutput`.
 
   * Template changes:
 
@@ -522,6 +652,12 @@
       variable (set automatically if there is a `hanging-ident`
       class on the references Div) controls whether contents of this
       environment receive a hanging indent.
+    + default.latex; Remove include of `grffile` (#5848).
+      This package used to be needed for proper handling of image filenames
+      containing periods (in addition to the period before the extension).
+      It no longer works with the latest LaTeX kernel and graphicx,
+      so we have removed it. Future versions of graphicx will handle
+      these filenames without the need for `grffile`.
     + revealjs template: add navigationMode (Mauro Bieg, #5657).
     + muse template: handle multiple authors better.
     + docbook4, docbook5 templates: add indentation to body.
@@ -541,9 +677,11 @@
     + 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.
+    + Require latest pandoc-types, texmath, skylighting, haddock-library.
     + Ensure TemplateHaskell is added to other-extensions when it is
       used (Vanessa McHale, #5728).
+    + Remove `derive_json_via_th` flag; always use TH.  This cuts down
+      on code duplication and reduces the chance for errors.  See #4083.
 
   * Makefile:
 
@@ -553,6 +691,11 @@
 
   * Benchmarks: fix failure on ipynb.
 
+  * Use MathJax 3 (zorkow).
+
+  * KaTeX math: respect `classoption=fleqn` variable,
+    bump KaTeX version to 0.11.1 (#5815, Mauro Bieg).
+
   * Fix redundant constraint compiler warnings (Pete Ryland, #5625).
 
   * Use throwError instead of fail when appropriate.
@@ -567,10 +710,19 @@
     in `test/fb2/reader/` don't have newlines converted. This should fix
     a test failure on GitHub CI with Windows.
 
+  * Reorder options in `--help`.
+
   * Revise code for HsYAML-0.2.0.0 (@vijayphoenix, #5704).
 
   * Remove blank line in code example in Haddocks (Leif Metcalf, #5679).
 
+  * Fix trypandoc with `getReader`/`getWriter` changes.
+
+  * Allow building pandoc with GHC 8.8.
+
+  * linux tarball: add architecture `-amd64` to filename.
+    Now it will be: `pandoc-VERSION-linux-ARCH.tar.gz`.
+
   * MANUAL.txt:
 
     + Add section for exit codes.
@@ -579,11 +731,34 @@
     + reveal.js flags (Mauro Bieg, #5653).
     + Document addition of `data-` prefix to unknown attributes in HTML5.
     + Link to YAML spec (Mauro Bieg, #5687).
+    + Fix capitalization of "Linux" (#5859, Marcus Stollsteimer).
+    + Use a table for exit codes.
+    + Put all template variable docs into one section.
+    + Use ATX headers consistently.
+    + Add fuller documentation of templates (#5779), including
+      new template syntax, partials, etc.
+    + Add documentation for the variable `hyperrefoptions` (Wandmalfarbe).
+    + Clarify when macro definitions are passed as raw latex.
+      In Markdown input, they are always passed through.  In LaTeX, only if
+      `latex_macros` is disabled.
+    + Clarify that `--dpi` provides a default and doesn't override
+      dpi values specified in the images themselves (#5721).
+    + Document how to use custom writers with `--standalone` (#5866).
 
-  * INSTALL.md:  fix instructions for libicu.
+  * INSTALL.md:
 
-  * CONTRIBUTING.md: add information on tests (Agustín Martín
-    Barbero, #5652).
+    + Fix instructions for libicu.
+    + Add Void Linux instructions (Volodymyr Kozachnyskyi).
+
+  * CONTRIBUTING.md:
+
+    + Add information on tests (Agustín Martín Barbero, #5652).
+    + Add information about command test naming to CONTRIBUTING (Florian B).
+
+  * doc/lua-filters.md:
+
+    + Fix mistakes in mediabag module docs (#5851, Albert Krewinkel).
+    + Improve metadata replacement example in lua-filters doc (#5851).
 
 ## pandoc 2.7.3 (2019-06-11)
 
@@ -695,12 +870,12 @@
       This fixes round-trip failures.
     + Prevent gratuitious emojification on iOS (#5469).
       iOS chooses to render a number of Unicode entities, including '↩', as
-      big colorful emoji.  This can be defeated by appending Unicode VARIATION
-      SELECTOR-15'/'VARIATION SELECTOR-16'.  So we now append this character
-      when escaping strings, for both '↩' and '↔'.  If other characters prove
-      problematic, they can simply be added to `needsVariationSelector`.
-    + Add `class="heading"` to level 7+ Headers rendered as `<p>` elements
-      (#5457).
+      big colorful emoji.  This can be defeated by appending Unicode
+      VARIATION SELECTOR-15'/'VARIATION SELECTOR-16'.  So we now append this
+      character when escaping strings, for both '↩' and '↔'.  If other
+      characters prove problematic, they can simply be added to
+      `needsVariationSelector`.  + Add `class="heading"` to level 7+ Headers
+      rendered as `<p>` elements (#5457).
 
   * RST writer: treat Span with no attributes as transparent (#5446).
     Previously an Emph inside a Span was being treated as