Commit graph

6774 commits

Author SHA1 Message Date
John MacFarlane
ec043e0d97 Default files: combine with prior values when appropriate.
Certain command-line arguments can be repeated:
`--metadata-file`, `--css`, `--include-in-header`,
`--include-before-body`, `--include-after-body`, `--variable`,
`--metadata`, `--syntax-definition`.  In these cases, values
specified in default files should be added to the list rather
than replacing values specified earlier on the command line
(perhaps in other default files).

So, for example, if one does

    pandoc --variable foo=3 --defaults d1 --defaults d2

and `d1` sets the variable `bar` and `d2` sets `baz`,
all three variables will be set.

Closes #5894.
2019-11-13 16:51:02 -08:00
John MacFarlane
4c4e3066d6 Use atx-headers rather than setext-headers in defaults file...
for consistency with CLI options.  See #5894.
2019-11-13 16:30:36 -08:00
John MacFarlane
5c0b3743be Ensure there's a blank line before RST tables.
Closes #5898.
2019-11-13 10:10:55 -08:00
despresc
90e436d496 Switch to new pandoc-types and use Text instead of String [API change].
PR #5884.

+ Use pandoc-types 1.20 and texmath 0.12.
+ Text is now used instead of String, with a few exceptions.
+ In the MediaBag module, some of the types using Strings
  were switched to use FilePath instead (not Text).
+ In the Parsing module, new parsers `manyChar`, `many1Char`,
  `manyTillChar`, `many1TillChar`, `many1Till`, `manyUntil`,
  `mantyUntilChar` have been added: these are like their
  unsuffixed counterparts but pack some or all of their output.
+ `glob` in Text.Pandoc.Class still takes String since it seems
  to be intended as an interface to Glob, which uses strings.
  It seems to be used only once in the package, in the EPUB writer,
  so that is not hard to change.
