Commit graph

15212 commits

Author SHA1 Message Date
John MacFarlane
6b0a560ae7 Improve 'make check'. 2021-12-18 09:55:16 -08:00
John MacFarlane
bc947a4496 Use latest doctemplates, commonmark-extensions in stack.yaml. 2021-12-18 09:49:09 -08:00
Albert Krewinkel
7a70b87fac Lua: add function pandoc.utils.references
List with all cited references of a document.

Closes: #7752
2021-12-17 14:45:27 -08:00
John MacFarlane
61ffa55835 T.P.Citeproc: do not export getStyle, getCiteprocLang.
This commit undoes the API changes noted in
ea77f2e6f6

They are no longer needed, and we should avoid unnecessary
API changes.
2021-12-15 16:05:15 -08:00
John MacFarlane
6303952623 Use dev texmath. 2021-12-14 22:22:09 -08:00
John MacFarlane
a527a2f345 Org writer: use the citation locator list from the org source code...
which is not localized, instead of getting locators from the
localized CSL stylesheet as we did before.
2021-12-14 20:30:55 -08:00
John MacFarlane
394fa9d072 Org reader: parse official org-cite citations.
We also support the older org-ref style as a fallback.
We no longer support the "markdown-style" citations.

See #7329.
2021-12-14 11:34:32 -08:00
John MacFarlane
be0e3f9794 Markdown writer: avoid extra space before citation suffix...
if it already starts with a space.
2021-12-14 11:34:32 -08:00
John MacFarlane
d393f2f158 Markdown writer: ensure semicolon btw locator and next citation...
when an author-in-text citation has a locator and following
citations.
2021-12-14 11:34:32 -08:00
John MacFarlane
5817e86491 Org reader: remove support for "Berkeley style" citations.
See #7329.
2021-12-14 09:20:26 -08:00
Albert Krewinkel
ce44cf688a
doc/lua-filters.md: add docs for Cell constructor 2021-12-14 09:13:38 +01:00
John MacFarlane
9f089aa286 Org writer: add tests for org-cite citations, and improve support. 2021-12-13 12:11:58 -08:00
John MacFarlane
2015c9070d Markdown reader: fix parsing of "bare locators"...
...after author-in-text citations.

Previously `@item [p. 12; @item2]` was incorrectly parsed as
three citations rather than two.  This is now fixed by ensuring
that `prefix` doesn't gobble any semicolons.
2021-12-13 12:11:58 -08:00
John MacFarlane
ea77f2e6f6 Citeproc changes:
T.P.Citeproc exports `getCiteprocLang` and `getStyle` [API change].

T.P.Citeproc.Locator now exports `toLocatorMap`, `LocatorInfo`,
and `LocatorMap`.  The type of `parseLocator` has changed, so
it now takes a `LocatorMap` rather than a `Locale` as parameter,
and returns a `LocatorInfo` instead of a tuple.
2021-12-13 12:11:58 -08:00
Albert Krewinkel
b8ada284b1
doc/lua-filters.md: update description of walk methods, fix typos 2021-12-13 21:03:26 +01:00
Albert Krewinkel
b79bf192ec Lua: support topdown traversals
The traversal order of filters can now be selected by setting the key
`traverse` of the filter to either `'topdown'` or `'typewise'`; the
default remains `'typewise'`.

Topdown traversals can be cut short by returning `false` as a second
value from the filter function. No child-element of the returned element
is processed in that case.
2021-12-13 08:52:19 -08:00
John MacFarlane
0679620f92 Org writer: preliminary support for new org-cite syntax.
See #7329.

This could use some tests.
2021-12-12 23:42:13 -08:00
Kolen Cheung
a9a9a2c62a fix(IpynbOutput)!: rank always favors output format
Previously, both `fmt == f` case and Image have a rank of 1.
In the end, e.g. from ipynb to html conversion,
if both html and image exists, it actually prefers the image.
This commit changes this, so that fmt == f is always highest rank,
and rank never collides.
This is achieved by keeping fmt == f case having rank 1,
and every other rank increased by 1.
2021-12-11 09:42:30 -08:00
Albert Krewinkel
e88224621d Custom reader: ensure old Readers continue to work
Retry conversion by passing a string instead of sources when the
`Reader` fails with a message that hints at an outdated function. A
deprecation notice is reported in that case.
2021-12-11 08:59:11 -08:00
Albert Krewinkel
83b5b79c0e Custom reader: pass list of sources instead of concatenated text
The first argument passed to Lua `Reader` functions is no longer a plain
string but a richer data structure. The structure can easily be
converted to a string by applying `tostring`, but is also a list with
elements that contain each the *text* and *name* of each input source as
a property of the respective name.

A small example is added to the custom reader documentation, showcasing
its use in a reader that creates a syntax-highlighted code block for
each source code file passed as input.

