Commit graph

15165 commits

Author SHA1 Message Date
Albert Krewinkel
4874f2dbd2
Use published pandoc-lua-marshal package 2021-11-28 10:23:31 +01:00
Albert Krewinkel
3692a1d1e8
Lua: use package pandoc-lua-marshal (#7719)
The marshaling functions for pandoc's AST are extracted into a separate
package. The package comes with a number of changes:

  - Pandoc's List module was rewritten in C, thereby improving error
    messages.

  - Lists of `Block` and `Inline` elements are marshaled using the new
    list types `Blocks` and `Inlines`, respectively. These types
    currently behave identical to the generic List type, but give better
    error messages. This also opens up the possibility of adding
    element-specific methods to these lists in the future.

  - Elements of type `MetaValue` are no longer pushed as values which
    have `.t` and `.tag` properties. This was already true for
    `MetaString` and `MetaBool` values, which are still marshaled as Lua
    strings and booleans, respectively. Affected values:

      + `MetaBlocks` values are marshaled as a `Blocks` list;

      + `MetaInlines` values are marshaled as a `Inlines` list;

      + `MetaList` values are marshaled as a generic pandoc `List`s.

      + `MetaMap` values are marshaled as plain tables and no longer
        given any metatable.

  - The test suite for marshaled objects and their constructors has
    been extended and improved.

  - A bug in Citation objects, where setting a citation's suffix
    modified it's prefix, has been fixed.
2021-11-27 17:08:01 -08:00
John MacFarlane
0d25232bbf LaTeX reader: Fix semantics of \ref.
We were including the ams environment type in addition
to the number. This is proper behavior for `\cref` but
not for `\ref`.  To support `\cref` we need to store
the environment label separately.
2021-11-24 19:48:56 -08:00
John MacFarlane
2ca3993c67 LaTeX reader: improve references.
- Resolve references to theorem environments.
- Remove Span caused by "label" in figure, table, and theorem
  environments; this had an id that duplicated the environments' id.

See #813.
2021-11-24 18:41:20 -08:00
John MacFarlane
7726b69cd3 LaTeX reader: omit visible content for \label{...}.
Previously we included the text of the label in square brackets,
but this is undesirable in many cases.

See discussion in
<https://github.com/jgm/pandoc/issues/813#issuecomment-978232426>.
2021-11-24 14:47:00 -08:00
John MacFarlane
6072bdcec9 HTML reader: parse attributes on links and images.
Closes #6970.
2021-11-24 11:01:55 -08:00
Albert Krewinkel
a8638894ab
Lua: allow single elements as singleton MetaBlocks/MetaInlines
Single elements should always be treated as singleton lists in the Lua
subsystem.
2021-11-24 16:54:12 +01:00
John MacFarlane
79e6f8db13 Improve detection of pipe table line widths.
Fixed calculation of maximum column widths in pipe tables.
It is now based on the length of the markdown line, rather
than a "stringified" version of the parsed line.  This should
be more predictable for users. In addition, we take into account
double-wide characters such as emojis.

Closes #7713.
2021-11-23 13:29:25 -08:00
John MacFarlane
b72ba3ed6d Simplify sample ris reader in doc/custom-readers.md.
Made possible by #7712.
2021-11-23 09:57:09 -08:00
Albert Krewinkel
bffd74323c
Lua: add function pandoc.utils.text (#7710)
The function converts a string to `Inlines`, treating interword spaces
as `Space`s or `SoftBreak`s. If you want a `Str` with literal spaces,
use `pandoc.Str`.

Closes: #7709
2021-11-23 09:32:53 -08:00
Albert Krewinkel
0c0945b93c
Lua: split strings into words when treating them as Inline list (#7712)
Using a Lua string where a list of inlines is expected will cause the
string to be split into words, replacing spaces and tabs into
`pandoc.Space()` elements and newlines into `pandoc.SoftBreak()`.

The previous behavior was to treat the string `s` as `{pandoc.Str(s)}`.
The old behavior can be recovered by wrapping the string into a table
`{s}`.
2021-11-23 09:30:48 -08:00
John MacFarlane
a039f024f2 Add an example to custom-readers.md. 2021-11-22 14:58:18 -08:00
Jörn Krenzer
17495bf8eb
Add .yml to Citeproc formatFromExtension (#7706)
Make Citeproc recognize files with .yml extension (in addition to .yaml)
as YAML bibliographies.

Closes #7707.
2021-11-22 08:42:09 -08:00
John MacFarlane
a19134f74d cabal.project: remove spurious source package stanza for texmath.
Unfortunately this means that the release binaries for 2.16.2
weren't built with all of the texmath improvements.
2021-11-21 17:51:28 -08:00
John MacFarlane
6d52130c8c Fix top-level header on changelog. 2021-11-21 17:14:20 -08:00
John MacFarlane
03c1bffab6 Update changelog. 2021-11-21 10:25:12 -08:00
John MacFarlane
3f595659a3 yamlBsToRefs: allow multiple YAML documents.
Some people use `---` as the end delimiter in YAML
bibliography files, which causes the `yaml` library
to emit an error unless we explicitly allow multiple
YAML documents (and just consider the first).

In T.P.Readers.Metadata
2021-11-21 10:22:10 -08:00
John MacFarlane
eeafc3a2ea Update AUTHORS.md 2021-11-21 10:14:38 -08:00
John MacFarlane
1d56e6059e Add custom-writers.md. 2021-11-21 10:10:27 -08:00
Albert Krewinkel
a9e5145c3a
Minor changelog edits. 2021-11-21 10:35:55 +01:00
Albert Krewinkel
464abdc854
Rename doc/custom-reader.lua to doc/custom-readers.md 2021-11-21 10:16:20 +01:00
John MacFarlane
4857cd1769 Update man page. 2021-11-20 23:19:22 -08:00
John MacFarlane
572d801738 Bump to 2.16.2 2021-11-20 23:19:20 -08:00
John MacFarlane
b629bda6d5 More changelog edits 2021-11-20 23:15:04 -08:00
John MacFarlane
f1ce1cc891 Minor changelog edits. 2021-11-20 23:12:51 -08:00
John MacFarlane
62cc9fe227 Update changelog. 2021-11-20 17:11:44 -08:00
John MacFarlane
06eb889e92 Use released texmath. 2021-11-20 15:18:19 -08:00
Albert Krewinkel
96a4bbe264
Capture alt-text in JATS figures (#7703)
Co-authored-by: Aner Lucero <4rgento@gmail.com>
2021-11-20 09:48:01 -08:00
John MacFarlane
db9a73c842 Lua tests: reset path and cpath when testing 'require' fallback. 2021-11-19 21:55:14 -08:00
Albert Krewinkel
c1a82896c6
Lua: fix global module loading (#7701) 2021-11-19 20:59:23 +01:00
John MacFarlane
2b23861948 Remove unused line. 2021-11-19 10:21:23 -08:00
John MacFarlane
4f2eac88aa MediaWiki writer: fix code for generating spans for header IDs.
We need to generate a span when the header's ID doesn't match
the one MediaWiki would generate automatically.  But MediaWiki's
generation scheme is different from ours (it uses uppercase letters,
and `_` instead of `-`, for example).

This means that in going from markdown -> mediawiki, we'll now get
spans before almost every heading, unless explicit identifiers are
used that correspond to the ones MediaWiki auto-generates.
This is uglier output but it's necessary for internal links to
work properly.

See #7697.
2021-11-19 09:05:19 -08:00
John MacFarlane
df5ae1c186 HTML writer: Don't create invalid data- attribute...
for empty attribute key. (It would be better to make these
unrepresentable in the type system, but for now this is
an improvement.)

Closes #7546.
2021-11-19 08:50:18 -08:00
John MacFarlane
25bba0cc62 MediaWiki writer: use HTML spans for anchors when header has id.
Closes #7697.
2021-11-18 21:15:51 -08:00
willj-dev
005dc7ce56
RST reader: handle class attribute for for custom roles (#7700)
Previously the class attribute was ignored, and the name of the role used as the class.
Closes #7699.
2021-11-18 17:33:57 -08:00
John MacFarlane
3e5af46471 Add doc for custom-readers. 2021-11-18 09:04:24 -08:00
Fabián Heredia Montiel
51c85b46ba
Update build files (#7696)
* Drop old windows 32-bit constraints

- basement >= 0.0.10 was 0.0.12 on stackage-18.10
- foundation >= 0.0.23 was 0.0.26.1 on stackage-18.10

* Update cabal `tested-with` field to correspond to `ci.yml` matrix

* ghc: 8.10.{2,4} → 8.10.7
2021-11-17 17:29:01 -08:00
John MacFarlane
1312594526 Babel mappings: use ancientgreek for grc. 2021-11-17 16:32:36 -08:00
Albert Krewinkel
cd91f72843
Lua: set lpeg, re as globals; allow shared lib access via require
The `lpeg` and `re` modules are loaded into globals of the respective
name, but they are not necessarily registered as loaded packages. This
ensures that

- the built-in library versions are preferred when setting the globals,
- a shared library is used if pandoc has been compiled without `lpeg`,
  and
- the `require` mechanism can be used to load the shared library if
  available, falling back to the internal version if possible and
  necessary.
2021-11-17 10:03:04 +01:00
John MacFarlane
3ac7deadce Use latest dev texmath. 2021-11-16 21:47:27 -08:00
Albert Krewinkel
305a4f406d
Lua: make loading of global LPeg modules more robust
Ignore errors if the normal package mechanism failed; this not only
covers the case of modules being unavailable on the system, but also
works if the modules are present, but fail to load for some reason.

This makes the built-in package version a true fallback.
2021-11-16 12:06:22 +01:00
John MacFarlane
c19f063420 Markdown writer: don't create autolinks when this loses information.
Previously we sometimes lost attributes when rendering links as autolinks.

Closes #7692.
2021-11-15 11:06:50 -08:00
Albert Krewinkel
ea268fd8a7
LaTeX reader: add rudimentary support for \autoref (#7693) 2021-11-15 09:40:50 -08:00
John MacFarlane
946b959751 Fix misspelled extension name in manual.
`short_subsuperscript` -> `short_subsuperscripts`.
Closes #7690.
2021-11-14 20:55:39 -08:00
Albert Krewinkel
96a01451ef
JATS writer: ensure figures are wrapped with <p> in list items.
This prevents the generation of invalid output.
2021-11-12 13:29:08 +01:00
Albert Krewinkel
da96e1ff40
JATS writer: add URL to element citation entries
The URL of a reference, if present, is added in tag `<uri>` to
element-citation entries.
2021-11-12 11:56:58 +01:00
Christian Despres
abdfefebdf
Writers.Shared: Improve toLegacyTable.
Closes #7683.
(PR #7684)
2021-11-11 20:55:37 -08:00
Albert Krewinkel
ebf7f782d3 Lua: load re module available into global of the same name 2021-11-11 10:32:37 -08:00
Albert Krewinkel
fe113dd5fa
JATS template: fix incomplete previous commit 2021-11-11 09:44:49 +01:00
Albert Krewinkel
b116022de4
JATS template: fix equal-contrib attribute
The standard requires the value to be either `yes` or `no`, but is was
set to `true` for authors who contributed equally.
2021-11-11 09:38:07 +01:00