2019-11-12 16:03:45 -08:00
Brian Wignall
78399ccf90 Fix typos (#5896) 2019-11-11 11:29:01 -08:00
John MacFarlane
741b1f7fb4 Markdown reader: fix small super/subscript issue.
Superscripts and subscripts cannot contain spaces,
but newlines were previously allowed (unintentionally).
This led to bad interactions in some cases with footnotes.
E.g.

```
foo^[note]
bar^[note]
```

With this change newlines are also not allowed inside
super/subscripts.

Closes #5878.
2019-11-11 09:08:52 -08:00
Florian Beeres
bf2eb4f288 Change the implementation of htmlSpanLikeElements and implement <dfn> (#5882)
* Add HTML Reader support for `<dfn>`, parsing this as a Span with class `dfn`.
* Change `htmlSpanLikeElements` implementation to retain classes,
  attributes and inline content.
2019-11-11 08:55:58 -08:00
John MacFarlane
3bf5362898 DocBook reader: Fix bug with entities in mathphrase element.
Closes #5885.
2019-11-07 23:08:05 -08:00
John MacFarlane
20309691c3 Fix list fields in Opt so they aren't reversed.
Previously optIncludeInHeader, etc. were in reverse order.
This has been changed to promote #5881.

Note also that the `sourcefile` variable used to be sometimes
a string, sometimes a list (when there was more than one).
Now it is always a list.
2019-11-07 12:18:53 -08:00
John MacFarlane
9c7f75afb5 Change merge behavior for metadata.
Previously, if a document contained two YAML metadata blocks
that set the same field, the conflict would be resolved in favor
of the first. Now it is resolved in favor of the second (due to
a change in pandoc-types).

This makes the behavior more uniform with other things in pandoc
(such as reference links and `--metadata-file`).
2019-11-07 10:48:38 -08:00
John MacFarlane
e299212bf7 Add and apply filters in order (not reversed).
This changes `applyFilters` from Text.Pandoc.Filter so
that it does a left fold rather than a right fold, applying
the filters in the order listed. [behavior change]

The command-line arguments are accumulated in order instead
of reverse order.

A first step twoards #5881.
2019-11-06 15:42:41 -08:00
John MacFarlane
adad3c70b6 Allow singular input-file in defaults file.
Closes #5877.
2019-11-06 09:06:49 -08:00
John MacFarlane
bdc0f6cc9b Removed an unnecessary unpack. 2019-11-04 08:45:20 -08:00
Amogh Rathore
bd2bd9b19d HTML Reader/Writer - Add support for <var> and <samp> (#5861)
Closes #5799
2019-11-04 08:42:30 -08:00
John MacFarlane
fdc0f47519 PDF: don't assume tex log file is UTF8-encoded.
Fall back to latin1 if it can't be read as UTF-8.
Closes #5872.
2019-11-03 21:24:53 -08:00
Jesse Rosenthal
11945ea5ec Docx reader: Only use LTR when it is overriding BiDi setting
The left-to-right direction setting in docx is used in the spec only
for overriding an explicit right-to-left setting. We only process it
when it happens in a paragraph set with BiDi.

This is especially important for docs exported from Google Docs, which
explicitly (and unnecessarily) set "rtl=0" for every paragraph.

Closes: #5723
2019-11-03 21:25:56 -05:00
John MacFarlane
a6612b35c8 EPUB writer: ensure that lang variable is set on all chapters. 2019-11-03 15:11:17 -08:00
John MacFarlane
530bfe5f5a Docx reader: fix list number resumption for sublists. Closes #4324.
The first list item of a sublist should not resume numbering
from the number of the last sublist item of the same level,
if that sublist was a sublist of a different list item.

That is, we should not get:

```
1. one
   1. sub one
   2. sub two
2. two
   3. sub one
```
2019-11-03 12:54:42 -08:00
John MacFarlane
e906e5ac23 Allow pdf output to stdout.
PDF output will not be output to the terminal, but can be
sent to stdout using either `-o -` or a pipe.

The intermediate format will be determined based on
the setting of `--pdf-engine`.

Closes #5751.
2019-11-03 11:44:00 -08:00
Dmitry Pogodin
270ffe6ab5 Place caption before table in OpenDocument format. (#5869)
Closes #5681.
2019-11-03 07:17:05 -08:00
John MacFarlane
311a20c6c5 RST reader: avoid spurious warning...
when resolving links to internal anchors ending with `_`.
Closes #5763.
2019-11-02 22:26:07 -07:00
John MacFarlane
65593043c3 LaTeX reader: Fixed dollar-math parsing...
...to ensure that space is left between a control seq and
a following word that would otherwise change its meaning.

Closes #5836.
2019-11-02 12:44:48 -07:00
John MacFarlane
041cfbd5ee LaTeX untokenize: Ensure space between control sequence and following letter.
Closes #5836.
2019-11-02 12:20:04 -07:00
John MacFarlane
7fac395284 LaTeX reader: Don't omit macro definitions defined in the preamble.
These were formerly omitted (though they still affected macro
resolution if `latex_macros` was set).  Now they are included in
the document.
2019-11-02 11:04:21 -07:00
John MacFarlane
db972b8ea0 LaTeX reader: parse macro defs as raw latex...
when `latex_macros` is disabled.  (When `latex_macros` is enabled,
we omit them, since pandoc is applying the macros itself.)

Previously, it was documented that the macro definitions got
passed through as raw latex regardless of whether `latex_macros`
was set -- but in fact they never got passed through.
2019-11-02 10:36:31 -07:00
John MacFarlane
4b58384c0a LaTeX reader: fixed a hang/memory leak in certain circumstances.
We were using `grouped blocks` instead of `grouped block`.
This caused the reader to hang in an infinite loop
(with a memory leak) on e.g. `\parbox{1em}{#1}`.

Closes #5845.
2019-11-02 09:33:32 -07:00
John MacFarlane
180c96f9a0 Move extension-adding to applyDefaults 2019-11-02 08:27:03 -07:00
John MacFarlane
02c579ff3c Revert "ALlow multiple comma-separated files for --defaults."
This reverts commit e96f3fd813.
2019-11-01 21:48:30 -07:00
John MacFarlane
e96f3fd813 ALlow multiple comma-separated files for --defaults. 2019-11-01 10:14:30 -07:00
John MacFarlane
1b69d5ed94 Factor out applyDefaults in T.P.A.CommandLineOptions. 2019-11-01 09:52:39 -07:00
John MacFarlane
bf9e3faa35 --defaults improvements.
- ToYAML instance is now for `Opt -> Opt`, rather than `Opt`.

- This allows us to handle `--defaults` without clobbering all the
  options that occur prior to `--defaults` on the command line.
  (Note, however, that options in `--defaults` can replace these
  options if the `--defaults` option is used after them,
  which may be a bit confusing given the name.)

- `--defaults` may now be used multiple times on the command line,
  allowing users to break defaults into different chunks.
2019-11-01 09:03:40 -07:00
Albert Krewinkel
4e902b1d60
Jira writer: remove extraneous newline after single-line block quotes
See #5858
2019-10-31 22:01:12 +01:00
Florian Klink
c6e936dec2 docbook reader: fix nesting of chapters and sections (#5864)
* Set dbBook to true when traversing a chapter too.
  Currently, a `<title/>` in a chapter and in a `<section/>` below that
  chapter have the same level if they're not inside a `<book/>`.

  This can happen in a multi-file book project. Also see the example at
  https://tdg.docbook.org/tdg/4.5/chapter.html

  Co-authored-by: Félix Baylac-Jacqué <felix@alternativebit.fr>

* Add docbook-chapter test

  This tests nested `<section/>` and makes sure `<title/>` in the first
  `<section/>` below `<chapter/>` is one level deeper than the `<chapter/>`'s
  `<title/>`, also when not inside a `<book/>`.

  Co-authored-by: Félix Baylac-Jacqué <felix@alternativebit.fr>
2019-10-30 08:51:33 -07:00
John MacFarlane
63cfd45406 T.P.W.Shared: Changed gridTables so it does better at...
...keeping the widths of columns.  See #4320.
Adjust test case for #4320.
2019-10-29 22:21:35 -07:00
John MacFarlane
1fe9742263 Changes to build with new doctemplates/doclayout.
The new version of doctemplates adds many features to pandoc's
templating system, while remaining backwards-compatible.
New features include partials and filters.  Using template filters,
one can lay out data in enumerated lists and tables.

Templates are now layout-sensitive: so, for example, if a
text with soft line breaks is interpolated near the end of
a line, the text will break and wrap naturally.  This makes
the templating system much more suitable for programatically
generating markdown or other plain-text files from metadata.
2019-10-29 22:21:35 -07:00
John MacFarlane
a796b655cd Shared.makeSections: better behavior in some corner cases.
When a div surrounds multiple sections at the same level,
or a section of highre level followed by one of lower level,
then we just leave it as a div and create a new div for the
section.

Closes #5846, closes #5761.
2019-10-29 21:24:58 -07:00
John MacFarlane
47566817c5 Shared: improve isTight.
If a list has an empty item, this should not count against
its being a tight list.

Closes #5857.
2019-10-28 21:14:01 -07:00
Albert Krewinkel
909083090a
Org reader: fix parsing of empty comment lines
Comment lines in Org-mode can be completely empty; both of these line
should produce no output:

    # a comment
    #

The reader used to produce a wrong result for the latter, but ignores
that line as well now.

Fixes: #5856
2019-10-27 23:00:30 +01:00
John MacFarlane
bef124c98c Beamer writer: fix regression with hrules separating slides. 2019-10-25 23:01:29 -07:00
Ole Martin Ruud
45479114e8 HTML reader/writer: Better handling of <q> with cite attribute (#5837)
* HTML reader: Handle cite attribute for quotes.  If a `<q>` tag has a `cite` attribute, we interpret it as a Quoted element with an inner Span.  Closes #5798

* Refactor url canonicalization into a helper function

* Modify HTML writer to handle quote with cite.

[0]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q
2019-10-24 22:27:49 -07:00
John MacFarlane
91c325c714 T.P.Readers.LaTeX.Parsing: add [Tok] parameter to rawLaTeXParser.
This allows us to avoid retokenizing multiple times in
e.g. rawLaTeXBlock.  (Unexported module, so not an API change.)
2019-10-23 09:42:46 -07:00
Amogh Rathore
d50f46d26d Add Reader support for HTML <samp> element (#5843)
The `<samp>` element is parsed as a Span with class `sample`.
Closes #5792.
2019-10-23 08:44:24 -07:00
Florian B
a933ad30fb Add support for reading & writing <mark> elements
Parse <mark> elements from HTML as HTML span like elements, with a
single class matching the tag name `mark`. Mark elements are rendered to
HTML using the native <mark> element.

Fixes https://github.com/jgm/pandoc/issues/5797.
2019-10-16 09:08:12 -07:00
Daniele D'Orazio
1425bf9a65 Add support for reading and writing <kbd> elements
* Text.Pandoc.Shared: export `htmlSpanLikeElements` [API change]

This commit also introduces a mapping of HTML span like elements that
are internally represented as a Span with a single class, but that are
converted back to the original element by the html writer. As of now,
only the kbd element is handled this way. Ideally these elements should
be handled as plain AST values, but since that would be a breaking
change with a large impact, we revert to this stop-gap solution.

Fixes https://github.com/jgm/pandoc/issues/5796.
2019-10-15 09:49:09 -07:00
Alexander Krotov
a1977dd2d6 Muse reader: do not allow closing asterisks to be followed by "*" 2019-10-15 16:36:05 +03:00
Alexander Krotov
d5c13dd438 Muse reader: do not split series of asterisks into symbols and emphasis
Fixes #5821
2019-10-15 01:55:32 +03:00
Alexander Krotov
13e0ac1104 Muse reader: do not terminate emphasis on "*" not followed by space 2019-10-15 01:02:54 +03:00
mb21
25cb84d8d9 change indentation of math part in Writers/HTML.hs 2019-10-14 08:47:40 -07:00
mb21
bfbff3106d KaTeX math: respect classoption=fleqn variable
closes #5815
2019-10-14 08:47:40 -07:00
mb21
b976486f1f Bump KaTeX version to 0.11.1 2019-10-14 08:47:40 -07:00