aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc
AgeCommit message (Collapse)AuthorFilesLines
2021-11-27Lua: use package pandoc-lua-marshal (#7719)Albert Krewinkel24-1729/+207
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-24LaTeX reader: Fix semantics of `\ref`.John MacFarlane1-5/+3
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-24LaTeX reader: improve references.John MacFarlane4-5/+27
- 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-24LaTeX reader: omit visible content for `\label{...}`.John MacFarlane1-2/+1
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-24HTML reader: parse attributes on links and images.John MacFarlane2-11/+10
Closes #6970.
2021-11-24Lua: allow single elements as singleton MetaBlocks/MetaInlinesAlbert Krewinkel1-0/+3
Single elements should always be treated as singleton lists in the Lua subsystem.
2021-11-23Improve detection of pipe table line widths.John MacFarlane1-14/+18
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-23Lua: add function `pandoc.utils.text` (#7710)Albert Krewinkel2-2/+11
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-23Lua: split strings into words when treating them as Inline list (#7712)Albert Krewinkel1-4/+7
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-22Add .yml to Citeproc formatFromExtension (#7706)Jörn Krenzer1-0/+1
Make Citeproc recognize files with .yml extension (in addition to .yaml) as YAML bibliographies. Closes #7707.
2021-11-21yamlBsToRefs: allow multiple YAML documents.John MacFarlane1-2/+2
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-20Capture `alt-text` in JATS figures (#7703)Albert Krewinkel1-2/+13
Co-authored-by: Aner Lucero <4rgento@gmail.com>
2021-11-19Lua: fix global module loading (#7701)Albert Krewinkel1-7/+27
2021-11-19Remove unused line.John MacFarlane1-1/+0
2021-11-19MediaWiki writer: fix code for generating spans for header IDs.John MacFarlane1-1/+1
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-19HTML writer: Don't create invalid `data-` attribute...John MacFarlane1-0/+1
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-18MediaWiki writer: use HTML spans for anchors when header has id.John MacFarlane1-2/+8
Closes #7697.
2021-11-18RST reader: handle class attribute for for custom roles (#7700)willj-dev1-8/+16
Previously the class attribute was ignored, and the name of the role used as the class. Closes #7699.
2021-11-17Babel mappings: use ancientgreek for grc.John MacFarlane1-1/+1
2021-11-17Lua: set `lpeg`, `re` as globals; allow shared lib access via requireAlbert Krewinkel1-18/+18
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-16Lua: make loading of global LPeg modules more robustAlbert Krewinkel1-14/+20
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-15Markdown writer: don't create autolinks when this loses information.John MacFarlane1-1/+4
Previously we sometimes lost attributes when rendering links as autolinks. Closes #7692.
2021-11-15LaTeX reader: add rudimentary support for `\autoref` (#7693)Albert Krewinkel1-0/+1
2021-11-12JATS writer: ensure figures are wrapped with `<p>` in list items.Albert Krewinkel1-0/+1
This prevents the generation of invalid output.
2021-11-12JATS writer: add URL to element citation entriesAlbert Krewinkel1-0/+1
The URL of a reference, if present, is added in tag `<uri>` to element-citation entries.
2021-11-11Writers.Shared: Improve toLegacyTable.Christian Despres1-1/+1
Closes #7683. (PR #7684)
2021-11-11Lua: load `re` module available into global of the same nameAlbert Krewinkel1-21/+11
2021-11-10Fix parsing of `%` in bibtex fields.John MacFarlane1-5/+4
Closes #7678 (a bug introduced by 0a45f26).
2021-11-09Require ghc >= 8.6, base >= 4.12.John MacFarlane1-6/+0
This allows us to get rid of the old custom prelude and some crufty cpp. But the primary reason for this is that conduit has bumped its base lower bound to 4.12, making it impossible for us to support lower base versions.
2021-11-09Accept empty `--metadata-file`.John MacFarlane1-0/+1
Closes #7675. This is a regression from 2.15 behavior.
2021-11-09Lua: fix argument order in constructor `pandoc.Cite`.Albert Krewinkel1-2/+2
This restores the old behavior; argument order had been switched accidentally in pandoc 2.15.
2021-11-08With `-t latex-smart`, don't generate `\ldots` from ellipsis.John MacFarlane1-1/+1
Instead just use unicode ellipsis. Closes #7674.
2021-11-08Properly handle commented lines in BibTeX/BibLaTeX.John MacFarlane1-18/+27
Closes #7668.
2021-11-08Add `<titleabbr>` support to DocBook readerRowan Rodrik van der Molen1-5/+12
2021-11-08Lua: ensure that 're' module is always available.Albert Krewinkel1-0/+8
The module is shipped with LPeg.
2021-11-07LaTeX reader: add 'uri' class when parsing `\url`.John MacFarlane1-2/+2
Closes #7672.
2021-11-06Pass ReaderOptions to custom readers as second parameter.John MacFarlane1-4/+3
2021-11-06Lua: add Pushable instance for ReaderOptionsAlbert Krewinkel1-1/+4
2021-11-06Lua: allow to pass custom reader options to `pandoc.read`Albert Krewinkel3-39/+110
Reader options can now be passed as an optional third argument to `pandoc.read`. The object can either be a table or a ReaderOptions value like `PANDOC_READER_OPTIONS`. Creating new ReaderOptions objects is possible through the new constructor `pandoc.ReaderOptions`. Closes: #7656
2021-11-05Add interface for custom readers written in Lua. (#7671)John MacFarlane2-5/+63
New module Text.Pandoc.Readers.Custom, exporting readCustom [API change]. Users can now do `-f myreader.lua` and pandoc will treat the script myreader.lua as a custom reader, which parses an input string to a pandoc AST, using the pandoc module defined for Lua filters. A sample custom reader can be found in data/reader.lua. Closes #7669.
2021-11-05Support for <indexterm>s when reading DocBook (#7607)Rowan Rodrik van der Molen1-4/+37
* Support for <indexterm>s when reading DocBook * Update implementation status of `<n-ary>` tags * Remove non-idiomatic parentheses * More complete `<indexterm>` support, with tests Co-authored-by: Rowan Rodrik van der Molen <rowan@ytec.nl>
2021-11-05T.P.Error: sort errors in handleError by exit codeAlbert Krewinkel1-15/+15
2021-11-05Lua: display Pandoc values using their native Haskell representationAlbert Krewinkel1-0/+4
2021-11-05Lua: always load lpeg as global moduleAlbert Krewinkel2-5/+27
2021-11-04Lua: include lpeg module (#7649)Albert Krewinkel1-0/+4
Compiles the 'lpeg' library (Parsing Expression Grammars For Lua) into the program. Package maintainers may choose to rely on package dependencies to make lpeg available, in which case they can compile the with the constraint `lpeg +rely-on-shared-lpeg-library`.
2021-11-04Allow `plain` to be used in raw attribute syntax.John MacFarlane2-2/+4
2021-11-03Lua: add missing space in "package not found" messageAlbert Krewinkel1-1/+1
Closes: #7658
2021-11-02Markdown reader: Improve inlinesInBalancedBrackets.John MacFarlane1-20/+12
This is just a small improvement in terms of performance, but it's simpler and more direct code. Also, we avoid parsing interparagraph spaces in balanced brackets, as the original did.
2021-11-02Docx reader: don't let first line indents trigger block quotes.John MacFarlane1-3/+2
This fixes a regression introduced in pandoc 2.15 by PR #7606. Closes #7655.
2021-11-02Lua: fix typo in SoftBreak constructorAlbert Krewinkel1-1/+1