Commit graph

6521 commits

Author SHA1 Message Date
John MacFarlane
8a64bd0abf Allow output-file to be null in --defaults. 2019-10-11 08:57:34 -07:00
John MacFarlane
c468951d8e Remove redundant import. 2019-10-11 08:20:31 -07:00
John MacFarlane
7388cd3e7a Improve parsing of --defaults.
- Add FromYAML instances to Opt and to all subsidiary types.
- Remove the use of HsYAML-aeson, which doesn't give good
  position information on errors.
- Rename some fields in Opt to better match cli options or
  reflect what the ycontain [API change]:

  + optMetadataFile -> optMetadataFiles
  + optPDFEngineArgs -> optPDFEngineOpts
  + optWrapText -> optWrap
- Add IpynbOutput enumerated type to Text.Pandoc.App.Opts.
  Use this instead fo a string for optIpynbOutput.
- Add FromYAML instance for Filter in Text.Pandoc.Filters.

With these changes parsing of defaults files should be
complete and should give decent error messages.

Now (unlike before) we get an error if an unknown field
is used.
2019-10-10 23:21:18 -07:00
John MacFarlane
33f70e9819 Add -d as synonym for --defaults. 2019-10-10 10:12:23 -07:00
John MacFarlane
558b91801a Reorder options in --help. 2019-10-10 10:12:05 -07:00
John MacFarlane
a3cd74c29b --metadata-file: when multiple files specified, second takes precedence...
on conflicting fields.  This changes earlier behavior (but not in
a release), where first took precedence.

Note that this may seem inconsistent with the behavior of
multiple YAML blocks within a document, where the first takes
precedence.  Still, it is convenient to be able to override
defaults with options later on the command line.
2019-10-10 10:00:45 -07:00
John MacFarlane
68b09a6d81 Make some writers sensitive to 'unlisted' class on headings.
If this is present on a heading with the 'unnumbered' class,
the heading won't appear in the TOC.  This class has no
effect if 'unnumbered' is not also specified.

This affects HTML-based writers (including slide shows
and epub), LateX (including beamer), RTF, and PowerPoint.
Other writers do not yet support `unlisted`.

Closes #1762.
2019-10-10 09:15:40 -07:00
John MacFarlane
2b1361e738 Remove unnecessary import. 2019-10-10 08:36:27 -07:00
John MacFarlane
fcefcfec39 --defaults: add .yaml extension if absent, look in user data dir...
under "defaults" subdirectory.
2019-10-09 23:29:25 -07:00
John MacFarlane
ff1df241a9 T.P.App.Opt: rename optReader, optWriter as optFrom, optTo.
This will allow to: and from: in defaults.
2019-10-09 21:54:41 -07:00
John MacFarlane
070e098b48 Make sure that input-files works in --default files. 2019-10-09 17:51:33 -07:00
John MacFarlane
a3729ef2da RST writer: proper handling of :align: on figures, images.
When the image has the `align-right` (etc.) class, we now use
an `:align:` attribute.

Closes #4420.
2019-10-09 15:05:22 -07:00
zorkow
3c7f1bf96c Basic changes for MathJax 3. 2019-10-09 14:30:25 -07:00
John MacFarlane
83702404af Initial implementation of --defaults option.
Need documentation.
2019-10-09 12:44:09 -07:00
John MacFarlane
5419988f22 T.P.App.Opt: Changed optMetadata to Meta, to allow structured values.
[API change]

The current behavior of the `--metadata` option stays the same.
2019-10-09 11:46:20 -07:00
John MacFarlane
3aa069e1d5 Change optVariables from [(String, String)] to Context Text.
In Text.Pandoc.App.Opt [API change].
2019-10-09 11:01:33 -07:00
John MacFarlane
aceee9ca48 Options.WriterOptions: Change type of writerVariables to Context Text.
This will allow structured values.

[API change]
2019-10-09 11:01:33 -07:00
John MacFarlane
1b10b5cea9 Use th to derive json instance for LineEnding. 2019-10-08 08:02:24 -07:00
John MacFarlane
34c61fcad5 Text.Pandoc.Options: change To/FromJSON instances for...
HTMLMathMethod, CiteMethod, ObfuscationMethod, TrackChanges, WrapOption,
TopLevelDivision, ReferenceLocation, HTMLSlideVariant.

