Pan

Latest version: v0.1.1

Safety actively analyzes 621724 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 15

1.19.2

* Use skylighting library instead of highlighting-kate for syntax
highlighting. Skylighting is faster and more accurate (3363).
Later we'll be able to add features like warning messages, dynamic
loading of xml syntax definitions, and dynamic loading of themes.

* Added a new highlight style, `breezeDark`.

* Text.Pandoc.Highlighting: Update list of `listings` languages (3374).
This allows more languages to be used when using the `--listings`
option.

* OpenDocument writer:

+ Small refactoring. Removed separate 'parent' parameter in paraStyle.
+ Don't profilerate text styles unnecessarily (3371).
This change makes the writer create only as many temporary
text styles as are absolutely necessary. It also consolidates
adjacent nodes with the same style.

* Org reader (Albert Krewinkel):

+ Allow short hand for single-line raw blocks (Albert Krewinkel,
3366). Single-line raw blocks can be given via `+FORMAT: raw line`,
where `FORMAT` must be one of `latex`, `beamer`, `html`, or `texinfo`.
+ Accept org-ref citations followed by commas (Albert Krewinkel).
Bugfix for an issue which, whenever the citation was immediately
followed by a comma, prevented correct parsing of org-ref citations.
+ Ensure emphasis markup can be nested. Nested emphasis markup (e.g.
`/*strong and emphasized*/`) was interpreted incorrectly in that the
inner markup was not recognized.
+ Remove pipe char irking the haddock coverage tool (Albert Krewinkel).

* Docx reader: Empty header should be list of lists (Jesse Rosenthal).
In the past, the docx reader wrote an empty header as an empty list. It
should have the same width as a row (and be filled with empty cells).

* MediaWiki reader:

+ Improved handling of display math (3362). Sometimes display math is
indented with more than one colon. Previously we handled these cases
badly, generating definition lists and missing the math.
+ Fix quotation mark parsing (3336, tgkokk). Change MediaWiki reader's
behavior when the smart option is parsed to match other readers'
behavior.

* Markdown reader:

+ Fixed `-f markdown_github-hard_line_breaks+escaped_line_breaks`
(3341). Previously this did not properly enable escaped line breaks.
+ Disallow space between inline code and attributes (3326, 3323,
Mauro Bieg).

* DocBook5 writer: make id attribute xml:id, fixes 3329 (3330, Mauro Bieg).

* Added some test cases for ODT reader (3306, 3308, Hubert Plociniczak).

* LaTeX writer: allow tables with empty cells to count as "plain."
This addresses a problem of too-wide tables when empty cells
are used. Thanks to Joost Kremers for reporting the issue.

* Org writer: prefix footnote numbers with `fn:` (Albert Krewinkel).
Unprefixed numbers where used by older org-mode versions, but are no
longer supported.

* HTML writer: don't process pars with empty RawInline, (1040, 3327,
Mauro Bieg).

* Markdown writer: Fix display math with `--webtex` (3298).

* Fix sample.lua so it properly handles raw blocks/inlines (3358,
bumper314).

* Templates:

+ default.latex: Moved geometry after hyperref (Václav Haisman).
Otherwise PDF sizes can be wrong in some circumstances.
+ Copied a few changes from default.latex to default.beamer
(Wandmalfarbe).
+ default.latex, default.beamer: Changed position of `\VerbatimNotes`
and `fancyvrb`. This fixes hyperlinks on footnotes in documents
that contain verbatim in notes (3361). (Note: the beamer template
was updated to match the LaTeX template, but at this point verbatim
in notes seems not to work in beamer.)
+ default.latex: Allow passing `microtypeoptions` to microtype
(Václav Haisman).
+ default.latex: Add hyphen option to url package.
+ default.docbook5: Fix namespace declarations (Mauro Bieg).

* Moved `make_osx_package.sh` to `osx/` directory.

* Travis continuous integration:

+ Fix false positives with dist build.
+ Speed improvements (Kolen Cheung, 3304, 3357).

* MANUAL.txt:

+ Clarify that blank space is needed around footnotes (3352).
+ Fixed typo (3351, Alexey Rogechev).
+ Note that `--wrap=auto` does not work in HTML output.
+ Default `--columns` width is 72, not 80.
+ Fixed broken links (3316, Kolen Cheung).
+ Document usage of `*` in nocite section (3333, John Muccigrosso).

* INSTALL.md:

+ Indent code so it's properly formatted (3335, Bheesham Persaud).
+ Added instructions for extracting binary from OSX, Windows packages.

* CONTRIBUTING.md: Describe labels currently used in issue tracker
(Albert Krewinkel). The labels have changed over time, the list of
labels is updated to reflect the current set of labels used in the
issue tracker.

* Rearrange and extend badges in README (Albert Krewinkel, 3354)

* Bumped version bounds for dependencies.

1.19.1

* Set `PANDOC_VERSION` environment variable for filters (2640).
This allows filters to check the pandoc version that produced
the JSON they are receiving.

* Docx reader: Ensure one-row tables don't have header (3285,
Jesse Rosenthal). Tables in MS Word are set by default to have
special first-row formatting, which pandoc uses to determine whether
or not they have a header. This means that one-row tables will, by
default, have only a header -- which we imagine is not what people
want. This change ensures that a one-row table is not understood to
be a header only. Note that this means that it is impossible to
produce a header-only table from docx, even though it is legal
pandoc. But we believe that in nearly all cases, it will be an
accidental (and unwelcome) result

* HTML reader:

+ Fixed some bad regressions in HTML table parser (3280).
This regression leads to the introduction of empty rows
in some circumstances.
+ Understand `style=width:` as well as `width` in `col` (3286).

* RST reader:

+ Print warnings when keys, substitition, notes not found.
Previously the parsers failed and we got raw text. Now we get a
link with an empty URL, or empty inlines in the case of a note or
substitution.

+ Fix hyperlink aliases (3283).

* Man writer: Ensure that periods are escaped at beginning of line
(3270).

* LaTeX writer: Fix unnumbered headers when used with `--top-level`
(3272, Albert Krewinkel). Fix interaction of top-level divisions
`part` or `chapter` with unnumbered headers when emitting LaTeX. Headers
are ensured to be written using stared commands (like `\subsection*{}`).

* LaTeX template: use comma not semicolon to separate keywords for
`pdfkeywords`. Thanks to Wandmalfarbe.

* Markdown writer: Fixed incorrect word wrapping (3277). Previously pandoc
would sometimes wrap lines too early due to this bug.

* Text.Pandoc.Pretty: Added `afterBreak` [API change]. This makes it
possible to insert escape codes for content that needs escaping at the
beginning of a line.

* Removed old MathMLInHTML.js from 2004, which should no longer
be needed for MathML with modern browsers.

* Fixed tests with dynamic linking (2709).

* Makefile: Use stack instead of cabal for targets. This is just
a convenience for developers.

* Fixed bash completion of filenames with space (2749).

* MANUAL: improved documentation on how to create a custom `reference.docx`.

* Fix minor spelling typos in the manual (3273, Anthony Geoghegan)

1.19

* Changed resolution of filter paths.

