Commit graph

4289 commits

Author SHA1 Message Date
Alexander Krotov
a58112f6bc Simplify toRomanNumeral using guards (#3445) 2017-02-14 23:00:23 +01:00
John MacFarlane
2a3c2b01ea Removed unnecessary import. 2017-02-14 15:02:59 +01:00
John MacFarlane
cfdbe85e71 LaTeX reader: properly handle column prefixes/suffixes.
For example, in

     \begin{tabular}{>{$}l<{$}>{$}l<{$} >{$}l<{$}}

each cell will be interpreted as if it has a `$`
before its content and a `$` after (math mode).
2017-02-13 22:39:59 +01:00
Alexander Krotov
9e3f5a5147 Do not strip # from Org anchor links
Links with # are perfectly valid according to http://orgmode.org/manual/Internal-links.html#Internal-links
2017-02-12 17:09:44 +03:00
John MacFarlane
48c78713c8 Rename logMessagesToJSON -> encodeLogMessages. 2017-02-11 22:58:22 +01:00
John MacFarlane
cf26bc5f68 RST reader: Support .. line-block directive.
This is deprecated but may still be in older documents.
2017-02-11 22:47:05 +01:00
John MacFarlane
2759960204 RST reader/writer: properly handle table captions.
Currently the support for the `.. table` directive is a bit
limited; we don't yet support the `widths` field.  But at least
you can have a proper captioned table.
2017-02-11 22:37:07 +01:00
John MacFarlane
510a6ee059 RST reader: Initial support of .. table directive.
This allows adding captions to tables.
2017-02-11 22:21:49 +01:00
John MacFarlane
1a23bc65b8 Fixed small bug in RST list parsing.
See #3432.  Previously the parser didn't handle properly this
case:

    * - a
      - b
    * - c
      - d
2017-02-11 20:55:13 +01:00
John MacFarlane
92a5445aa1 Logging: export logMessagesToJSON.
Use a deterministic order for fields.
2017-02-11 20:13:33 +01:00
John MacFarlane
a6c649cfc8 Added --log option to save log messages in JSON format to a file.
See #3392.
2017-02-11 09:59:54 +01:00
John MacFarlane
e0d21dbb82 Class.report: Save all log messages in state.
Verbosity level only affects which are printed to stdout.
(Exception: DEBUG messages are only printed, never saved to
state.)
2017-02-11 09:06:49 +01:00
John MacFarlane
31f5c02743 HTML writer: report when not rendering raw inline/block. 2017-02-11 00:20:45 +01:00
John MacFarlane
76c55466d3 Use new warnings throughout the code base. 2017-02-11 00:14:44 +01:00
John MacFarlane
8ad7e2c21f Logging: added ToJSON instance and showLogMessage.
This gives us the possibility of both machine-readable
and human-readable output for log messages.

See #3392.
2017-02-10 22:06:07 +01:00
John MacFarlane
5e1249481b Added Text.Pandoc.Logging (exported module).
This now contains the Verbosity definition previously
in Options, as well as a new LogMessage datatype that
will eventually be used instead of raw strings for
warnings.

This will enable us, among other things, to provide
machine-readable warnings if desired.

See #3392.
2017-02-10 20:59:54 +01:00
John MacFarlane
c76eec97d4 LaTeX reader: Improved messages for skipped environments. 2017-02-10 10:00:23 +01:00
John MacFarlane
29b1ed0b84 LaTeX reader: Improved warning messages for unknown commands. 2017-02-10 08:36:04 +01:00
John MacFarlane
a84a360f7a HTML reader: Added warnings for ignored material.
See #3392.
2017-02-10 08:18:08 +01:00
John MacFarlane
87507e1b9c LaTeX reader: Issue warnings when skipping unknown latex commands.
See #3392.
2017-02-09 22:21:07 +01:00
John MacFarlane
0a4ba91994 Reverted deferred media bag code.
This was not actually being used. Since it adds considerable
complexity, it's best not to include it unless we are
actually going to use it.

The original thought was that we could do all loading in the
readers, always deferred and thus costless.  This was supposed
to eliminate the need to traverse trees loading resources in
the docx, epub, odt writers and in PDF and SelfContained.
(It would also have the side effect that --extract-media could
be used with all input formats.  This wasn't an intended side
effect, and it could be debated whether it's desirable, since
--extract-media was originally designed to extract the media
contained in a docx or odt or epub container.)

However, we never actually took the step of moving all of this
work to the readers, for a couple of reasons. The main reason
is that we'd still need to fetch resources in the docx,
epub, odt, pdf and self-contained writers, since the Pandoc AST might
have been built programatically and hence not generated by a reader.
So it's not clear that doing lazy loading in the readers would have
any real advantage.

I'm still not completely sure about this --- if we change our
minds it would be easy to undo this commit.

@jkr comments welcome.
2017-02-09 21:26:24 +01:00
John MacFarlane
6949d74e01 LaTeX reader: support \lstinputlisting.
Closes #2116.
2017-02-08 00:07:53 +01:00
John MacFarlane
e4d7bed51c RST reader: Improved admonition support.
* We no longer add an "admonition" class, we just use the
  class for the type of admonition, "note" for example.
* We put the word corresponding to the label in a paragraph
  inside a div at the beginning of the admonition with class
  "admonition-title".
* This is about as close as we can get to RST's own output.

See #223.
2017-02-07 23:18:56 +01:00
John MacFarlane
857d35fce4 Refactored some files formerly in LaTeX reader.
* Export readFileFromDirs from Class.
* Export insertIncludedFile from Parsing.

Simplified code in LaTeX/RST readers.
2017-02-07 22:33:05 +01:00
John MacFarlane
1ecc48e9f9 Moved readFileFromDirs to Text.Pandoc.Class.
This can be used in several different modules, not just
LaTeX reader.
2017-02-07 21:42:35 +01:00
John MacFarlane
9db98550df Refactored include file handling in LaTeX reader. 2017-02-07 19:16:56 +01:00
John MacFarlane
47a16065c4 Removed --parse-raw and readerParseRaw.
These were confusing.

Now we rely on the +raw_tex or +raw_html extension with latex
or html input.

Thus, instead of

    --parse-raw -f latex

we use

    -f latex+raw_tex

and instead of

     --parse-raw -f html

we use

    -f html+raw_html
2017-02-06 23:33:23 +01:00
John MacFarlane
c604371aa4 Fix import 2017-02-06 17:03:03 +01:00
John MacFarlane
4cdb1a0891 Changed year on copyright message. 2017-02-06 14:53:31 +01:00
John MacFarlane
37e579581a Consolidated file arguments into Opt. 2017-02-06 14:52:16 +01:00
John MacFarlane
67dc15771d Further refactoring of App.
Moved option parsing code into App.
pandoc.hs is now a 2-liner.
2017-02-06 14:46:48 +01:00
John MacFarlane
b4ccb70893 Fix an unneeded import warning. 2017-02-05 23:12:58 +01:00
John MacFarlane
c93ecfc3c5 Handle language in inline code with --listings.
Closes #3422.
2017-02-05 22:22:42 +01:00
John MacFarlane
0bbea0cc76 Split pandoc.hs into a module, Text.Pandoc.App, and a small program.
The App module provides a function that does a pandoc conversion,
based on option settings.  The program (pandoc.hs) now does nothing
more than parse options and pass them to this function, which can
easily be used by other applications (e.g. a GUI wrapper).

The Opt structure has been further simplified.

API changes:

* New exposed module Text.Pandoc.App
* Text.Pandoc.Highlighting has been exposed.
* highlightingStyles has been moved to Text.Pandoc.Highlighting.
2017-02-05 21:58:45 +01:00
John MacFarlane
5f2f2efe32 Removed redundant import. 2017-02-05 11:54:05 +01:00
Thenaesh Elango
942189056d Allow user to specify User-Agent (#3421)
This commit enables users to specify the User-Agent
header used when pandoc requests a document from
a URL. This is done by setting an environment variable.
For instance, one can do:
USER_AGENT="..." ./pandoc -f html -t markdown http://example.com

Signed-off-by: Thenaesh Elango <thenaeshelango@gmail.com>
2017-02-05 11:28:39 +01:00
John MacFarlane
63b568f445 Changed writerEpubMetadata to a Maybe String.
API change.
2017-02-04 22:51:51 +01:00
John MacFarlane
7404c83fb3 Improved escaping in RST writer with smart option. 2017-02-04 22:09:06 +01:00
Albert Krewinkel
623d860be6
Org writer: reduce to two spaces after bullets
The org writer was inserting two spaces after list bullets. Emacs
Org-mode defaults to a single space, so behavior is changed to reflect
this.

Closes: #3417
2017-02-04 21:15:05 +01:00
John MacFarlane
e0abe18bb9 Markdown writer: Better escaping when +smart. 2017-02-04 21:06:42 +01:00
John MacFarlane
cb1b0bcba7 Expose setVerbosity in Text.Pandoc 2017-02-04 21:06:36 +01:00
John MacFarlane
8418c1a7d7 Implemented +/-smart in rst writer.
Moved unsmartify to Writers.Shared.
2017-02-04 12:52:08 +01:00
John MacFarlane
76aa43c579 Docx reader: handle local namespace declarations.
Previously we didn't recognize math, for example, when
the xmlns declaration occured on the element and not the root.
Now we recognize either.

Closes #3365.

This patch defines findChildByName, findChildrenByName,
and findAttrByName in Util, and uses these in Parse.
2017-02-03 22:23:07 +01:00
John MacFarlane
23e6495624 Docx reader: Don't drop smartTag contents.
This just parses inside smartTags and yields their contents,
ignoring the attributes of the smartTag.  @jkr, you may want
to adjust this, but I wanted to get a fix in as fast as possible
for the dropped content.

Closes #2242; see also #3412.
2017-02-03 11:57:07 +01:00
Mauro Bieg
5cd475be70 HTML and DocBook writers: fix internal links with writerIdentifierPrefix opt (#3398)
closes #3397
2017-02-03 09:53:43 +01:00
Alexander Krotov
9327e70c10 Org.hs: remove misleading comment
This comment is likely copied from RST.hs where 'refs' variable indeed exists, but makes no sense here.
2017-02-02 08:58:35 +01:00
Alexander Krotov
59a2e5575a Reduce state in Org writer (#3404) 2017-02-01 12:00:40 +01:00
John MacFarlane
7018003811 --mathml and MathML in HTMLMathMethod longer take an argument.
The argument was for a bridge javascript that used to be necessary
in 2004.  We have removed the script already.
2017-01-30 11:31:50 +01:00
John MacFarlane
5e2754f515 Make epub an alias for epub3, not epub2. 2017-01-30 10:19:30 +01:00
John MacFarlane
411434bf13 Removed some old commented-out code. 2017-01-28 23:34:29 +01:00