In each case we use lowercase (or hyphenated lowercase) for
constructors to line up more closely with command-line option
values.

This is a breaking change for those who manually decode or encode
JSON for these data types (e.g. for ReaderOptions or WriterOptions).

See #5790.
2019-10-07 22:23:51 -07:00
John MacFarlane
e4ccfeab8c Shored.camelCaseToHyphenated: handle ABCDef = abc-def. 2019-10-07 21:31:03 -07:00
John MacFarlane
8fb9a0d168 Remove derive_json_via_th flag; always use TH.
This cuts down on code duplication and reduces the chance
for errors.  See #4083.
2019-10-07 21:23:50 -07:00
John MacFarlane
3c58cc4f33 Remove redundant import. 2019-10-07 10:24:47 -07:00
John MacFarlane
da070bea47 Use typeMismatch. 2019-10-07 00:04:47 -07:00
John MacFarlane
6e537aeda8 T.P.App.Opt: custom FromJSON instance for LineEnding.
So either CRLF or crlf will work.
2019-10-06 23:48:34 -07:00
John MacFarlane
3ef0cdd8f9 Opt: Change optHighlightStyle to a Maybe String instead of Maybe Style.
Do the parsing/loading of themes later, after option parsing.
2019-10-06 23:15:52 -07:00
John MacFarlane
5f8254c4b9 Code cleanup 2019-10-06 22:26:26 -07:00
John MacFarlane
fcfdc8210f Text.Pandoc.App.Opt: Remove optBaseHeaderLevel from Opt.
We now just use optShiftHeadingLevelBy, to avoid redundancy.
2019-10-06 21:31:28 -07:00
John MacFarlane
cf1703396c Text.Pandoc.App.Opt: Change optShiftHeadingLevel to optShiftHeadingLevelBy...
to match the option.
2019-10-06 16:55:12 -07:00
John MacFarlane
2e35eafd12 Text.Pandoc.App.Opt: more convenient To/FromJSON instances.
Make the field names like `strip-empty-paragraphs` rather
than `optStripEmptyParagraphs`.
2019-10-06 16:25:05 -07:00
Alexander Krotov
6898445548 hlint Muse writer 2019-10-04 18:29:00 +03:00
Alexander Krotov
701ae8634e hlint FB2 reader 2019-10-04 18:28:45 +03:00
Alexander Krotov
8efc677368 Fix all hlint warnings in Muse reader 2019-10-04 18:22:05 +03:00
John MacFarlane
638c2ed460 Fix compiler warnings on ghc 8.8. 2019-10-04 07:20:51 -07:00
John MacFarlane
7caaa3d5d6 Minor ghc 8.8 fixups. 2019-10-03 22:41:24 -07:00
Wandmalfarbe
b7a3e385e7 Add additional listings languages. 2019-10-03 08:54:31 -07:00
John MacFarlane
18d11103f5 RST reader: don't strip final underscore from absolute URI.
Partially addresses #5763.
2019-09-29 13:01:00 -07:00
John MacFarlane
746c92a41a Raise error on unsupported extensions. Closes #4338.
+ An error is now raised if you try to specify (enable or
  disable) an extension that does not affect the given
  format, e.g. `docx+pipe_tables`.

+ The `--list-extensions[=FORMAT]` option now lists only
  extensions that affect the given FORMAT.

+ Text.Pandoc.Error: Add constructors `PandocUnknownReaderError`,
  `PandocUnknownWriterError`, `PandocUnsupportedExtensionError`.
  [API change]

+ Text.Pandoc.Extensions now exports `getAllExtensions`,
  which returns the extensions that affect a given format
  (whether enabled by default or not). [API change]

+ Text.Pandoc.Extensions: change type of `parseFormatSpec`
  from `Either ParseError (String, Extensions -> Extensions)`
  to `Either ParseError (String, [Extension], [Extension])`
  [API change].