+ We now first treat the argument of `--filter` as a full (absolute
or relative) path, looking for a program there. If it's found, we
run it.
+ If not, and if it is a simple program name or a relative path, we
try resolving it relative to `$DATADIR/filters`.
+ If this fails, then we treat it as a program name and look in the
user's PATH.
+ Removed a hardcoded '/' that may have caused problems with
Windows paths.

Previously if you did `--filter foo` and you had `foo` in your path and
also an executable `foo` in your working directory, the one in the path
would be used. Now the one in the working directory is used.

In addition, when you do `--filter foo/bar.hs`, pandoc will now find a
filter `$DATADIR/filters/foo/bar.hs` -- assuming there isn't a
`foo/bar.hs` relative to the working directory.

* Allow `file://` URIs as arguments (3196). Also improved default reader
format detection. Previously with a URI ending in .md or .markdown,
pandoc would assume HTML input. Now it treats these as markdown.

* Allow to overwrite top-level division type heuristics (3258,
Albert Krewinkel). Pandoc uses heuristics to determine the most
reasonable top-level division type when emitting LaTeX or
Docbook markup. It is now possible to overwrite this implicitly set
top-level division via the `top-level-division` command line parameter.

* Text.Pandoc.Options \[API changes\]:

+ Removed `writerStandalone` field in `WriterOptions`, made
`writerTemplate` a `Maybe` value. Previously setting
`writerStandalone = True` did nothing unless a template was provided
in writerTemplate. Now a fragment will be generated if
`writerTemplate` is `Nothing`; otherwise, the specified template
will be used and standalone output generated.
+ `Division` has been renamed `TopLevelDivision` (3197). The
`Section`, `Chapter`, and `Part` constructors were renamed to
`TopLevelSection`, `TopLevelChapter`, and
`TopLevelPart`, respectively. An additional `TopLevelDefault`
constructor was added, which is now also the new default value of
the `writerTopLevelDivision` field in `WriterOptions`.

* Improved error if they give wrong arg to `--top-level-division`.

* Use new module from texmath to lookup MS font codepoints in Docx reader.
Removed unexported module Text.Pandoc.Readers.Docx.Fonts. Its code now
lives in texmath (0.9).

* DocBook reader: Fixed xref lookup (3243). It previously only worked
when the qnames lacked the docbook namespace URI.

* HTML reader:

+ Improved table parsing (3027). We now check explicitly for non-1
rowspan or colspan attributes, and fail when we encounter them.
Previously we checked that each row had the same number of cells,
but that could be true even with rowspans/colspans. And there are
cases where it isn't true in tables that we can handle fine -- e.g.
when a tr element is empty. So now we just pad rows with empty cells
when needed.
+ Treat `<math>` as MathML by default unless something else is
explicitly specified in xmlns. Provided it parses as MathML,
of course. Also fixed default which should be to inline math if no
display attribute is used.
+ Only treat "a" element as link if it has href (3226). Otherwise
treat as span.

* Docx reader (Jesse Rosenthal):

+ Add a placeholder value for CHART. We wrap `[CHART]` in a
`<span class="chart">`. Note that it maps to inlines because, in
docx, anything in a drawing tag can be part of a larger paragraph.
+ Be more specific in parsing images We not only want `w:drawing`,
because that could also include charts. Now we specify
`w:drawing/pic:pic`. This shouldn't change behavior at all, but it's
a first step toward allowing other sorts of drawing data as well.
+ Abstract out function to avoid code repetition.
+ Update tests for img title and alt (3204).
+ Handle Alt text and titles in images. We use the "description" field
as alt text and the "title" field as title. These can be accessed
through the "Format Picture" dialog in Word.
+ Docx reader utils: handle empty namespace in `elemName`. Previously,
if given an empty namespace `(elemName ns "" "foo")` `elemName`
would output a QName with a `Just ""` namespace. This is never what
we want. Now we output a `Nothing`. If someone *does* want a
`Just ""` in the namespace, they can enter the QName
value explicitly.

* ODT reader/writer:

+ Inline code when text has a special style (Hubert Plociniczak). When
a piece of text has a text `Source_Text` then we assume that this is
a piece of the document that represents a code that needs to
be inlined. Adapted the writer to also reflect that change.
Previously it was just writing a 'preformatted' text using a
non-distinguishable font style. Code blocks are still not recognized
by the ODT reader. That's a separate issue.
+ Infer table's caption from the paragraph (3224,
Hubert Plociniczak). ODT's reader always put empty captions for the
parsed tables. This commit

