Commit graph

6699 commits

Author SHA1 Message Date
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
John MacFarlane
d9db76dcf4 LaTeX writer: fix horizontal rule.
We change to use 0.5pt rather than `\linethickness`, which
apparently only ever worked "by accident" and no longer works
with recent updates to texlive.

Closes #5801.
2019-10-12 23:20:57 -07:00
John MacFarlane
9e3e195dd4 Fix gfm_auto_identifiers behavior with emojis.
Closes #5813.

Note that we also now use emoji names for emojis
when `ascii_identifiers` is enabled.
2019-10-11 10:00:33 -07:00
John MacFarlane
7c2dd0359b Markdown writer: prefer pipe_tables to raw html...
...even when we must lose width information.

All in all this seems to be people's preferred behavior, even though it
is slightly lossier.

Closes #2608.
Closes #4497.
2019-10-11 09:46:58 -07:00
John MacFarlane
8a64bd0abf Allow output-file to be null in --defaults. 2019-10-11 08:57:34 -07:00
John MacFarlane
c468951d8e Remove redundant import. 2019-10-11 08:20:31 -07:00
John MacFarlane
7388cd3e7a Improve parsing of --defaults.
- Add FromYAML instances to Opt and to all subsidiary types.
- Remove the use of HsYAML-aeson, which doesn't give good
  position information on errors.
- Rename some fields in Opt to better match cli options or
  reflect what the ycontain [API change]:

  + optMetadataFile -> optMetadataFiles
  + optPDFEngineArgs -> optPDFEngineOpts
  + optWrapText -> optWrap
- Add IpynbOutput enumerated type to Text.Pandoc.App.Opts.
  Use this instead fo a string for optIpynbOutput.
- Add FromYAML instance for Filter in Text.Pandoc.Filters.

With these changes parsing of defaults files should be
complete and should give decent error messages.

Now (unlike before) we get an error if an unknown field
is used.
2019-10-10 23:21:18 -07:00
John MacFarlane
33f70e9819 Add -d as synonym for --defaults. 2019-10-10 10:12:23 -07:00
John MacFarlane
558b91801a Reorder options in --help. 2019-10-10 10:12:05 -07:00
John MacFarlane
a3cd74c29b --metadata-file: when multiple files specified, second takes precedence...
on conflicting fields.  This changes earlier behavior (but not in
a release), where first took precedence.

Note that this may seem inconsistent with the behavior of
multiple YAML blocks within a document, where the first takes
precedence.  Still, it is convenient to be able to override
defaults with options later on the command line.
2019-10-10 10:00:45 -07:00
John MacFarlane
68b09a6d81 Make some writers sensitive to 'unlisted' class on headings.
If this is present on a heading with the 'unnumbered' class,
the heading won't appear in the TOC.  This class has no
effect if 'unnumbered' is not also specified.

This affects HTML-based writers (including slide shows
and epub), LateX (including beamer), RTF, and PowerPoint.
Other writers do not yet support `unlisted`.

Closes #1762.
2019-10-10 09:15:40 -07:00
John MacFarlane
2b1361e738 Remove unnecessary import. 2019-10-10 08:36:27 -07:00
John MacFarlane
fcefcfec39 --defaults: add .yaml extension if absent, look in user data dir...
under "defaults" subdirectory.
2019-10-09 23:29:25 -07:00
John MacFarlane
ff1df241a9 T.P.App.Opt: rename optReader, optWriter as optFrom, optTo.
This will allow to: and from: in defaults.
2019-10-09 21:54:41 -07:00
John MacFarlane
070e098b48 Make sure that input-files works in --default files. 2019-10-09 17:51:33 -07:00
John MacFarlane
a3729ef2da RST writer: proper handling of :align: on figures, images.
When the image has the `align-right` (etc.) class, we now use
an `:align:` attribute.

Closes #4420.
2019-10-09 15:05:22 -07:00
zorkow
3c7f1bf96c Basic changes for MathJax 3. 2019-10-09 14:30:25 -07:00
John MacFarlane
83702404af Initial implementation of --defaults option.
Need documentation.
2019-10-09 12:44:09 -07:00
John MacFarlane
5419988f22 T.P.App.Opt: Changed optMetadata to Meta, to allow structured values.
[API change]

The current behavior of the `--metadata` option stays the same.
2019-10-09 11:46:20 -07:00
John MacFarlane
3aa069e1d5 Change optVariables from [(String, String)] to Context Text.
In Text.Pandoc.App.Opt [API change].
2019-10-09 11:01:33 -07:00
John MacFarlane
aceee9ca48 Options.WriterOptions: Change type of writerVariables to Context Text.
This will allow structured values.

[API change]
2019-10-09 11:01:33 -07:00
John MacFarlane
1b10b5cea9 Use th to derive json instance for LineEnding. 2019-10-08 08:02:24 -07:00
John MacFarlane
34c61fcad5 Text.Pandoc.Options: change To/FromJSON instances for...
HTMLMathMethod, CiteMethod, ObfuscationMethod, TrackChanges, WrapOption,
TopLevelDivision, ReferenceLocation, HTMLSlideVariant.

In each case we use lowercase (or hyphenated lowercase) for
constructors to line up more closely with command-line option
values.

This is a breaking change for those who manually decode or encode
JSON for these data types (e.g. for ReaderOptions or WriterOptions).

See #5790.
2019-10-07 22:23:51 -07:00
John MacFarlane
e4ccfeab8c Shored.camelCaseToHyphenated: handle ABCDef = abc-def. 2019-10-07 21:31:03 -07:00
John MacFarlane
8fb9a0d168 Remove derive_json_via_th flag; always use TH.
This cuts down on code duplication and reduces the chance
for errors.  See #4083.
2019-10-07 21:23:50 -07:00
John MacFarlane
3c58cc4f33 Remove redundant import. 2019-10-07 10:24:47 -07:00