Existing readers must be updated.
2021-12-11 08:59:11 -08:00
Albert Krewinkel
bfb3118ebb
Lua tests: remove roundtrip tests
Property tests that roundtrip elements through the Lua stack are
performed in the test-suite of the pandoc-lua-marshal package. No need
to test this here as well.
2021-12-10 18:28:54 +01:00
Albert Krewinkel
a64ea18647
Powerpoint tests: shorten lines by grouping tests
This makes the test output more pleasant to read in narrow terminal
windows.
2021-12-10 18:25:28 +01:00
Albert Krewinkel
3e7b46af64
Switch to released pandoc-lua-marshal-0.1.2
Cell values are now marshaled as userdata objects; a constructor
function for table cells is provided as `pandoc.Cell`.
2021-12-10 17:24:50 +01:00
Kolen Cheung
20eb8ac7fd
ipynb writer: handle cell output with raw block of markdown (#7563)
Write RawBlock of markdown in code-cell output.

#7561 makes the ipynb reader reads code-cell output with mime
"text/markdown" to a RawBlock of markdown

This commit makes the ipynb writer writes this RawBlock of markdown
back inside a code-cell output with the same mime, preserving this
information in round-trip

Add tests of ipynb reader (#7561) and ipynb writer (#7563)'s ability to
handle a "text/markdown" mime type in a code-cell output
2021-12-09 20:36:56 -08:00
Albert Krewinkel
fa643ba6d7 Lua: update to latest pandoc-lua-marshal (0.1.1)
- `walk` methods are added to `Block` and `Inline` values; the methods
  are similar to `pandoc.utils.walk_block` and
  `pandoc.utils.walk_inline`, but apply to filter also to the element
  itself, and therefore return a list of element instead of a single
  element.

- Functions of name `Doc` are no longer accepted as alternatives for
  `Pandoc` filter functions. This functionality was undocumented.
2021-12-09 09:22:29 -08:00
John MacFarlane
9cbea695c4 Ipynb writer: ensure deterministic order of keys. 2021-12-08 23:21:39 -08:00
John MacFarlane
8215ca081d Use latest dev version of ipynb.
This should give us deterministic JSON output for mime bundles.
2021-12-08 08:55:26 -08:00
John MacFarlane
ccb9db34f8 Add test for #7738. 2021-12-07 23:59:59 -08:00
John MacFarlane
45e51ecd65 Revert "Markdown reader: Improve inlinesInBalancedBrackets."
This reverts commit fa83246d7d.
2021-12-07 23:52:29 -08:00
John MacFarlane
51142c6803 Ipynb reader & writer: properly handle cell "id".
This is passed through if it exists (in Nb4); otherwise
the writer will add a random one so that cells all have
an "id".

Closes #7728.
2021-12-06 23:40:51 -08:00
John MacFarlane
72075423d0 custom-writers.md: use filter to include source of example. 2021-12-06 13:04:51 -08:00
John MacFarlane
23b2617bf7 Ms writer: properly encode strings for PDF contents.
Closes #7731.
2021-12-06 12:00:08 -08:00
John MacFarlane
36807db531 Commonmark writer: allow ')' delimiters on ordered lists. 2021-12-05 11:26:01 -08:00
John MacFarlane
51f6f0e3a1 Improve Markdown writer escaping.
This fixes escaping for '#' in particular.
Closes #7726.
2021-12-03 17:52:47 -08:00
John MacFarlane
928c120806 Allow unicode-transforms 0.4.0. 2021-12-02 09:00:33 -08:00
John MacFarlane
0892af33ae Suggest VSCode as a possible editor in getting-started.md. 2021-12-02 08:28:18 -08:00
John MacFarlane
26d0a1052e Re-add top heading in changelog but as a level-1 heading. 2021-12-01 00:00:17 -08:00
John MacFarlane
9dfd9eff6d Remove useless first heading in changelog. 2021-11-30 23:57:37 -08:00
John MacFarlane
619dfa2a2a Markdown reader: don't allow ^ at beginning of link or image label.
This is reserved for footnotes.
Fixes a regression introduced by 0a93acf.

Closes #7723.
2021-11-30 12:53:54 -08:00
John MacFarlane
6e712fa10a Update cabal description. 2021-11-30 10:12:42 -08:00
John MacFarlane
426342f00d Fix typo. Closes jgm/pandoc-website#54. 2021-11-30 08:25:15 -08:00
Albert Krewinkel
fa838deefc
Lua: remove pandoc.utils.text (#7720)
The new `pandoc.Inlines` function behaves identical on string input, but
allows other Inlines-like arguments as well.

The `pandoc.utils.text` function could be written as

    function pandoc.utils.text (x)
      assert(type(x) == 'string')
      return pandoc.Inlines(x)
    end
2021-11-29 09:12:30 -08:00
Mauro Bieg
136739b7ed
fix typo in custom-readers.md (#7722) 2021-11-29 08:59:37 -08:00
John MacFarlane
e30be56fc3 Bump pandoc-lua-marshall lower bound to 0.1.0.1 in cabal file.
Closes #7721.
2021-11-28 17:43:22 -08:00
Albert Krewinkel
c5287e9de5
stack.yaml: use pandoc-lua-marshal-0.1.0.1 2021-11-28 16:19:34 +01:00
Albert Krewinkel
32a4c331d2
doc/lua-filters.md: update docs on Blocks, Inlines, MetaValue 2021-11-28 16:02:48 +01:00
Albert Krewinkel
b9222e5cb1
Lua: add constructors pandoc.Blocks and pandoc.Inlines
The functions convert their argument into a list of Block and Inline
values, respectively.
2021-11-28 16:02:42 +01:00
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