1. checks paragraphs that follow the table definition
2. treats specially a paragraph with a style named 'Table'
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`.

* ODT reader: Infer tables' header props from rows (3199,
Hubert Plociniczak). ODT reader simply provided an empty header list
which meant that the contents of the whole table, even if not empty, was
simply ignored. While we still do not infer headers we at least have to
provide default properties of columns.

* Markdown reader:

+ Allow reference link labels starting with `...` if `citations`
extension disabled (3209). Example: in

\[link text\]\[a\]

`link text` isn't hyperlinked because `[a]` is parsed as
a citation. Previously this happened whether or not the `citations`
extension was enabled. Now it happens only if the `citations`
extension is enabled.
+ Allow alignments to be specified in Markdown grid tables. For
example,

+-------+---------------+--------------------+
| Right | Left | Centered |
+=========:+:=================+:=============:+
| Bananas | $1.34 | built-in wrapper |
+-------+---------------+--------------------+

+ Allow Small Caps elements to be created using bracketed spans (as
they already can be using HTML-syntax spans) (3191, Kolen Cheung).

* LaTeX reader:

+ Don't treat `\vspace` and `\hspace` as block commands (3256).
Fixed an error which came up, for example, with `\vspace` inside
a caption. (Captions expect inlines.)
+ Improved table handling. We can now parse all of the tables emitted
by pandoc in our tests. The only thing we don't get yet are
alignments and column widths in more complex tables. See 2669.
+ Limited support for minipage.
+ Allow for `[]`s inside LaTeX optional args. Fixes cases like:
+ Handle BVerbatim from fancyvrb (3203).
+ Handle hungarumlaut (3201).
+ Allow beamer-style `<...>` options in raw LaTeX (also in Markdown)
(3184). This allows use of things like `\only<2,3>{my content}` in
Markdown that is going to be converted to beamer.

* Use pre-wrap for code in dzslides template (Nicolas Porcel). Otherwise
overly long code will appear on every slide.

* Org reader (Albert Krewinkel):

+ Respect column width settings (3246). Table column properties can
optionally specify a column's width with which it is displayed in
the buffer. Some exporters, notably the ODT exporter in org-mode
v9.0, use these values to calculate relative column widths. The org
reader now implements the same behavior. Note that the org-mode
LaTeX and HTML exporters in Emacs don't support this feature yet,
which should be kept in mind by users who use the column
widths parameters.
+ Allow HTML attribs on non-figure images (3222). Images which are
the only element in a paragraph can still be given HTML attributes,
even if the image does not have a caption and is hence not a figure.
The following will add set the `width` attribute of the image to
`50%`:

+ATTR\_HTML: :width 50%
=======================

\[\[file:image.jpg\]\]

+ Support `ATTR_HTML` for special blocks (3182). Special
blocks (i.e. blocks with unrecognized names) can be prefixed with an
`ATTR_HTML` block attribute. The attributes defined in that
meta-directive are added to the `Div` which is used to represent the
special block.
+ Support the `todo` export option. The `todo` export option allows to
toggle the inclusion of TODO keywords in the output. Setting this to
`nil` causes TODO keywords to be dropped from headlines. The default
is to include the keywords.
+ Add support for todo-markers. Headlines can have optional
todo-markers which can be controlled via the `+TODO`, `+SEQ_TODO`,
or `+TYP_TODO` meta directive. Multiple such directives can be
given, each adding a new set of recognized todo-markers. If no
custom todo-markers are defined, the default `TODO` and `DONE`
markers are used. Todo-markers are conceptually separate from
headline text and are hence excluded when autogenerating
headline IDs. The markers are rendered as spans and labelled with
two classes: One class is the markers name, the other signals the
todo-state of the marker (either `todo` or `done`).

* LaTeX writer:

+ Use `\autocites*` when "suppress-author" citation used.
+ Ensure that simple tables have simple cells (2666). If cells
contain more than a single Plain or Para, then we need to set
nonzero widths and put contents into minipages.
+ Remove invalid inlines in sections (3218, Hubert Plociniczak).

* Markdown writer:

+ Fix calculation of column widths for aligned multiline tables
(1911, Björn Peemöller). This also fixes excessive CPU and memory
usage for tables when `--columns` is set in such a way that cells
must be very tiny. Now cells are guaranteed to be big enough so that
single words don't need to line break, even if this pushes the line
length above the column width.
+ Use bracketed form for native spans when `bracketed_spans`
enabled (3229).
+ Fixed inconsistent spacing issue (3232). Previously a tight bullet
sublist got rendered with a blank line after, while a tight ordered
sublist did not. Now we don't get the blank line in either case.
+ Fix escaping of spaces in super/subscript (3225). Previously two
backslashes were inserted, which gave a literal backslash.
+ Adjust widths in Markdown grid tables so that they match
on round-trip.

* Docx writer:

+ Give full detail when there are errors converting tex math.
+ Handle title text in images (Jesse Rosenthal). We already handled
alt text. This just puts the image "title" into the docx
"title" attr.
+ Fixed XML markup for empty cells (3238). Previously the Compact
style wasn't being applied properly to empty cells.

* HTML writer:

+ Updated `renderHtml` import from blaze-html.

* Text.Pandoc.Pretty:

+ Fixed some bugs that caused blank lines in tables (3251). The bugs
caused spurious blank lines in grid tables when we had things like
`blankline $$ blankline`.
+ Add exported function `minOffet` \[API change\] (Björn Peemöller).
+ Added error message for illegal call to `block` (Björn Peemöller).

* Text.Pandoc.Shared:

+ Put `warn` in MonadIO.
+ `fetchItem`: Better handling of protocol-relative URL (2635). If
URL starts with `//` and there is no "base URL" (as there would be
if a URL were used on the command line), then default to http:.

* Export Text.Pandoc.getDefaultExtensions \[API change\] (3178).

* In --version, trap error in `getAppUserDataDirectory` (3241). This
fixes a crash with `pandoc --version` on unusual systems with no real
user (e.g. SQL Server 2016).

* Added weigh-pandoc for memory usage diagnostics (3169).

* Use correct mime types for woff and woff2 (3228).

* Remove make\_travis\_yml.hs (3235, Kolen Cheung).

* changelog: Moved an item that was misplaced in the 1.17.2 section to the
1.18 section where it belongs.

* CONTRIBUTING.md: minor change in wording and punctuation (3252,
Kolen Cheung).

* Further revisions to manual for `--version` changes (3244).

1.18

* Added `--list-input-formats`, `--list-output-formats`,
`--list-extensions`, `--list-highlight-languages`, and
`--list-highlight-styles` (3173). Removed list of highlighting
languages from `--version` output. Removed list of input and output
formats from default `--help` output.

* Added `--reference-location=block|section|document` option
(Jesse Rosenthal). This determines whether Markdown link references
and footnotes are placed at the end of the document, the end of the
section, or the end of the top-level block.

* Added `--top-level-division=section|chapter|part` (Albert Krewinkel).
This determines what a level-1 header corresponds to in LaTeX,
ConTeXt, DocBook, and TEI output. The default is `section`.
The `--chapters` option has been deprecated in favor of
`--top-level-division=chapter`.

* Added `LineBlock` constructor for `Block` (Albert Krewinkel). This
is now used in parsing RST and Markdown line blocks, DocBook
`linegroup`/`line` combinations, and Org-mode `VERSE` blocks.
Previously `Para` blocks with hard linebreaks were used. `LineBlock`s
are handled specially in the following ouput formats: AsciiDoc
(as `[verse]` blocks), ConTeXt (`\startlines`/`\endlines`),
HTML (`div` with a style), Markdown (line blocks if `line_blocks`
is enabled), Org-mode (`VERSE` blocks), RST (line blocks). In
other output formats, a paragraph with hard linebreaks is emitted.

* Allow binary formats to be written to stdout (but not to tty) (2677).
Only works on posix, since we use the unix library to check whether
output is to tty. On Windows, pandoc works as before and always requires
an output file parameter for binary formats.

* Changed JSON output format (Jesse Rosenthal). Previously we used
generically generated JSON, but this was subject to change depending
on the version of aeson pandoc was compiled with. To ensure stability,
we switched to using manually written ToJSON and FromJSON
instances, and encoding the API version. **Note:** pandoc filter
libraries will need to be revised to handle the format change.
Here is a summary of the essential changes:

+ The toplevel JSON format is now `{"pandoc-api-version" :
[MAJ, MIN, REV], "meta" : META, "blocks": BLOCKS}`
instead of `[{"unMeta": META}, [BLOCKS]]`.
Decoding fails if the major and minor version numbers don't
match.
+ Leaf nodes no longer have an empty array for their "c" value.
Thus, for example, a `Space` is encoded as `{"t":"Space"}`
rather than `{"t":"Space","c":[]}` as before.

* Removed `tests/Tests/Arbitrary.hs` and added a `Text.Pandoc.Arbitrary`
module to pandoc-types (Jesse Rosenthal). This makes it easier
to use QuickCheck with pandoc types outside of pandoc itself.

* Add `bracketed_spans` Markdown extension, enabled by default
in pandoc `markdown`. This allows you to create a native span
using this syntax: `[Here is my span]{id .class key="val"}`.

* Added `angle_brackets_escapable` Markdown extension (2846).
This is needed because github flavored Markdown has a slightly
different set of escapable symbols than original Markdown;
it includes angle brackets.

* Export `Text.Pandoc.Error` in `Text.Pandoc` [API change].

* Print highlighting-kate version in `--version`.

* `Text.Pandoc.Options`:

+ `Extension` has new constructors `Ext_brackted_spans` and
`Ext_angle_brackets_escapable` [API change].
+ Added `ReferenceLocation` type [API change] (Jesse Rosenthal).
+ Added `writerReferenceLocation` field to `WriterOptions` (Jesse
Rosenthal).

