Commit graph

6521 commits

Author SHA1 Message Date
John MacFarlane
1ee6e0e087 Use new doctemplates, doclayout.
+ Remove Text.Pandoc.Pretty; use doclayout instead. [API change]
+ Text.Pandoc.Writers.Shared: remove metaToJSON, metaToJSON'
  [API change].
+ Text.Pandoc.Writers.Shared: modify `addVariablesToContext`,
  `defField`, `setField`, `getField`, `resetField` to work with
  Context rather than JSON values. [API change]
+ Text.Pandoc.Writers.Shared: export new function `endsWithPlain` [API
  change].
+ Use new templates and doclayout in writers.
+ Use Doc-based templates in all writers.
+ Adjust three tests for minor template rendering differences.
+ Added indentation to body in docbook4, docbook5 templates.

The main impact of this change is better reflowing of content
interpolated into templates.  Previously, interpolated variables
were rendered independently and intepolated as strings, which could lead
to overly long lines.  Now the templates interpolated as Doc values
which may include breaking spaces, and reflowing occurs
after template interpolation rather than before.
2019-08-25 14:24:31 -07:00
John MacFarlane
fdb7a5b79f Don't add a newline if there's already one. 2019-08-25 14:24:31 -07:00
Owen McGrath
92debe4b9e Change optMetadataFile type from Maybe to List (#5702)
Changed optMetadataFile from `Maybe FilePath` to `[FilePath]`. This allows
for multiple YAML metadata files to be added. The new default value has
been changed from `Nothing` to `[]`.

To account for this change in `Text.Pandoc.App`, `metaDataFromFile` now
operates on two `mapM` calls (for `readFileLazy` and `yamlToMeta`) and a fold.

Added a test (command/5700.md) which tests this functionality and
updated MANUAL.txt, as per the contributing guidelines.

With the current behavior, using `foldr1 (<>)`, values within files
specified first will be used over those in later files. (If the reverse
of this behavior would be preferred, it should be fixed by changing
foldr1 to foldl1.)
2019-08-24 09:41:25 -07:00
John MacFarlane
d6fdfe6f2b Asciidoc writer: handle admonitions.
Closes #5690.
2019-08-23 10:00:10 -07:00
John MacFarlane
8e01ccb41d RST reader: use title, not admonition-title, for admonition title.
This puts RST reader into alignment with docbook reader.
2019-08-23 09:23:15 -07:00
John MacFarlane
1c71bd1ff5 Ensure proper nesting when we have long ordered list markers.
Closes #5705.
2019-08-23 09:16:54 -07:00
Michael Peyton Jones
9b5082b086 docbook: richer parse for admonitions (#5593)
Fixes #1234.

This parses admonitions not as a blockquote, but rather as a div with an
appropriate class. We also handle titles for admonitions as a nested div
with the "title" class.

(I followed the behaviour of other docbook-to-html converters in this -
there are clearly other ways you could encode it.)

In general, the handling of elements with nested title elements is very
inconsistent. I think we should make it consistent, but I'm leaivng that
for later to make this a small change.

Example:
```docbook
<warning xml:id="someId">
<title>My title</title>
<simpara>An admonition block</simpara>
</warning>
```

goes to

```html
<div id="someId" class="warning">
<div class="title">My title</div>
<p>An admonition block</p>
</div>
```
2019-08-23 09:13:31 -07:00
Krystof Beuermann
3344f861c4 add proofState to settingsList (#5703) 2019-08-23 08:45:37 -07:00
Albert Krewinkel
1f9384542e
Lua: improve function documentations 2019-08-16 20:52:15 +02:00
Albert Krewinkel
2712d3e869
Lua: traverse nested blocks and inlines in correct order
Traversal methods are updated to use the new Walk module such that
sequences with nested Inline (or Block) elements are traversed in the
order in which they appear in the linearized document.

Fixes: #5667
2019-08-16 20:52:15 +02:00
Albert Krewinkel
813e1fc7e0
Lua: add module for AST element sequence traversal
Lua filters must be able to traverse sequences of AST elements and to
replace elements by splicing sequences back in their place. Special
`Walkable` instances can be used for this; those are provided in a new
module `Text.Pandoc.Lua.Walk`.
2019-08-16 20:52:15 +02:00
John MacFarlane
79a3449eeb LaTeX reader: improve withRaw so it can handle cases where...
the token string is modified by a parser (e.g. accent when
it only takes part of a Word token).

Closes #5686.  Still not ideal, because we get the whole
`\t0BAR` and not just `\t0` as a raw latex inline command.
But I'm willing to let this be an edge case, since you
can easily work around this by inserting a space, braces,
or raw attribute.  The important thing is that we no longer
drop the rest of the document after a raw latex inline
command that gobbles only part of a Word token!
2019-08-14 14:34:44 -07:00
John MacFarlane
e85178c32a Removed some needless lookaheads in Markdown reader. 2019-08-14 11:43:08 -07:00
John MacFarlane
0b2fb9b8f9 Add thin space when needed in LaTeX quote ligatures.
Closes #5685.
2019-08-14 11:07:02 -07:00
Zihang Chen
d4fa38a0a5 Fix multiline table for XWiki writer (#5683)
Details at https://groups.google.com/forum/#!topic/pandoc-discuss/c861tTdCFTg

Fix XWiki output for

```
+----------+----------+
| Col A    | Col B    |
+==========+==========+
| Row A    | * Item A |
|          | * Item B |
+----------+----------+
```

from (notice that the following XWiki code renders as a table followed by a singleton list)

```
|=Col A|=Col B
|Row A|*. Item A
*. Item B
```

to

```
|=Col A|=Col B
|Row A|(((*. Item A
*. Item B
)))
```
2019-08-13 16:37:41 -07:00
Jan-Otto Kröpke
a0a41c7a8e JIRA writer: Remove escapeStringForJira for code blocks 2019-08-11 21:57:12 +02:00
Leif Metcalf
e53c952997 Remove blank line (#5679) 2019-08-08 16:02:14 -07:00
John MacFarlane
6dd689ad97 Revert "Avoid a pointless Text -> String conversion on output."
This reverts commit 87ce1ffbd9.

This change caused a problem on Windows that we didn't have
before; this needs looking into.

https://ci.appveyor.com/project/jgm/pandoc/build/job/fxq96log042df8dk

    .\pandoc.exe -s --toc ..\MANUAL.txt -o MANUAL.html
    pandoc.exe: MANUAL.html: commitAndReleaseBuffer: invalid argument (invalid character)
    Command exited with code 1
2019-08-08 13:39:12 -07:00
John MacFarlane
87ce1ffbd9 Avoid a pointless Text -> String conversion on output. 2019-08-07 09:23:59 -07:00
Urs Liska
b3ead7cdcc Treat ly as verbatim too (#5671)
According to https://github.com/jgm/pandoc/issues/4725#issuecomment-399772217 not only the `lilypond` environment but also `ly` should be included in the verbatim list.

@jperon
https://github.com/jperon/lyluatex/issues/203
2019-08-05 10:35:17 -07:00
John MacFarlane
0b82661e59 Markdown writer: Don't assume Doc has Eq instance.
It won't in a future version.
2019-07-30 21:24:57 -07:00
John MacFarlane
699dd6c367 ConTeXt writer; don't use == empty with Doc, use isEmpty. 2019-07-30 17:30:05 -07:00
John MacFarlane
c7c7664403 Update emoji list in Text.Pandoc.Emoji.
Done using tools/emojis.hs, which uses the list from the
gem GitHub uses.  Future updates can be done with this tool.

Closes #5666.
2019-07-29 11:17:22 -07:00
John MacFarlane
b35fae6511 Use doctemplates 0.3, change type of writerTemplate.
* Require recent doctemplates.  It is more flexible and
  supports partials.
* Changed type of writerTemplate to Maybe Template instead
  of Maybe String.
* Remove code from the LaTeX, Docbook, and JATS writers that looked in
  the template for strings to determine whether it is a book or an
  article, or whether csquotes is used. This was always kludgy and
  unreliable.  To use csquotes for LaTeX, set `csquotes` in your
  variables or metadata. It is no longer sufficient to put
  `\usepackage{csquotes}` in your template or header includes.
  To specify a book style, use the `documentclass` variable or
  `--top-level-division`.
* Change template code to use new API for doctemplates.
2019-07-28 19:25:45 -07:00
John MacFarlane
99e24cf183 LaTeX reader: handle \passthrough macro used by latex writer.
Closes #5659.
2019-07-24 10:18:09 -07:00
Philip Pesca
01a52e2300 HTML writer: ensure TeX formulas are rendered correctly (#5658)
The web service passed in to `--webtex` may render formulas using inline
or display style by default. Prefixing formulas with the appropriate
command ensures they are rendered correctly.

This is a followup to the discussion in #5656.
2019-07-24 10:10:36 -07:00
John MacFarlane
060141bf2c Templates: don't import/export varListToJSON.
We'll be removing that in doctemplates 0.3.
2019-07-23 21:49:13 -07:00
John MacFarlane
1187ca3517 Templates: Change type of renderTemplate'.
Return value is now Text rather than being polymorphic.
This makes room for upcoming removal of the TemplateTarget
class from doctemplates.

Other code modified accordingly, and should compile with
both current and upcoming version of doctemplates.
2019-07-23 21:40:24 -07:00
Philip Pesca
bc508534a6 HTML writer: render inline formulas correctly with --webtex (#5656)
We add `\textstyle` to the beginning of the formula to ensure it will be rendered in inline style.
Closes #5655.
2019-07-23 12:21:31 -07:00
John MacFarlane
d9960244d8 LaTeX reader: support tex \tt command.
Closes #5654.
2019-07-22 15:29:07 -07:00
Albert Krewinkel
63c65c89da
Org reader: accept ATTR_LATEX in block attributes
Attributes for LaTeX output are accepted as valid block attributes;
however, their values are ignored.

Fixes: #5648
2019-07-22 08:12:22 +02:00
John MacFarlane
91d4283263 LaTeX writer: fix line breaks at start of paragraph.
Previously we just omitted these. Now we render them
using `\hfill\break` instead of `\\`.  This is a revision
of a PR by @sabine (#5591) who should be credited with the
idea.

Closes #3324.
2019-07-20 17:12:53 -07:00
John MacFarlane
b6f9318c9b PDF: Better detection of a Cygwin environment.
Should close #5451.

Unlike the earlier fix, this one doesn't spill out to stderr
when 'uname -o' fails.
2019-07-20 16:50:53 -07:00
John MacFarlane
fb73b5c27b Revert "PDF: create temp dir in . on Cygwin."
This reverts commit 50885eabde.

Reopens #5451.

The problem with the previous commit is that it would lead to
spurious messages on stderr on platforms like macOS.
2019-07-20 12:59:34 -07:00
John MacFarlane
8435de3236 Removed an unnecessary liftIO. 2019-07-20 12:53:44 -07:00
John MacFarlane
30eda43192 Moved istty check. 2019-07-20 12:51:03 -07:00
John MacFarlane
8643361d2e Minor code clarity change. 2019-07-20 12:26:24 -07:00
John MacFarlane
465eeece6b LaTeX reader: search for image with list of extensions...
like latex does, if an extension is not provided.

Closes #4933.
2019-07-20 10:17:49 -07:00
John MacFarlane
339392bf54 Markdown: Ensure that expanded latex macros end with space if original did.
Closes #4442.
2019-07-19 10:32:59 -07:00
John MacFarlane
50885eabde PDF: create temp dir in . on Cygwin.
See #5451.
2019-07-19 09:41:19 -07:00
Agustín Martín Barbero
bd69218451 Change order of ilvl and numId in document.xml (#5647)
Workaround for Word Online shortcomming. Fixes #5645

Also, make list para properties go first.

This reordering of properties shouldn't be necessary but
it seems Word Online does not understand the docx correctly otherwise.
2019-07-19 09:32:43 -07:00
John MacFarlane
28cad16517 Markdown writer: prefer using raw_attribute when enabled.
The `raw_attribute` will be used to mark raw bits, even HTML
and LaTeX, and even when `raw_html` and `raw_tex` are enabled,
as they are by default.

To get the old behavior, disable `raw_attribute` in the writer.

Closes #4311.
2019-07-18 22:31:03 -07:00
John MacFarlane
5c655e86d5 HTML writer: ensure that line numbers in code blocks get id-prefix.
Closes #5650.
2019-07-18 22:08:37 -07:00
John MacFarlane
c75faac1b5 LaTeX reader: handle \looseness command values better.
Closes #4439.
2019-07-16 13:42:34 -07:00
John MacFarlane
0d72237e27 Dokuwiki writer: handle mixed lists without HTML fallback.
Closes #5107.
2019-07-16 13:14:37 -07:00
John MacFarlane
100624a009 Ms writer: Use .LP instead of .PP for line block.
Closes #5588.
2019-07-16 12:17:02 -07:00
John MacFarlane
5454aad324 Make filterIpynbOutput strip ANSI escapes from code in output...
for non-ipynb formats, when the default "best" option is used with
--ipynb-output.  The escape sequences cause problems in many formats,
including LaTeX.  Closes #5633.
2019-07-16 09:27:51 -07:00
Karl Pettersson
5303791bc4 Customizable type of PDF/A for the ConTeXt writer (issue #5608) (#5610)
* Let the user choose type of PDF/A generated with ConTeXt (closes #5608)
* Updated ConTeXt test documents for changes in tagging
* Updated color profile settings in accordance with ConTeXt wiki
* Made ICC profile and output intent for PDF/A customizable
* Read pdfa variable from meta (and updated manual)
2019-07-15 11:55:04 -07:00
John MacFarlane
680d7b515f Logging: Added UnknownExtensions constructor to LogMessage.
[API change]

Issue this warning when we're falling back to markdown or
html because we don't recognize the extension of the input or
output files.
2019-07-14 11:35:17 -07:00
John MacFarlane
ed0548d898 Change formatForFilePaths to return a Maybe.
Internal change. This will make it easier to emit messages
when we're guessing at a format.
2019-07-14 10:48:38 -07:00