+ Text.Pandoc.Readers: change type of `getReader` so it returns
  a value in the PandocMonad instance rather than an Either
  [API change].  Exceptions for unknown formats and unsupported
  extensions are now raised by this function and need not be handled by
  the calling function.

+ Text.Pandoc.Writers: change type of `getWriter` so it returns
  a value in the PandocMonad instance rather than an Either
  [API change].  Exceptions for unknown formats and unsupported
  extensions are now raised by this function and need not be handled by
  the calling function.
2019-09-29 11:43:17 -07:00
John MacFarlane
03d4e6b9ef More throwError in place of fail. 2019-09-28 14:45:38 -07:00
John MacFarlane
63a1e05dd1 Replace some more fails with throwErrors. 2019-09-28 13:42:37 -07:00
John MacFarlane
df74eea69a Use throwError instead of fail when appropriate. 2019-09-28 12:36:09 -07:00
John MacFarlane
c86691fb84 Use Prelude.fail to avoid ambiguity with fail from GHC.Base. 2019-09-28 11:56:51 -07:00
John MacFarlane
7d6783006a LogMessage: change UnknownExtension -> CouldNotDeduceFormat 2019-09-27 09:27:56 -07:00
Nils Carlson
8028de3322 odt: Add external option for native numbering
This adds an external options +native_numbering to the
ODT writer enabling enumeration of figures and tables in
ODT output.
2019-09-24 15:23:59 -07:00
Eigil Rischel
d42308129a LaTeX reader: Add 'tikzcd' to list of special environments.
This allows it to be processed by filters, in the same way that
one can do for 'tikzpicture'
2019-09-24 14:19:45 -07:00
John MacFarlane
f223196c35 Man writer: suppress non-absolute link URLs.
Motivation: in a man page there's not much use for relative URLs,
which you can't follow.  Absolute URLs are still useful.  We previously
suppressed relative URLs starting with '#' (purely internal links),
but it makes sense to go a bit farther.

Closes #5770.
2019-09-23 17:46:39 -07:00
John MacFarlane
9abed45879 RST reader: Fixed parsing of indented blocks.
We were requiring consistent indentation, but this
isn't required by RST, as long as each nonblank
line of the block has *some* indentation.

Closes #5753.
2019-09-22 12:01:45 -07:00
Nikolay Yakimov
9b6ee81c19 [Docx Writer] Re-use Readers.Docx.Parse for StyleMap (#5766)
* [Docx Parser] Move style-parsing-specific code to a new module

* [Docx Writer] Re-use Readers.Docx.Parse.Styles for StyleMap

* [Docx Writer] Move Readers.Docx.StyleMap to Writers.Docx.StyleMap

It's never used outside of writer code, so it makes more sense to scope it under writers really.
2019-09-22 12:00:35 -07:00
John MacFarlane
d247e9f72e Make plain output plainer.
Previously we used the following Project Gutenberg conventions
for plain output:

- extra space before and after level 1 and 2 headings
- all-caps for strong emphasis `LIKE THIS`
- underscores surrounding regular emphasis `_like this_`

This commit makes `plain` output plainer. Strong and Emph
inlines are rendered without special formatting.  Headings
are also rendered without special formatting, and with only
one blank line following.

To restore the former behavior, use `-t plain+gutenberg`.

API change: Add `Ext_gutenberg` constructor to `Extension`.

See #5741.
2019-09-22 11:33:09 -07:00
John MacFarlane
b64410ff9c Use HsYAML-0.2.0.0
Most of this is due to @vijayphoenix (#5704), but it
needed some revisions to integrate with current
master, and to use the released HsYAML.

Closes #5704.
2019-09-22 10:38:15 -07:00
Nikolay Yakimov
14b00517ae [Docx Writer] Consistently use style names, not style ids
Styles that this change affects: paragraph styles: Author, Abstract,
Compact, Figure, Captioned Figure, Image Caption, First Paragraph,
Source Code, Table Caption, Definition, Definition Term; character
styles: Verbatim Char, token styles (those with names ending in Tok)
2019-09-21 11:37:21 -07:00