* `--filter`: we now check `$DATADIR/filters` for filters before
looking in the path (3127, Jesse Rosenthal, thanks to Jakob
Voß for the idea). Filters placed in this directory need not
be executable; if the extension is `.hs`, `.php`, `.pl`, `.js`,
or `.rb`, pandoc will run the right interpreter.

* For `--webtex`, replace deprecated Google Chart API by CodeCogs as
default (Kolen Cheung).

* Removed `raw_tex` extension from `markdown_mmd` defaults (Kolen Cheung).

* Execute .js filters with node (Jakob Voß).

* Textile reader:

+ Support `bc..` extended code blocks (3037). Also, remove trailing
newline in code blocks (consistently with Markdown reader).
+ Improve table parsing. We now handle cell and row attributes, mostly
by skipping them. However, alignments are now handled properly.
Since in pandoc alignment is per-column, not per-cell, we
try to devine column alignments from cell alignments.
Table captions are also now parsed, and textile indicators
for thead and tfoot no longer cause parse failure. (However,
a row designated as tfoot will just be a regular row in pandoc.)
+ Improve definition list parsing. We now allow multiple terms
(which we concatenate with linebreaks). An exponential parsing
bug (3020) is also fixed.
+ Disallow empty URL in explicit link (3036).

* RST reader:

+ Use Div instead of BlockQuote for admonitions (3031).
The Div has class `admonition` and (if relevant) one of the
following: `attention`, `caution`, `danger`, `error`, `hint`,
`important`, `note`, `tip`, `warning`. **Note:** This will change
the rendering of some RST documents! The word ("Warning", "Attention",
etc.) is no longer added; that must be done with CSS or a filter.
+ A Div is now used for `sidebar` as well.
+ Skip whitespace before note (Jesse Rosenthal, 3163). RST requires a
space before a footnote marker. We discard those spaces so that footnotes
will be adjacent to the text that comes before it. This is in line with
what rst2latex does.
+ Allow empty lines when parsing line blocks (Albert Krewinkel).

* Markdown reader:

