Commit graph

14900 commits

Author SHA1 Message Date
John MacFarlane
0bdcf415e4 Switch from pretty-simple to pretty-show for native output.
Update tests.

Reason:  it turns out that the native output generated by
pretty-simple isn't always readable by the native reader.
According to https://github.com/cdepillabout/pretty-simple/issues/99
it is not a design goal of the library that the rendered values
be readable using 'read'.  This makes it unsuitable for our
purposes.

pretty-show is a bit slower and it uses 4-space indents
(non-configurable), but it doesn't have this serious drawback.
2021-09-28 21:17:53 -07:00
John MacFarlane
8018179b3d Better implementation of splitStrWhen 2021-09-27 16:43:13 -07:00
John MacFarlane
df57d0930b RST writer: properly handle anchors to ids...
with spaces or leading underscore.

In this cases we need the quoted form, e.g.
```
.. _`foo bar`:

.. _`_foo`:
```

Side note: rST will "normalize" these identifiers anyway,
ignoring the underscore:
https://docutils.sourceforge.io/docs/ref/rst/directives.html#identifier-normalization

Closes #7593.
2021-09-26 21:56:21 -07:00
John MacFarlane
9b23b738cb Update documentation for definition_list extension.
In 2015, we relaxed indentation requirements for the first
line of a definition (see commit d3544dc and issue #2087), but
the documnentation wasn't updated to reflect the change.

Closes #7594.
2021-09-26 21:20:27 -07:00
John MacFarlane
665e6d3d94 BibTeX parser: fix expansion of special strings in series...
e.g. `newseries` or `library`.  Expansion should not happen
when these strings are protected in braces, or when they're
capitalized.

Closes #7591.
2021-09-23 22:21:05 -07:00
John MacFarlane
aa89f6be18 HTML reader: handle empty tbody element in table.
Closes #7589.
2021-09-23 09:25:37 -07:00
John MacFarlane
f0a6eb913d HTML writer: render \ref and \eqref as inline math...
not display.  See #7589.
2021-09-23 08:49:52 -07:00
John MacFarlane
0afb48cd38 HTML writer: pass through \ref and \eqref...
if MathJax is used.

Closes #7587.
2021-09-22 22:33:41 -07:00
John MacFarlane
7ab2f4a61d HTML writer: pass through inline math environments with KaTeX. 2021-09-22 22:18:38 -07:00
John MacFarlane
d6dbbb89d0 Use latest citeproc. 2021-09-22 13:21:56 -07:00
John MacFarlane
3de0d5a977 test/epub: an excerpt from The Wasteland is enough!
Saves over 100K.
2021-09-21 18:54:42 -07:00
John MacFarlane
c6fa0bc271 Revert "Remove unused epub test file features.epub."
This reverts commit 83ebb85b64.
2021-09-21 17:03:25 -07:00
John MacFarlane
a88b0098d6 Make test/epub/wasteland.epub valid. 2021-09-21 16:49:58 -07:00
John MacFarlane
83ebb85b64 Remove unused epub test file features.epub. 2021-09-21 16:42:33 -07:00
John MacFarlane
c266734448 Use pretty-simple to format native output.
Previously we used our own homespun formatting.  But this
produces over-long lines that aren't ideal for diffs in tests.
Easier to use something off-the-shelf and standard.

Closes #7580.

Performance is slower by about a factor of 10, but this isn't
really a problem because native isn't suitable as a serialization
format. (For serialization you should use json, because the reader
is so much faster than native.)
2021-09-21 12:37:42 -07:00
John MacFarlane
5f7e7f539a Add missing % on command tests.
This prevented `--accept` from working properly.
2021-09-21 10:42:24 -07:00
John MacFarlane
a1ca51c979 Command tests: raise error if command doesn't begin with %. 2021-09-21 10:42:14 -07:00
John MacFarlane
1cbaea673d Stop doing lint in CI.
The script failed for reasons I can't determine.
For now, we disable it.
2021-09-20 23:20:48 -07:00
John MacFarlane
c9ce6da1bb LaTeX reader: Recognize that \vadjust sometimes takes "pre".
Closes #7531.
2021-09-19 10:12:07 -07:00
John MacFarlane
132a6df51e Ignore (and gobble parameters of) CSLReferences environment.
Otherwise we get the parameters as numbers in the output.
Closes #7531.
2021-09-19 10:10:45 -07:00
John MacFarlane
dd7b83ac91 Use babel, not polyglossia, with xelatex.
Previously polyglossia worked better with xelatex, but
that is no longer the case, so we simplify the code so that
babel is used with all latex engines.

This involves a change to the default LaTeX template.
2021-09-19 09:40:59 -07:00
John MacFarlane
ca20d5c10b Fix changelog date for 2.14.2. 2021-09-19 09:35:25 -07:00
John MacFarlane
92e0e424c0 Markdown writer: use underline class rather than ul for underline.
This only affects output with bracketed_spans enabled.
The markdown reader parses spans with either `.ul` or `.underline` as
Underline elements, but we're moving towards preferring the latter.
2021-09-19 09:12:55 -07:00
John MacFarlane
5684e6a76c Alphabetize Extension constructors. 2021-09-18 21:13:38 -07:00
John MacFarlane
5891f4f418 Use skylighting-0.12, skylighting-core-0.12.
This fixes highlighting issues with typescript, scala,
and other syntaxes that include keyword lists from
different syntaxes.
2021-09-18 20:55:41 -07:00
Emily Bourke
4a5ed7e04a pptx-footers: Replace fixed dates with yaml date 2021-09-18 09:55:45 -07:00
Emily Bourke
50adea220d pptx: Support footers in the reference doc
In PowerPoint, it’s possible to specify footers across all slides,
containing a date (optionally automatically updated to today’s date),
the slide number (optionally starting from a higher number than 1), and
static text. There’s also an option to hide the footer on the title
slide.

Before this commit, none of that footer content was pulled through from
the reference doc: this commit supports all the functionality listed
above.

There is one behaviour which may not be immediately obvious: if the
reference doc specifies a fixed date (i.e. not automatically updating),
and there’s a date specified in the metadata for the document, the
footer date is replaced by the metadata date.

- Include date, slide number, and static footer content from reference
  doc
- Respect “slide number starts from” option
- Respect “Don’t show on title slide” option
- Add tests
2021-09-18 09:55:45 -07:00
John MacFarlane
cf7f80b11f Fix linter warning. 2021-09-17 10:05:55 -07:00
John MacFarlane
57d93cca56 Org writer: don't indent contents of code blocks.
We previously indented them by two spaces, following a
common convention.  Since the convention is fading, and
the indentation is inconvenient for copy/paste, we are
discontinuing this practice.

Closes #5440.
2021-09-17 09:41:34 -07:00
John MacFarlane
1487ee01fd Update list of supported source languages in org writer.
See #5440.
2021-09-17 09:22:36 -07:00
Christophe Dervieux
44ec800b07 mention revealjs support of title-toc in MANUAL
Following addition in #7171
2021-09-17 09:21:39 -07:00
John MacFarlane
d133d737ae Use --system-ghc in make quick. 2021-09-16 20:46:05 -07:00
John MacFarlane
a07d955d6f Fix code blocks using --preserve-tabs.
Previously they did not behave as the equivalent input
with spaces would.  Closes #7573.
2021-09-16 20:46:05 -07:00
Emily Bourke
7c22c0202e pptx: Support specifying slide background images
In the reveal-js output, it’s possible to use reveal’s
`data-background-image` class on a slide’s title to specify a background
image for the slide.

With this commit, it’s possible to use `background-image` in the same
way for pptx output. Only the “stretch” mode is supported, and the
background image is centred around the slide in the image’s larger axis,
matching the observed default behaviour of PowerPoint.

- Support `background-image` per slide.
- Add tests.
- Update manual.
2021-09-16 19:45:53 -07:00
John MacFarlane
c6cd92a0a3 stack.yaml: use lts-18.10 resolver. 2021-09-16 19:28:38 -07:00
John MacFarlane
d2449ad926 HTML writer: set "hash" to True by default (for reveal.js).
Closes #7574.
See #6968 where the motivation for setting "hash" to True is
explained.
2021-09-16 19:27:34 -07:00
John MacFarlane
71b82396a2 Fix quick-cabal target 2021-09-16 19:19:38 -07:00
Emily Bourke
0fb6474a55 pptx: Add support for incremental lists
- Support -i option
- Support incremental/noincremental divs
- Support older block quote syntax
- Add tests

One thing not clear from the manual is what should happen when the input
uses a combination of these things. For example, what should the
following produce?

```md
::: {.incremental .nonincremental}
- are
- these
- incremental?
:::

::: incremental
::::: nonincremental
- or
- these?
:::::
:::

::: nonincremental
> - how
> - about
> - these?
:::
```

In this commit I’ve taken the following approach, matching the observed
behaviour for beamer and reveal.js output:

- if a div with both classes, incremental wins
- the innermost incremental/nonincremental div is the one which takes
  effect
- a block quote containing a list as its first element inverts whether
  the list is incremental, whether or not the quote is inside an
  incremental/non-incremental div

I’ve added some tests to verify this behaviour.

This commit closes issue #5689
(https://github.com/jgm/pandoc/issues/5689).
2021-09-15 09:13:05 -07:00
John MacFarlane
a3162d341b RST reader: handle escaped colons in reference definitions.
Cloess #7568.
2021-09-13 22:57:08 -07:00
John MacFarlane
b34dc28926 Use latest dev version of texmath. 2021-09-13 22:36:14 -07:00
John MacFarlane
7b863ba04e Modernize quick-cabal Makefile target 2021-09-13 22:36:09 -07:00
Emily Bourke
0ebe65e651 pptx: Fix logic for choosing Comparison layout
There was a mistake in the logic used to choose between the Comparison
and Two Content layouts: if one column contained only non-text (an image
or a table) and the other contained only text, the Comparison layout was
chosen instead of the desired Two Content layout.

This commit fixes that logic:

> If either column contains text followed by non-text, use Comparison.
  Otherwise, use Two Content.

It also adds a test asserting this behaviour.
2021-09-13 08:30:36 -07:00
John MacFarlane
6271b09c50 Docx writer: make id used in native_numbering predictable.
If the image has the id IMAGEID, then we use the id ref_IMAGEID
for the figure number.  Closes #7551.

This allows one to create a filter that adds a figure number
with figure name, e.g.

     <w:fldSimple w:instr=" REF ref_superfig "><w:r><w:t>Figure X</w:t></w:r></w:fldSimple>

For this to be possible it must be possible to predict the
figure number id from the image id.

If images lack an id, an id of the form `ref_fig1` is used.
2021-09-12 15:30:29 -07:00
John MacFarlane
d43f9cf414 Add note to Security section that commonmark is better...
than markdown as far as pathological performance goes.
2021-09-12 11:10:05 -07:00
John MacFarlane
84b5c55448 Use latest dev citeproc. 2021-09-10 21:29:44 -07:00
Kolen Cheung
c66cedaa71 fix!(ipynb writer): improve round trip identity
for raw cell output

BREAKING CHANGE:
The Jupyter ecosystem, including nbconvert, lab and notebook,
deviated from their own spec in nbformat,
where they used the key `raw_mimetype` instead of `format`.

Moreover, the mime-type of rst used in Jupyter
deviated from that suggested by
https://docutils.sourceforge.io/FAQ.html
and is defined as `text/restructuredtext`
when chosen from "Raw NBConvert Format" in Jupyter.

So while this is backward-compatible,
it should matches the real world usage better,
hence improving the round-trip "identity" in raw-cell.

See #229, jupyter/nbformat#229.
2021-09-10 21:11:28 -07:00
Kolen Cheung
17092454c5 feat(ipynb writer): add more Jupyter's "Raw NBConvert Format"
Adds more formats that Jupyter's "Raw NBConvert Format" uses
natively (asciidoc),
and maps more formats to text/html whenever it makes sense.
2021-09-10 21:11:28 -07:00
Kolen Cheung
3483a54c72 feat(ipynb reader): get cell output mime from raw_mimetype too
While the spec defined format, in practice raw_mimetype is used.
See jupyter/nbformat#229
2021-09-10 21:11:28 -07:00
Kolen Cheung
e6bf1626d2 feat(ipynb reader): add more Jupyter's "Raw NBConvert Format"
This adds most of the available formats selectable from
Jupyter's interface "Raw NBConvert Format".
2021-09-10 21:11:28 -07:00
Kolen Cheung
6aa1087b97 fix!: rst mime type
BREAKING CHANGE:
fix rst mime type according to
https://docutils.sourceforge.io/FAQ.html
2021-09-10 21:11:28 -07:00