` closes `` and behaves like a block element generally
+ Support column alignments (#1881). These can be set either
with a `width` attribute or with `text-width` in a `style` attribute.
+ Modified state type to be an instance of `HasLogMessages`, so
`registerHeader` can issue warnings.
* Txt2Tags reader:
+ Newline is not indentation (Alexander Krotov).
* MediaWiki reader:
+ Allow extra hyphens after `|-` in tables (#2649).
+ Allow blank line after table start (#2649).
+ Fixed more table issues (#2649).
+ Ensure that list starts begin at left margin (#2606). Including when
they're in tables or other list items.
+ Make smart double quotes depend on `smart` extension (#3585).
+ Don't do curly quotes inside `` contexts (#3585). Even if `+smart`.
+ Modified state type to be an instance of `HasLogMessages`, so
`registerHeader` can issue warnings.
* TWiki reader (Alexander Krotov):
+ Remove unnecessary `$` (#3597).
+ Simplify `linkText` (#3605).
* EPUB reader:
+ Minor refactoring, avoiding explicit MediaBag handling.
This all works behind the scenes in CommonState plumbing.
* Docx reader:
+ Don't drop smartTag contents (#2242).
+ Handle local namespace declarations (#3365). Previously we didn't
recognize math, for example, when the xmlns declaration occured on
the element and not the root.
+ More efficient trimSps (#1530). Replacing `trimLineBreaks`. This
does the work of `normalizeSpaces` as well, so we avoid the need for
that function here.
+ Avoid 0-level headers (Jesse Rosenthal, #3830). We used to parse
paragraphs styled with "HeadingN" as "nth-level header." But if a
document has a custom style named "Heading0", this will produce a
0-level header, which shouldn't exist. We only parse this style
if N>0. Otherwise we treat it as a normal style name, and
follow its dependencies, if any.
+ Add tests for avoiding zero-level header (Jesse Rosenthal).
* ODT reader:
+ Replaced `collectRights` with Rights from `Data.Either`.
+ Remove dead code (Albert Krewinkel).
* Org reader (Albert Krewinkel, unless noted).
+ Don't allow tables inside list items (John MacFarlane, #3499).
+ Disallow tables on list marker lines (#3499).
+ Convert markup at beginning of footnotes (John MacFarlane, #3576).
+ Allow emphasized text to be followed by `[` (#3577).
+ Handle line numbering switch for src blocks.
The line-numbering switch that can be given to source blocks (`-n` with
an start number as an optional parameter) is parsed and translated to a
class/key-value combination used by highlighting and other readers and
writers.
+ Stop adding rundoc prefix to src params. Source block parameter names
are no longer prefixed with `rundoc`. This was intended to simplify
working with the rundoc project, a babel runner. However, the rundoc
project is unmaintained, and adding those markers is not the reader's
job anyway. The original language that is specified for a source
element is now retained as the `data-org-language` attribute and only
added if it differs from the translated language.
+ Allow multi-word arguments to src block params (#3477). The reader now
correctly parses src block parameter list even if parameter arguments
contain multiple words.
+ Avoid creating `nullMeta` by applying `setMeta` directly
(Alexander Krotov).
+ Replace `sequence . map` with `mapM`.
+ Fix smart parsing behavior. Parsing of smart quotes and special
characters can either be enabled via the `smart` language extension or
the `'` and `-` export options. Smart parsing is active if either the
extension or export option is enabled. Only smart parsing of special
characters (like ellipses and en and em dashes) is enabled by default,
while smart quotes are disabled. Previously, all smart parsing was
disabled unless the language extension was enabled.
+ Subject full doc tree to headline transformations (Albert Krewinkel,
#3695). Emacs parses org documents into a tree structure, which is
then post-processed during exporting. The reader is changed to do the
same, turning the document into a single tree of headlines starting
at level 0.
+ Fix cite parsing behaviour (Herwig Stuetz). Until now, `org-ref`
cite keys included special characters also at the end. This caused
problems when citations occur right before colons or at the end of
a sentence. With this change, all non alphanumeric characters at
the end of a cite key are ignored. This also adds `,` to the list
of special characters that are legal in cite keys to better mirror
the behaviour of org-export.
+ Fix module names in haddock comments. Copy-pasting had lead to
haddock module descriptions containing the wrong module names.
+ Recognize babel result blocks with attributes (#3706). Babel
result blocks can have block attributes like captions and names.
Result blocks with attributes were not recognized and were parsed
as normal blocks without attributes.
+ Include tags in headlines. The Emacs default is to include tags in the
headline when exporting. Instead of just empty spans, which contain the
tag name as attribute, tags are rendered as small caps and wrapped in
those spans. Non-breaking spaces serve as separators for multiple tags.
+ Respect export option for tags (#3713). Tags are appended to
headlines by default, but will be omitted when the `tags` export option
is set to nil.
+ Use `tag-name` attribute instead of `data-tag-name`.
+ Use `org-language` attribute rather than `data-org-language`.
+ Modified state type to be an instance of `HasLogMessages`, so
`registerHeader` can issue warnings.
+ End footnotes after two blank lines. Footnotes can not only be
terminated by the start of a new footnote or a header, but also by two
consecutive blank lines.
+ Update emphasis border chars (#3933). The org reader was updated to
match current org-mode behavior: the set of characters which are
acceptable to occur as the first or last character in an org emphasis
have been changed and now allows all non-whitespace chars at the
inner border of emphasized text (see `org-emphasis-regexp-components`).
* RST reader:
+ Fixed small bug in list parsing (#3432). Previously the parser didn't
handle properly this case:
* - a
- b
* - c
- d
+ Handle multiline cells in simple tables (#1166).
+ Parse list table directive (Keiichiro Shikano, #3432).
+ Make use of `anyLineNewline` (Alexander Krotov, #3686).
+ Use `anyLineNewline` in `rawListItem` (Alexander Krotov, #3702).
+ Reorganize block parsers for ~20% faster parsing.
+ Fixed `..include::` directive (#3880).
+ Handle blank lines correctly in line blocks (Alexander Krotov, #3881).
Previously pandoc would sometimes combine two line blocks separated
by blanks, and ignore trailing blank lines within the line block.
+ Fix indirect hyperlink targets (#512).
* Markdown reader:
+ Allow attributes in reference links to start on next line (#3674).
+ Parse YAML metadata in a context that sees footnotes defined in
the body of the document (#1279).
+ When splitting pipe table cells, skip tex math (#3481).
You might have a `|` character inside math. (Or for that matter
something that the parser might mistake for raw HTML.)
+ Treat span with class `smallcaps` as SmallCaps.
This allows users to specify small caps in Markdown this way:
`[my text]{.smallcaps}` (#1592).
+ Fixed internal header links (#2397).
This patch also adds `shortcut_reference_links` to the list
of mmd extensions.
+ Treat certain environments as inline
when they occur without space surrounding them (#3309, #2171).
E.g. equation, math. This avoids incorrect vertical space
around equations.
+ Optimized `nonindentSpaces`. Makes the benchmark go from 40 to 36 ms.
+ Allow latex macro definitions indented 1-3 spaces.
Previously they only worked if nonindented.
+ Improved parsing of indented raw HTML blocks (#1841).
Previously we inadvertently interpreted indented HTML as
code blocks. This was a regression. We now seek to determine the
indentation level of the contents of an HTML block, and (optionally)
skip that much indentation. As a side effect, indentation may be
stripped off of raw HTML blocks, if `markdown_in_html_blocks` is
used. This is better than having things interpreted as indented
code blocks.
+ Fixed smart quotes after emphasis (#2228). E.g. in `*foo*'s 'foo'`.
+ Warn for notes defined but not used (#1718).
+ Use `anyLineNewline` (Alexander Krotov).
+ Interpret YAML metadata as Inlines when possible (#3755). If
the metadata field is all on one line, we try to interpret it as
Inlines, and only try parsing as Blocks if that fails. If it
extends over one line (including possibly the `|` or `>` character
signaling an indented block), then we parse as Blocks. This was
motivated by some German users finding that `date: '22. Juin 2017'`
got parsed as an ordered list.
+ Fixed spurious parsing as citation as reference def (#3840).
We now disallow reference keys starting with `@` if the
`citations` extension is enabled.
+ Parse `-@roe` as suppress-author citation (pandoc-citeproc#237).
Previously only `[-@roe]` (with brackets) was recognized as
suppress-author, and `-@roe` was treated the same as `@roe`.
+ Fixed parsing of fenced code after list when there is no intervening
blank line (#3733).
+ Allow raw latex commands starting with `\start` (#3558). Previously
these weren't allowed because they were interpreted as starting
ConTeXt environments, even without a corresponding `\stop`...
+ Added `inlines`, `inlines1`.
+ Require nonempty alt text for `implicit_figures` (#2844).
A figure with an empty caption doesn't make sense.
+ Removed texmath macro material; now all this is handled
in the LaTeX reader functions.
+ Fixed bug with indented code following raw LaTeX (#3947).
* LaTeX reader:
+ Rewrote LaTeX reader with proper tokenization (#1390,
#2118, #3236, #3779, #934, #982). This rewrite is primarily
motivated by the need to get macros working properly. A side benefit
is that the reader is significantly faster. We now tokenize the
input text, then parse the token stream. Macros modify the token
stream, so they should now be effective in any context, including
math. Thus, we no longer need the clunky macro processing
capacities of texmath.
+ Parse `\,` to `\8198` (six-per-em space) (Henri Werth).
+ Allow `\newcommand\foo{blah}` without braces.
+ Support `\lstinputlisting` (#2116).
+ Issue warnings when skipping unknown latex commands (#3392).
+ Include contents of `\parbox`.
+ Allow `\hspace` and `\vspace` to count as raw block or inline.
Previously we would refuse to parse anything as raw inline if
it was in the `blockCommands` list. Now we allow exceptions
if they're listed under ignoreInlines in inlineCommands.
This should make it easier e.g. to include an `\hspace`
between two side-by-side raw LaTeX tables.
+ Don't drop contents of `\hypertarget`.
+ Handle spaces before `\cite` arguments.
+ Allow newpage, clearpage, pagebreak in inline contexts as well as
block contexts (#3494).
+ Treat `{{xxx}}` the same as `{xxx}` (#2115).
+ Use `pMacroDefinition` in macro (for more direct parsing).
Note that this means that `macro` will now parse one
macro at a time, rather than parsing a whole group together.
+ Fixed failures on \ref{}, \label{} with `+raw_tex`. Now these
commands are parsed as raw if `+raw_tex`; otherwise, their argument
is parsed as a bracketed string.
+ Don't crash on empty `enumerate` environment (#3707).
+ Handle escaped `&` inside table cell (#3708).
+ Handle block structure inside table cells (#3709). `minipage` is no
longer required.
+ Handle some width specifiers on table columns (#3709). Currently
we only handle the form `0.9\linewidth`. Anything else would have
to be converted to a percentage, using some kind arbitrary assumptions
about line widths.
+ Make sure `\write18` is parsed as raw LaTeX. The change is in the
LaTeX reader's treatment of raw commands, but it also affects the
Markdown reader.
+ Fixed regression with starred environment names (#3803).
+ Handle optional args in raw `\titleformat` (#3804).
+ Improved heuristic for raw block/inline. An unknown command at the
beginning of the line that could be either block or inline is
treated as block if we have a sequence of block commands followed by
a newline or a `\startXXX` command (which might start a raw ConTeXt
environment).
+ Don't remove macro definitions from the output, even if
`Ext_latex_macros` is set, so that macros will be applied.
Since they're only applied to math in Markdown, removing the macros
can have bad effects. Even for math macros, keeping them should be
harmless.
+ Removed `macro`. It is no longer necessary, since the
`rawLaTeXBlock` parser will parse macro definitions. This also avoids
the need for a separate `latexMacro` parser in the Markdown reader.
+ Use `label` instead of `data-label` for label in caption (#3639).
+ Fixed space after \figurename etc.
+ Resolve references to section numbers.
+ Fix `\let\a=0` case, with single character token.
+ Allow `@` as a letter in control sequences. `@` is commonly used
in macros using `\makeatletter`. Ideally we'd make the tokenizer
sensitive to `\makeatletter` and `\makeatother`, but until then this
seems a good change.
+ Track header numbers and correlate with labels.
+ Allow `]` inside group in option brackets (#3857).
+ lstinline with braces can be used (verb cannot be used with braces)
(Marc Schreiber, #3535).
+ Fix keyval funtion: pandoc did not parse options in braces correctly
(Marc Schreiber, #3642).
+ When parsing raw LaTeX commands, include trailing space (#1773).
Otherwise things like `\noindent foo` break and turn into
`\noindentfoo`. Affects `-f latex+raw_tex` and `-f markdown` (and other
formats that allow `raw_tex`).
+ Don't treat "..." as Quoted (#3958). This caused quotes to be omitted in
`\texttt` contexts.
+ Add tests for existing `\includegraphics` behaviour (Ben Firshman).
+ Allow space before `=` in bracketd options (Ben Firshman).
+ Be more forgiving in parsing command options. This was needed, for
example, to make some minted options work.
+ Strip off quotes in `\include` filenames.
* Added `Text.Pandoc.CSV`, simple (unexported) CSV parser.
* `Text.Pandoc.PDF`:
+ Got `--resource-path` working with PDF output (#852).
+ Fetch images when generating PDF via context (#3380).
To do this, we create the temp directory as a subdirectory
of the working directory. Since context mk IV by default looks
for images in the parent directory, this works.
+ Use `report` instead of `warn`, make it sensitive to verbosity settings.
+ Use `fillMediaBag` and `extractMedia` to extract media to temp dir.
This reduces code duplication.
+ `html2pdf`: use stdin instead of intermediate HTML file
+ Removed useless `TEXINPUTS` stuff for `context2pdf`. mkiv context
doesn't use `TEXINPUTS`.
* `Text.Pandoc.Pretty`:
+ Simplified definition of `realLength`.
+ Don't error for blocks of size < 1. Instead, resize to 1 (see #1785).
* `Text.Pandoc.MIME`:
+ Use `application/javascript` (not `application/x-javascript`).
+ Added `emf` to mimeTypes with type `application/x-msmetafile` (#1713).
* `Text.Pandoc.ImageSize`:
+ Improve SVG image size code (Marc Schreiber, #3580).
+ Make `imageSize` recognize basic SVG dimensions (Mauro Bieg, #3462).
* Use `Control.Monad.State.Strict` throughout. This gives 20-30% speedup
and reduction of memory usage in most of the writers.
* Use `foldrWithKey` instead of deprecated `foldWithKey`.
* `Text.Pandoc.SelfContained`:
+ Fixed problem with embedded fonts (#3629).
+ Refactored getData from `getDataURI` in `SelfContained`.
+ Don't use data URIs for script or style (#3423). Instead, just use
script or style tags with the content inside. The old method with
data URIs prevents certain optimizations outside pandoc. Exception:
data URIs are still used when a script contains `` or a
style contains ``.
+ SelfContained: Handle URL inside material retrieved from a URL
(#3629). This can happen e.g. with an @import of a google web font.
(What is imported is some CSS which contains an url reference
to the font itself.) Also, allow unescaped pipe (|) in URL.
+ Load resources from `data-src` (needed for lazy loading in
reveal.js slide shows).
+ Handle `data-background-image` attribute on section (#3979).
* `Text.Pandoc.Parsing`:
+ Added `indentWith` (Alexander Krotov, #3687).
+ Added `stateCitations` to `ParserState`.
+ Removed `stateChapters` from `ParserState`.
+ In `ParserState`, make `stateNotes'` a Map, add `stateNoteRefs`.
+ Added `gobbleSpaces` and `gobbleAtMostSpaces`.
+ Adjusted type of `insertIncludedFile` so it can be used with token
parser.
+ Replace old texmath macro stuff from Parsing. Use Macro from
Text.Pandoc.Readers.LaTeX.Types instead.
+ Export `insertIncludedFile`.
+ Added `HasLogMessages`, `logMessage`, `reportLogMessages` (#3447).
+ Replace partial with total function (Albert Krewinkel).
+ Introduce `HasIncludeFiles` type class (Albert Krewinkel). The
`insertIncludeFile` function is generalized to work with all parser
states which are instances of that class.
+ Add `insertIncludedFilesF` which returns F blocks (Albert Krewinkel).
The `insertIncludeFiles` function was generalized and renamed
to `insertIncludedFiles'`; the specialized versions are based on that.
+ `many1Till`: Check for the end condition before parsing (Herwig
Stuetz). By not checking for the end condition before the first
parse, the parser was applied too often, consuming too much of the
input. This only affects `many1Till p end` where `p` matches on a
prefix of `end`.
+ Provide `parseFromString` (#3690). This is a verison of
`parseFromString` specialied to ParserState, which resets
`stateLastStrPos` at the end. This is almost always what we want.
This fixes a bug where `_hi_` wasn't treated as emphasis in the
following, because pandoc got confused about the position of the
last word: `- [o] _hi_`.
+ Added `takeP`, `takeWhileP` for efficient parsing of `[Char]`.
+ Fix `blanklines` documentation (Alexander Krotov, #3843).
+ Give less misleading line information with `parseWithString`.
Previously positions would be reported past the end of the chunk.
We now reset the source position within the chunk and report
positions "in chunk."
+ Add `anyLineNewline` (Alexander Krotov).
+ Provide shared F monad functions for Markdown and Org readers
(Albert Krewinkel). The `F` monads used for delayed evaluation
of certain values in the Markdown and Org readers are based on a
shared data type capturing the common pattern of both `F` types.
+ Add `returnF` (Alexander Krotov).
+ Avoid parsing `Notes:**` as a bare URI (#3570). This avoids parsing
bare URIs that start with a scheme + colon + `*`, `_`, or `]`.
+ Added `readerAbbreviations` to `ParserState`. Markdown reader
now consults this to determine what is an abbreviation.
+ Combine grid table parsers (Albert Krewinkel, #3638). The grid table
parsers for markdown and rst was combined into one single
parser `gridTable`, slightly changing parsing behavior of both
parsers: (1) The markdown parser now compactifies block content
cell-wise: pure text blocks in cells are now treated as paragraphs
only if the cell contains multiple paragraphs, and as plain blocks
otherwise. Before, this was true only for single-column tables. (2)
The rst parser now accepts newlines and multiple blocks in header
cells.
+ Generalize tableWith, gridTableWith (Albert Krewinkel).
The parsing functions `tableWith` and `gridTableWith` are generalized
to work with more parsers. The parser state only has to be an
instance of the `HasOptions` class instead of requiring a concrete
type. Block parsers are required to return blocks wrapped into a
monad, as this makes it possible to use parsers returning results
wrapped in `Future`s.
* `Text.Pandoc.Shared`:
+ Simplify `toRomanNumeral` using guards (Alexander Krotov, #3445)
+ `stringify`: handle Quoted better (#3958). Previously we were losing
the quotation marks in Quoted elements.
* `Text.Pandoc.Writers.Shared`:
+ Export `metaToJSON'`, `addVariablesToJSON` (#3439).
This allows us to add the variables AFTER using the metadata
to generate a YAML header (in the Markdown writer).
+ Added `unsmartify` (previously in RST writer).
Undo literal double curly quotes. Previously we left these.
+ Generalize type of `metaToJSON` so it can take a Text. Previously a
String was needed as argument; now any ToJSON instance will do.
+ Added `gridTable` (previously in Markdown writer).
+ `gridTable`: Refactored to use widths in chars.
+ `gridTable`: remove unnecessary extra space in cells.
+ Fixed `addVariablesToJSON`. It was previously not allowing multiple
values to become lists.
+ Pipe tables: impose minimum cell size (see #3526).
[default template changes]
* HTML templates (including EPUB and HTML slide show templates):
+ Make default.html5 polyglot markup conformant (John Luke Bentley,
#3473). Polyglot markup is HTML5 that is also valid XHTML. See
. With this change, pandoc's
html5 writer creates HTML that is both valid HTML5 and valid XHTML.
+ Regularized CSS in html/epub/html slide templates (#3485).
All templates now include `code{white-space: pre-wrap}`
and CSS for `q` if `--html-q-tags` is used. Previously some templates
had `pre` and others `pre-wrap`; the `q` styles were only sometimes
included.
+ CSS for `.smallcaps`, (Mauro Bieg, #1592)
+ `default.revealjs`: make `history` default to true.
+ `default.revealjs`: use lazy loading (#2283).
+ `default.revealjs`: add `mathjax` variable and some conditional code
to use the MathJaX plugin.
+ `default.slidy` uses `https` instead of `http` (ickc, #3848).
+ `default.dzslides`: Load Google Font using HTTPS by default
(Yoan Blanc).
* DocBook5 template: Use `lang` and `subtitle` variables (Jens Getreu,
#3855).
* LaTeX/Beamer template:
+ Combine LaTeX/Beamer templates (Andrew Dunning, #3878).
`default.beamer` has been removed; beamer now uses the
`default.latex` template. Beamer-specific parts are conditional
on the `beamer` variable set by the writer. Note that
`pandoc -D beamer` will return this (combined) template.
+ Use `xcolor` for `colorlinks` option (Andrew Dunning, #3877).
Beamer loads `xcolor` rather than `color`, and thus the
`dvipsnames` option doesn't take effect. This also provides a wider
range of colour selections with the `svgnames` option.
+ Use starred versions of `xcolor` names (Andrew Dunning).
Prevents changes to documents defined using the `dvipsnames` list (e.g.
`Blue` gives a different result with svgnames enabled).
+ Load `polyglossia` after header-includes (#3898). It needs to be
loaded as late as possible.
+ Use `unicode-math` (Vaclav Haisman). Use `mathspec` with only
XeLaTeX on request.
+ Don't load `fontspec` before `unicode-math` (over there).
The `unicode-math` package loads `fontspec` so explict loading of
`fontspec` before `unicode-math` is not necessary.
+ Use `unicode-math` by default in default.latex template. mathspec will
be used in xelatex if the `mathspec` variable is set; otherwise
unicode-math will be used (Václav Haisman).
+ Use `dvipsnames` options when `colorlinks` specified (otherwise
we get an error for `maroon`) (Thomas Hodgson).
+ Added beamer `titlegraphic` and `logo` variables (Thomas Hodgson).
+ Fix typo in fix for notes in tables (#2378, zeeMonkeez).
+ Fix `hyperref` options clash (Andrew Dunning, #3847) Avoids an options
clash when loading a package (e.g. `tufte-latex`) that uses
`hyperref` settings different from those in the template.
+ Add `natbiboptions` variable (#3768).
+ Fix links inside captions in LaTeX output with links-as-notes
(Václav Haisman, #3651). Declare our redefined `\href` robust.
+ Load `parskip` before `hyperref` (Václav Haisman, #3654).
+ Allow setting Japanese fonts when using LuaLaTeX (Václav Haisman,
#3873). by using the `luatexja-fontspec` and `luatexja-preset`
packages. Use existing `CJKmainfont` and `CJKoptions` template
variables. Add `luatexjafontspecoptions` for `luatexja-fontspec`
and `luatexjapresetoptions` for `luatexja-preset`.
+ Added `aspectratio` variable to beamer template (Václav Haisman,
#3723).
+ Modified template.latex to fix XeLaTex being used with tables
(lwolfsonkin, #3661). Reordered `lang` variable handling to
immediately before `bidi`.
* ConTeXt template: Improved font handling: `simplefonts` is now
obsolete in ConTeXt (Pablo Rodríguez).
[documentation improvements]
* MANUAL.txt:
+ Add URL for Prince HTML > PDF engine (Ian, #3919).
+ Document that content above slide-level will be omitted in
slide shows. See #3460, #2265.
+ Explain `--webtex` SVG url (Mauro Bieg, #3471)
+ Small clarification in YAML metadata section.
+ Document that html4 is technically XHTML 1.0 transitional.
+ Remove refs to highlighting-kate (#3672).
+ Document ibooks specific epub metadata.
+ Clarify that mathml is used for ODT math.
+ Mention limitations of Literate Haskell Support (#3410,
Joachim Breitner).
+ Add documentation of limitations of grid tables (Stephen
McDowell, #3864).
+ Clarify that meta-json contains transformed values (Jakob Voß,
#3491) Make clear that template variable `meta-json` does not
contain plain text values or JSON output format but field values
transformed to the selected output format.
* COPYRIGHT:
+ Clarify that templates are dual-licensed.
+ Clarify that pandoc-types is BSD3 licensed.
+ List new files not written by jgm (Albert Krewinkel).
+ Update dates in copyright notices (Albert Krewinkel). This follows
the suggestions given by the FSF for GPL licensed software.
* INSTALL.md:
+ Improved instructions for tests with patterns.
+ Put RPM-based distros on separate point (Mauro Bieg, #3449)
* CONTRIBUTING.md:
+ Fixed typos (Wandmalfarbe, #3479).
+ Add "ask on pandoc-discuss" (Mauro Bieg).
* Add lua filter documentation in `doc/lua-filters.md`. Note that the
end of this document is autogenerated from `data/pandoc.lua`
using `make doc/lua-filters.md`, which uses `tools/ldoc.ltp`
(Albert Krewinkel).
* Add `doc/filters.md`. This is the old scripting tutorial from
the website.
[build infrastructure improvements]
* Removed `data/templates` submodule. Templates are now a subtree
in `data/templates`. This removes the need to do `git submodule
update`.
* Renamed `tests` -> `test`.
* Remove `https` flag. Always build with HTTPS support.
* Use `file-embed` instead of `hsb2hs` to embed data files when
`embed_data_files` flag is set. `file-embed` gives us better dependency
tracking: if a data file changes, ghc/stack/cabal know to recompile
the Data module. This also removes `hsb2hs` as a build dependency.
* Add `custom-setup` stanza to pandoc, lowercase field names.
* Add `static` Cabal flag.
* Name change OSX -> MacOS. Add a -MacOS suffix to mac package rather
than -OSX. Changed local names from osx to macos.
* make_macos_package.sh - Use strip to reduce executable size.
* Strip executables in linux package.
* Remove cpphs build requirement -- it is no longer needed.
* Replaced `{deb,macos,windows}/stack.yaml` with `stack.pkg.yaml`.
* Added `linux` directory. This provides a Makefile and Dockerfile
sufficient for producing a linux executable. If Docker is installed,
this should suffice: `make setup && make build`. The binary will be
placed in `artifacts/`.
* `linux/control.in`: add `Replaces:`, so existing pandoc-citeproc and
pandoc-data packages will be uninstalled; this package provides
both (#3822). Add latex packages as 'suggested', update
description.
* Name change OSX -> macOS (ickc, #3869).
* Fix casing of Linux, UNIX, and Windows (ickc).
* `.travis.yml`: create a source dist and do cabal build and test there.
That way we catch errors due to files missing from the data
section of pandoc.cabal.
* Makefile:
+ Split `make haddock` from `make full`.
+ Add BRANCH variable for winpkg.
+ Add `lint` target.
+ Improve `make full`. Disable optimizations.
Build everything, inc. trypandoc and benchmarks. Use parallel build.
+ Allow `make test` to take `TESTARGS`.
* Added new command tests (`Tests.Command`), using small text files
in `test/command/`. Any files added in this directory will be treated
as shell tests (see smart.md for an example). This makes it very easy
to add regression tests etc.
* Test fixes so we can find data files. In old tests & command tests,
we now set the environment variable `pandoc_datadir`. In lua tests,
we set the datadir explicitly.
* Refactored `compareOutput` in docx writer test.
* Consolidated some common functions in `Tests.Helper`.
* Small change to unbalanced bracket test to speed up test suite.
* Speed up Native writer quickcheck tests.
* Use tasty for tests rather than test-framework.
* Add simple Emacs mode to help with Pandoc templates editing.
(Václav Haisman, #3889). `tools/pandoc-template-mode.el`
pandoc (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.
pandoc (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)
pandoc (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 `