+ Allow empty lines when parsing line blocks (Albert Krewinkel).
+ Allow attributes on autolinks (3183, Daniele D'Orazio).

* LaTeX reader:

+ More robust parsing of unknown environments (3026).
We no longer fail on things like `^` inside options for tikz.
+ Be more forgiving of non-standard characters, e.g. `^` outside of math.
Some custom environments give these a meaning, so we should try not to
fall over when we encounter them.
+ Drop duplicate `*` in bibtexKeyChars (Albert Krewinkel)

* MediaWiki reader:

+ Fix for unquoted attribute values in mediawiki tables (3053).
Previously an unquoted attribute value in a table row
could cause parsing problems.
+ Improved treatment of verbatim constructions (3055).
Previously these yielded strings of alternating Code and Space
elements; we now incorporate the spaces into the Code. Emphasis
etc. is still possible inside these.
+ Properly interpret XML tags in pre environments (3042). They are meant
to be interpreted as literal text.

* EPUB reader: don't add root path to data: URIs (3150).
Thanks to lep for the bug report and patch.

* Org reader (Albert Krewinkel):

+ Preserve indentation of verse lines (3064). Leading spaces in verse
lines are converted to non-breaking spaces, so indentation is preserved.
+ Ensure image sources are proper links. Image sources as those in plain
images, image links, or figures, must be proper URIs or relative file
paths to be recognized as images. This restriction is now enforced
for all image sources. This also fixes the reader's usage of uncleaned
image sources, leading to `file:` prefixes not being deleted from
figure images. Thanks to bsag for noticing this bug.
+ Trim verse lines properly (Albert Krewinkel).
+ Extract meta parsing code to module. Parsing of meta-data is well
separable from other block parsing tasks. Moving into new module to
get small files and clearly arranged code.
+ Read markup only for special meta keys. Most meta-keys should be read
as normal string values, only a few are interpreted as marked-up text.
+ Allow multiple, comma-separated authors. Multiple authors can be
specified in the `+AUTHOR` meta line if they are given as a
comma-separated list.
+ Give precedence to later meta lines. The last meta-line of any given
type is the significant line. Previously the value of the first line
was kept, even if more lines of the same type were encounterd.
+ Read LaTeX_header as header-includes. LaTeX-specific header commands
can be defined in `+LaTeX_header` lines. They are parsed as
format-specific inlines to ensure that they will only show up in LaTeX
output.
+ Set documentclass meta from LaTeX_class.
+ Set classoption meta from LaTeX_class_options.
+ Read HTML_head as header-includes. HTML-specific head content can be
defined in `+HTML_head` lines. They are parsed as format-specific
inlines to ensure that they will only show up in HTML output.
+ Respect `author` export option. The `author` option controls whether
the author should be included in the final markup. Setting
`+OPTIONS: author:nil` will drop the author from the final meta-data
output.
+ Respect `email` export option. The `email` option controls whether the
email meta-field should be included in the final markup. Setting
`+OPTIONS: email:nil` will drop the email field from the final
meta-data output.
+ Respect `creator` export option. The `creator` option controls whether
the creator meta-field should be included in the final markup. Setting
`+OPTIONS: creator:nil` will drop the creator field from the final
meta-data output. Org-mode recognizes the special value `comment` for
this field, causing the creator to be included in a comment. This is
difficult to translate to Pandoc internals and is hence interpreted the
same as other truish values (i.e. the meta field is kept if it's
present).
+ Respect unnumbered header property (3095). Sections the `unnumbered`
property should, as the name implies, be excluded from the automatic
numbering of section provided by some output formats. The Pandoc
convention for this is to add an "unnumbered" class to the header. The
reader treats properties as key-value pairs per default, so a special
case is added to translate the above property to a class instead.
+ Allow figure with empty caption (Albert Krewinkel, 3161).
A `+CAPTION` attribute before an image is enough to turn an image into
a figure. This wasn't the case because the `parseFromString` function,
which processes the caption value, would fail on empty values. Adding
a newline character to the caption value fixes this.

* Docx reader:

+ Use XML convenience functions (Jesse Rosenthal).
The functions `isElem` and `elemName` (defined in Docx/Util.hs) make
the code a lot cleaner than the original XML.Light functions, but they
had been used inconsistently. This puts them in wherever applicable.
+ Handle anchor spans with content in headers. Previously, we would only
be able to figure out internal links to a header in a docx if the
anchor span was empty. We change that to read the inlines out of the
first anchor span in a header.
+ Let headers use exisiting id. Previously we always generated an id for
headers (since they wouldn't bring one from Docx). Now we let it use an
existing one if possible. This should allow us to recurs through anchor
spans.
+ Use all anchor spans for header ids. Previously we only used the first
anchor span to affect header ids. This allows us to use all the anchor
spans in a header, whether they're nested or not (3088).
+ Test for nested anchor spans in header. This ensures that anchor spans
in header with content (or with other anchor spans inside) will resolve
to links to a header id properly.

* ODT reader (Hubert Plociniczak)

+ Include list's starting value. Previously the starting value of
the lists' items has been hardcoded to 1. In reality ODT's list
style definition can provide a new starting value in one of its
attributes.
+ Infer caption from the text following the image.
Frame can contain other frames with the text boxes.
+ Add `fig:` to title for Image with a caption (as expected
by pandoc's writers).
+ Basic support for images in ODT documents.
+ Don't duplicate text for anchors (3143). When creating an anchor
element we were adding its representation as well as the original
content, leading to text duplication.

* DocBook writer:

+ Include an anchor element when a div or span has an id (3102).
Note that DocBook does not have a class attribute, but at least this
provides an anchor for internal links.

* LaTeX writer:

+ Don't use * for unnumbered paragraph, subparagraph. The starred
variants don't exist. This helps with part of 3058...it gets rid of
the spurious `*`s. But we still have numbers on the 4th and 5th level
headers.
+ Properly escape backticks in verbatim (3121, Jesse Rosenthal).
Otherwise they can cause unintended ligatures like `` ?` ``.
+ Handle NARRAOW NO-BREAK SPACE into LaTeX (Vaclav Zeman) as `\,`.
+ Don't include `[htbp]` placement for figures (3103, Václav Haisman).
This allows figure placement defaults to be changed by the user
in the template.

* HTML writer (slide show formats): In slide shows, don't change slide title
to level 1 header (2221).

* TEI writer: remove heuristic to detect book template (Albert Krewinkel).
TEI doesn't have `<book>` elements but only generic `<divN>` division
elements. Checking the template for a trailing `</book>` is nonsensical.

* MediaWiki writer: transform filename with underscores in images (3052).
`foo bar.jpg` becomes `foo_bar.jpg`. This was already done
for internal links, but it also needs to happen for images.

* ICML writer: replace partial function (!!) in table handling (3175,
Mauro Bieg).

* Man writer: allow section numbers that are not a single digit (3089).

* AsciiDoc writer: avoid unnecessary use of "unconstrained" emphasis
(3068). In AsciiDoc, you must use a special form of emphasis
(double `__`) for intraword emphasis. Pandoc was previously using
this more than necessary.

* EPUB writer: use stringify instead of plain writer for metadata
(3066). This means that underscores won't be used for emphasis,
or CAPS for bold. The metadata fields will just have unadorned
text.

* Docx Writer:

+ Implement user-defined styles (Jesse Rosenthal). Divs and Spans
with a `custom-style` key in the attributes will apply the corresponding
key to the contained blocks or inlines.
+ Add ReaderT env to the docx writer (Jesse Rosenthal).
+ Clean up and streamline RTL behavior (Jesse Rosenthal, 3140).
You can set `dir: rtl` in YAML metadata, or use `-M dir=rtl`
on the command line. For finer-grained control, you can set
the `dir` attribute in Div or Span elements.

* Org writer (Albert Krewinkel):

+ Remove blank line after figure caption. Org-mode only treats an image
as a figure if it is directly preceded by a caption.
+ Ensure blank line after figure. An Org-mode figure should be surrounded
by blank lines. The figure would be recognized regardless, but images
in the following line would unintentionally be treated as figures as
well.
+ Ensure link targets are paths or URLs. Org-mode treats links as
document internal searches unless the link target looks like a URL or
file path, either relative or absolute. This change ensures that this
is always the case.
+ Translate language identifiers. Pandoc and Org-mode use different
programming language identifiers. An additional translation between
those identifiers is added to avoid unexpected behavior. This fixes a
problem where language specific source code would sometimes be output
as example code.
+ Drop space before footnote markers (Albert Krewinkel, 3162).
The writer no longer adds an extra space before footnote markers.

* Markdown writer:

+ Don't emit HTML for tables unless `raw_html` extension is set (3154).
Emit `[TABLE]` if no suitable table formats are enabled and raw HTML
is disabled.
+ Check for the `raw_html` extension before emiting a raw HTML block.
+ Abstract out note/ref function (Jesse Rosenthal).
+ Add ReaderT monad for environment variables (Jesse Rosenthal).

* HTML, EPUB, slidy, revealjs templates: Use `<p>` instead of `<h1>` for
subtitle, author, date (3119). Note that, as a result of this change,
authors may need to update CSS.

* revealjs template: Added `notes-server` option
(jgm/pandoc-templates212, Yoan Blanc).

* Beamer template:

+ Restore whitespace between paragraphs. This was
a regression in the last release (jgm/pandoc-templates207).
+ Added `themeoptions` variable (Carsten Gips).
+ Added `beamerarticle` variable. This causes the `beamerarticle`
package to be loaded in beamer, to produce an article from beamer
slides. (Carsten Gips)
+ Added support for `fontfamilies` structured variable
(Artem Klevtsov).
+ Added hypersetup options (Jake Zimmerman).

* LaTeX template:

+ Added dummy definition for `\institute`.
This isn't a standard command, and we want to avoid a crash when
`institute` is used with the default template.
+ Define default figure placement (Václav Haisman), since pandoc
no longer includes `[htbp]` for figures. Users with custom templates
will want to add this. See 3103.
+ Use footnote package to fix notes in tables (jgm/pandoc-templates208,
Václav Haisman).

* Moved template compiling/rendering code to a separate library.
`doctemplates`. This allows the pandoc templating system to be
used independently.

* Text.Pandoc.Error: Fix out of index error in `handleError`
(Matthew Pickering). The fix is to not try to show the exact line when
it would cause an out-of-bounds error as a result of included files.

* Text.Pandoc.Shared: Add `linesToBlock` function (Albert Krewinkel).

* Text.Pandoc.Parsing.emailAddress: tighten up parsing of email
addresses. Technically `**user` is a valid email address, but if we
allow things like this, we get bad results in markdown flavors
that autolink raw email addresses (see 2940). So we exclude a few
valid email addresses in order to avoid these more common bad cases.

* Text.Pandoc.PDF: Don't crash with nonexistent image (3100). Instead,
emit the alt text, emphasized. This accords with what the ODT writer
currently does. The user will still get a warning about a nonexistent
image.

* Fix example in API documentation (3176, Thomas Weißschuh).

* Tell where to get tarball in INSTALL (3062).

* Rename README to MANUAL.txt and add GitHub-friendly README.md
(Albert Krewinkel, Kolen Cheung).

* Replace COPYING with Markdown version COPYING.md from GNU (Kolen Cheung).

* MANUAL.txt:

+ Put note on structured vars in separate paragraph (2148, Albert
Krewinkel). Make it clearer that structured author variables require a
custom template
+ Note that `--katex` works best with `html5` (3077).
+ Fix the LaTeX and EPUB links in manual (Morton Fox).
+ Document `biblio-title` variable.

* Improve spacing of footnotes in `--help` output (Waldir Pimenta).

* Update KaTeX to v0.6.0 (Kolen Cheung).

* Allow latest dependencies.

* Use texmath 0.8.6.6 (3040).

* Allow http-client 0.4.30, which is the version in stackage lts.
Previously we required 0.5.
Remove CPP conditionals for earlier versions.

* Remove support for GHC < 7.8 (Jesse Rosenthal).

+ Remove Compat.Monoid.
+ Remove an inline monad compatibility macro.
+ Remove Text.Pandoc.Compat.Except.
+ Remove directory compat.
+ Change constraint on mtl.
+ Remove unnecessary CPP condition in UTF8.
+ Bump base lower bound to 4.7.
+ Remove 7.6 build from .travis.yaml.
+ Bump supported ghc version in CONTRIBUTING.md.
+ Add note about GHC version support to INSTALL.
+ Remove GHC 7.6 from list of tested versions (Albert Krewinkel).
+ Remove TagSoup compat.
+ Add EOL note to time compat module. Because time 1.4 is a boot library
for GHC 7.8, we will support the compatibility module as long as we
support 7.8. But we should be clear about when we will no longer need
it.
+ Remove blaze-html CPP conditional.
+ Remove unnecessary CPP in custom Prelude.

1.17.2

* Added Zim Wiki writer, template and tests. `zimwiki` is now
a valid output format. (Alex Ivkin)

* Changed email-obfuscation default to no obfuscation (2988).
+ `writerEmailObfuscation` in `defaultWriterOptions` is now
`NoObfuscation`.
+ the default for the command-line `--email-obfuscation` option is
now `none`.

* Docbook writer: Declare xlink namespace in Docbook5 output (Ivo Clarysse).

* Org writer:

+ Support arbitrary raw inlines (Albert Krewinkel).
Org mode allows arbitrary raw inlines ("export snippets" in Emacs
parlance) to be included as `format:raw foreign format text`.
+ Improve Div handling (Albert Krewinkel). Div blocks handling is
changed to make the output look more like idiomatic org mode:
- Div-wrapped content is output as-is if the div's attribute is the
null attribute.
- Div containers with an id but neither classes nor key-value pairs
are unwrapped and the id is added as an anchor.
- Divs with classes associated with greater block elements are
wrapped in a `+BEGIN`...`+END` block.
- The old behavior for Divs with more complex attributes is kept.

* HTML writer:

+ Better support for raw LaTeX environments (2758).
Previously we just passed all raw TeX through when MathJax was used for
HTML math. This passed through too much. With this patch, only raw
LaTeX environments that MathJax can handle get passed through.
This patch also causes raw LaTeX environments to be treated
as math, when possible, with MathML and WebTeX output.

* Markdown writer: use raw HTML for simple, pipe tables with linebreaks
(2993). Markdown line breaks involve a newline, and simple and pipe
tables can't contain one.

* Make --webtex work with the Markdown writer (1177).
This is a convenient option for people using
websites whose Markdown flavors don't provide for math.

* Docx writer:

+ Set paragraph to FirstPara after display math (Jesse Rosenthal).
We treat display math like block quotes, and apply FirstParagraph style
to paragraphs that follow them. These can be styled as the user
wishes. (But, when the user is using indentation, this allows for
paragraphs to continue after display math without indentation.)
+ Use actual creation time as doc prop (Jesse Rosenthal).
Previously, we had used the user-supplied date, if available, for Word's
document creation metadata. This could lead to weird results, as in
cases where the user post-dates a document (so the modification might be
prior to the creation). Here we use the actual computer time to set the
document creation.

* LaTeX writer:

+ Don't URI-escape image source (2825). Usually this is a local file,
and replacing spaces with `%20` ruins things.
+ Allow 'standout' as a beamer frame option (3007).
` Slide title {.standout}`.

* RST reader: Fixed links with no explicit link text. The link
`` `<foo>`_ `` should have `foo` as both its link text and its URL.
See RST spec at <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.htmlembedded-uris-and-aliases>
Closes Debian 828167 -- reported by Christian Heller.

* Textile reader:

+ Fixed attributes (2984). Attributes can't be followed by
a space. So, `_(class)emph_` but `_(noclass) emph_`.
+ Fixed exponential parsing bug (3020).
+ Fix overly aggressive interpretation as images (2998).
Spaces are not allowed in the image URL in textile.

* LaTeX reader:

+ Fix `\cite` so it is a NormalCitation not AuthorInText.
+ Strip off double quotes around image source if present (2825).
Avoids interpreting these as part of the literal filename.

* Org reader:

+ Add semicolon to list of special chars (Albert Krewinkel)
Semicolons are used as special characters in citations syntax. This
ensures the correct parsing of Pandoc-style citations: `[prefix; key;
suffix]`. Previously, parsing would have failed unless there was a space
or other special character as the last <prefix> character.
+ Add support for "Berkeley-style" cites (Albert Krewinkel, 1978).
A specification for an official Org-mode citation syntax was drafted by
Richard Lawrence and enhanced with the help of others on the orgmode
mailing list. Basic support for this citation style is added to the
reader.
+ Support arbitrary raw inlines (Albert Krewinkel).
Org mode allows arbitrary raw inlines ("export snippets" in Emacs
parlance) to be included as `format:raw foreign format text`.
+ Remove partial functions (Albert Krewinkel, 2991).
Partial functions like `head` lead to avoidable errors and should be
avoided. They are replaced with total functions.
+ Support figure labels (Albert Krewinkel, 2496, 2999).
Figure labels given as `+LABEL: thelabel` are used as the ID of the
respective image. This allows e.g. the LaTeX to add proper `\label`
markup.
+ Improve tag and properties type safety (Albert Krewinkel).
Specific newtype definitions are used to replace stringly typing of tags
and properties. Type safety is increased while readability is improved.
+ Parse as headlines, convert to blocks (Albert Krewinkel).
Emacs org-mode is based on outline-mode, which treats documents as trees
with headlines are nodes. The reader is refactored to parse into a
similar tree structure. This simplifies transformations acting on
document (sub-)trees.
* Refactor comment tree handling (Albert Krewinkel).
Comment trees were handled after parsing, as pattern matching on lists
is easier than matching on sequences. The new method of reading
documents as trees allows for more elegant subtree removal.
* Support archived trees export options (Albert Krewinkel).
Handling of archived trees can be modified using the `arch` option.
Archived trees are either dropped, exported completely, or collapsed to
include just the header when the `arch` option is nil, non-nil, or
`headline`, respectively.
* Put export setting parser into module (Albert Krewinkel).
Export option parsing is distinct enough from general block parsing to
justify putting it into a separate module.
* Support headline levels export setting (Albert Krewinkel).
The depths of headlines can be modified using the `H` option. Deeper
headlines will be converted to lists.
* Replace ugly code with view pattern (Albert Krewinkel).
Some less-than-smart code required a pragma switching of overlapping
pattern warnings in order to compile seamlessly. Using view patterns
makes the code easier to read and also doesn't require overlapping
pattern checks to be disabled.
* Fix parsing of verbatim inlines (Albert Krewinkel, 3016).
Org rules for allowed characters before or after markup chars were not
checked for verbatim text. This resultet in wrong parsing outcomes of
if the verbatim text contained e.g. space enclosed markup characters as
part of the text (`=is_substr = True=`). Forcing the parser to update
the positions of allowed/forbidden markup border characters fixes this.

* LaTeX template: fix for obscure hyperref/xelatex issue.
Here's a minimal case:

\documentclass[]{article}
\usepackage{hyperref}
\begin{document}
\section{\%á}
\end{document}

Without this change, this fails on the second invocation of xelatex.
This affects inputs this like ` %á` with pdf output via xelatex.

* trypandoc: call results 'html' instead of 'result'.
This is for better compatibility with babelmark2.

* Document MultiMarkdown as input/output format (Albert Krewinkel, 2973).
MultiMarkdown was only mentioned as a supported Markdown dialect but not
as a possible input or output format. A brief mention is added
everywhere the other supported markdown dialects are mentioned.

* Document Org mode as a format containing raw HTML (Albert Krewinkel)
Raw HTML is kept when the output format is Emacs Org mode.

* Implement `RawInline` and `RawBlock` in sample lua custom writer (2985).

* Text.Pandoc.Shared:

+ Introduce blocksToInlines function (Jesse Rosenthal).
This is a lossy function for converting `[Block] -> [Inline]`. Its main
use, at the moment, is for docx comments, which can contain arbitrary
blocks (except for footnotes), but which will be converted to spans.
This is, at the moment, pretty useless for everything but the basic
`Para` and `Plain` comments. It can be improved, but the docx reader
should probably emit a warning if the comment contains more than this.
+ Add BlockQuote to blocksToInlines (Jesse Rosenthal).
+ Add further formats for `normalizeDate` (Jesse Rosenthal).
We want to avoid illegal dates -- in particular years with greater than
four digits. We attempt to parse series of digits first as `%Y%m%d`, then
`%Y%m`, and finally `%Y`.
+ `normalizeDate` should reject illegal years (Jesse Rosenthal).
We only allow years between 1601 and 9999, inclusive. The ISO 8601
actually says that years are supposed to start with 1583, but MS Word
only allows 1601-9999. This should stop corrupted word files if the date
is out of that range, or is parsed incorrectly.
+ Improve year sanity check in normalizeDate (Jesse Rosenthal).
Previously we parsed a list of dates, took the first one, and then
tested its year range. That meant that if the first one failed, we
returned nothing, regardless of what the others did. Now we test for
sanity before running `msum` over the list of Maybe values. Anything
failing the test will be Nothing, so will not be a candidate.

* Docx reader:

+ Add simple comment functionality. (Jesse Rosenthal).
This adds simple track-changes comment parsing to the docx reader. It is
turned on with `--track-changes=all`. All comments are converted to
inlines, which can list some information. In the future a warning will be
added for comments with formatting that seems like it will be excessively
denatured. Note that comments can extend across blocks. For that reason
there are two spans: `comment-start` and `comment-end`. `comment-start`
will contain the comment. `comment-end` will always be empty. The two
will be associated by a numeric id.
+ Enable warnings in top-level reader (Jesse Rosenthal).
Previously we had only allowed for warnings in the parser. Now we allow
for them in the `Docx.hs` as well. The warnings are simply concatenated.
+ Add warning for advanced comment formatting. (Jesse Rosenthal).
We can't guarantee we'll convert every comment correctly, though we'll
do the best we can. This warns if the comment includes something other
than Para or Plain.
+ Add tests for warnings. (Jesse Rosenthal).
+ Add tests for comments (Jesse Rosenthal).
We test for comments, using all track-changes options. Note that we
should only output comments if `--track-changes=all`. We also test for
emitting warnings if there is complicated formatting.

* README: update to include track-changes comments. (Jesse Rosenthal)

* Improved Windows installer - don't ignore properties set on command-line.
See 2708. Needs testing to see if this resolves the issue.
Thanks to nkalvi.

* Process markdown extensions on command line in L->R order (2995).
Previously they were processed, very unintuitively, in R->L
order, so that `markdown-tex_math_dollars+tex_math_dollars`
had `tex_math_dollars` disabled.

* Added `secnumdepth` variable to LaTeX template (2920).

* Include table of contents in README.html in Windows package.

* Writers: treat SoftBreak as space for stripping (Jesse Rosenthal)
In Writers.Shared, we strip leading and trailing spaces for display
math. Since SoftBreak's are treated as spaces, we should strip those
too.

* beamer, latex templates: pass biblatexoptions directly in package load.
This allows runtime optinos to be used. Fixes jgm/pandoc-citeproc201

* CPP workaround for deprecation of `parseUrl` in http-client.

* Removed some redundant class constraints.

* make_oxs_package.sh - use OSX env variable.

* Replaced INSTALL with INSTALL.md, incorporating INSTALL and the
old installing page from website.

* Added `winpkg` target to Makefile. This downloads the windows package
from appveyor and signs it using the key.

* Document Org mode as a format containing raw TeX (Albert Krewinkel).
Raw TeX is kept verbatim when the output format is Emacs Org mode.

* Support math with haddock-library >= 1.4.

* Removed `-rtsopts` from library stanza. It has no effect, and Hackage
wouldn't accept the package.

* Update library dependency versions.

1.17.1

* New output format: `docbook5` (Ivo Clarysse).

* `Text.Pandoc.Options`: Add `writerDocBook5` to `WriterOptions`
(API change).

* Org writer:

+ Add :PROPERTIES: drawer support (Albert Krewinkel, 1962).
This allows header attributes to be added to org documents in the form
of `:PROPERTIES:` drawers. All available attributes are stored as
key/value pairs. This reflects the way the org reader handles
`:PROPERTIES:` blocks.
+ Add drawer capability (Carlos Sosa). For the implementation of the
Drawer element in the Org Writer, we make use of a generic Block
container with attributes. The presence of a `drawer` class defines
that the `Div` constructor is a drawer. The first class defines the
drawer name to use. The key-value list in the attributes defines
the keys to add inside the Drawer. Lastly, the list of Block elements
contains miscellaneous blocks elements to add inside of the Drawer.
+ Use `CUSTOM_ID` in properties (Albert Krewinkel). The `ID` property is
reserved for internal use by Org-mode and should not be used.
The `CUSTOM_ID` property is to be used instead, it is converted to the
`ID` property for certain export format.

* LaTeX writer:

+ Ignore `--incremental` unless output format is beamer (2843).
+ Fix polyglossia to babel env mapping (Mauro Bieg, 2728).
Allow for optional argument in square brackets.
+ Recognize `la-x-classic` as Classical Latin (Andrew Dunning).
This allows one to access the hyphenation patterns in CTAN's
hyph-utf8.
+ Add missing languages from hyph-utf8 (Andrew Dunning).
+ Improve use of `\strut` with `\minipage` inside tables
(Jose Luis Duran). This improves spacing in multiline
tables.
+ Use `{}` around options containing special chars (2892).
+ Avoid lazy `foldl`.
+ Don't escape underscore in labels (2921). Previously they were
escaped as `ux5f`.
+ brazilian -> brazil for polyglossia (2953).

* HTML writer: Ensure mathjax link is added when math appears in footnote
(2881). Previously if a document only had math in a footnote, the
MathJax link would not be added.

* EPUB writer: set `navpage` variable on nav page.
This allows templates to treat it differently.

* DocBook writer:

+ Use docbook5 if `writerDocbook5` is set (Ivo Clarysse).
+ Properly handle `ulink`/`link` (Ivo Clarysse).

* EPUB reader:

+ Unescape URIs in spine (2924).
+ EPUB reader: normalise link id (Mauro Bieg).

* Docx Reader:

+ Parse `moveTo` and `moveFrom` (Jesse Rosenthal).
`moveTo` and `moveFrom` are track-changes tags that are used when a
block of text is moved in the document. We now recognize these tags and
treat them the same as `insert` and `delete`, respectively. So,
`--track-changes=accept` will show the moved version, while
`--track-changes=reject` will show the original version.
+ Tests for track-changes moving (Jesse Rosenthal).

* ODT, EPUB, Docx readers: throw `PandocError` on unzip failure
(Jesse Rosenthal) Previously, `readDocx`, `readEPUB`, and `readOdt`
would error out if zip-archive failed. We change the archive extraction
step from `toArchive` to `toArchiveOrFail`, which returns an Either value.

* Markdown, HTML readers: be more forgiving about unescaped `&` in
HTML (2410). We are now more forgiving about parsing invalid HTML with
unescaped `&` as raw HTML. (Previously any unescaped `&`
would cause pandoc not to recognize the string as raw HTML.)

* Markdown reader:

+ Added bracket syntax for native spans (168).
+ Fix pandoc title blocks with lines ending in 2 spaces (2799).
+ Added `-s` to markdown-reader-more test.

* HTML reader: fixed bug in `pClose`. This caused exponential parsing
behavior in documnets with unclosed tags in `dl`, `dd`, `dt`.

* MediaWiki reader: Allow spaces before `!` in MediaWiki table header
(roblabla).

* RST reader: Support `:class:` option for code block in RST reader
(Sidharth Kapur).

* Org reader (all Albert Krewinkel, except where noted otherwise):

+ Stop padding short table rows.
Emacs Org-mode doesn't add any padding to table rows. The first
row (header or first body row) is used to determine the column count,
no other magic is performed.
+ Refactor rows-to-table conversion. This refactors
the codes conversing a list table lines to an org table ADT.
The old code was simplified and is now slightly less ugly.
+ Fix handling of empty table cells, rows (Albert Krewinkel, 2616).
This fixes Org mode parsing of some corner cases regarding empty cells
and rows. Empty cells weren't parsed correctly, e.g. `|||` should be
two empty cells, but would be parsed as a single cell containing a pipe
character. Empty rows where parsed as alignment rows and dropped from
the output.
+ Fix spacing after LaTeX-style symbols.
The org-reader was droping space after unescaped LaTeX-style symbol
commands: `\ForAll \Auml` resulted in `∀Ä` but should give `∀ Ä`
instead. This seems to be because the LaTeX-reader treats the
command-terminating space as part of the command. Dropping the trailing
space from the symbol-command fixes this issue.
+ Print empty table rows. Empty table rows should not
be dropped from the output, so row-height is always set to be at least 1.
+ Move parser state into separate module.
The org reader code has become large and confusing. Extracting smaller
parts into submodules should help to clean things up.
+ Add support for sub/superscript export options.
Org-mode allows to specify export settings via `+OPTIONS` lines.
Disabling simple sub- and superscripts is one of these export options,
this options is now supported.
+ Support special strings export option Parsing of special strings
(like `...` as ellipsis or `--` as en dash) can be toggled using the `-`
option.
+ Support emphasized text export option. Parsing of emphasized text can
be toggled using the `*` option. This influences parsing of text marked
as emphasized, strong, strikeout, and underline. Parsing of inline math,
code, and verbatim text is not affected by this option.
+ Support smart quotes export option. Reading of smart quotes can be
toggled using the `'` option.
+ Parse but ignore export options. All known export options are parsed
but ignored.
+ Refactor block attribute handling. A parser state attribute was used
to keep track of block attributes defined in meta-lines. Global state
is undesirable, so block attributes are no longer saved as part of the
parser state. Old functions and the respective part of the parser state
are removed.
+ Use custom `anyLine`. Additional state changes need to be made after
a newline is parsed, otherwise markup may not be recognized correctly.
This fixes a bug where markup after certain block-types would not be
recognized.
+ Add support for `ATTR_HTML` attributes (1906).
Arbitrary key-value pairs can be added to some block types using a
`+ATTR_HTML` line before the block. Emacs Org-mode only includes these
when exporting to HTML, but since we cannot make this distinction here,
the attributes are always added. The functionality is now supported
for figures.
+ Add `:PROPERTIES:` drawer support (1877).
Headers can have optional `:PROPERTIES:` drawers associated with them.
These drawers contain key/value pairs like the header's `id`. The
reader adds all listed pairs to the header's attributes; `id` and
`class` attributes are handled specially to match the way `Attr` are
defined. This also changes behavior of how drawers of unknown type
are handled. Instead of including all unknown drawers, those are not
read/exported, thereby matching current Emacs behavior.
+ Use `CUSTOM_ID` in properties. See above on Org writer changes.
+ Respect drawer export setting. The `d` export option can be used
to control which drawers are exported and which are discarded.
Basic support for this option is added here.
+ Ignore leading space in org code blocks (Emanuel Evans, 2862).
Also fix up tab handling for leading whitespace in code blocks.
+ Support new syntax for export blocks. Org-mode version 9
uses a new syntax for export blocks. Instead of `+BEGIN_<FORMAT>`,
where `<FORMAT>` is the format of the block's content, the new
format uses `+BEGIN_export <FORMAT>` instead. Both types are
supported.
+ Refactor `BEGIN...END` block parsing.
+ Fix handling of whitespace in blocks, allowing content to be indented
less then the block header.
+ Support org-ref style citations. The *org-ref* package is an
org-mode extension commonly used to manage citations in org
documents. Basic support for the `cite:citeKey` and
`[[cite:citeKey][prefix text::suffix text]]` syntax is added.
+ Split code into separate modules, making for cleaner code and
better decoupling.

* Added `docbook5` template.

* `--mathjax` improvements:

+ Use new CommonHTML output for MathJax (updated default MathJax URL,
2858).
+ Change default mathjax setup to use `TeX-AMS_CHTML` configuration.
This is designed for cases where the input is always TeX and maximal
conformity with TeX is desired. It seems to be smaller and load faster
than what we used before. See 2858.
+ Load the full MathJax config to maximize loading speed (KolenCheung).

* Bumped upper version bounds to allow use of latest packages
and compilation with ghc 8.

* Require texmath 0.8.6.2. Closes several texmath-related bugs (2775,
2310, 2310, 2824). This fixes behavior of roots, e.g.
`\sqrt[3]{x}`, and issues with sub/superscript positioning
and matrix column alignment in docx.

* README:

+ Clarified documentation of `implicit_header_references` (2904).
+ Improved documentation of `--columns` option.

* Added appveyor setup, with artefacts (Jan Schulz).

* stack.yaml versions: Use proper flags used for texmath, pandoc-citeproc.

* LaTeX template: support for custom font families (vladipus).
Needed for correct polyglossia operation with Cyrillic fonts and perhaps
can find some other usages. Example usage in YAML metadata:

fontfamilies:
- name: \cyrillicfont
font: Liberation Serif
- name: \cyrillicfonttt
options: Scale=MatchLowercase
font: Liberation

* Create unsigned msi as build artifact in appveyor build.

* On travis, test with ghc 8.0.1; drop testing for ghc 7.4.1.

Page 1 of 15

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.