Commit graph

66 commits

Author SHA1 Message Date
David A Roberts
79855ef934 Markdown writer: better escaping for links (#3628)
Previously the Markdown writer would sometimes create links where there
were none in the source.  This is now avoided by selectively escaping bracket
characters when they occur in a place where a link might be created.

Closes #3619.
2017-05-03 12:19:45 +02:00
schrieveslaach
6e55e6837a LaTeX reader: Add support for tabularx environment (#3632) 2017-05-03 12:16:48 +02:00
Mauro Bieg
e02cfcdeac Markdown Writer: put space before reference link definitions
Fixes #3630 (#3631).

Previously the attributes in link reference definitions did not have a space preceding.
2017-05-03 12:13:25 +02:00
David A Roberts
c0192132cf Markdown writer: Case-insensitive reference links. (#3616)
Ensure that we do not generate reference links
whose labels differ only by case.

Also allow implicit reference links when the link
text and label are identical up to case.

Closes #3615.
2017-05-02 09:00:37 +02:00
John MacFarlane
730796ee31 LaTeX writer: Fix problem with escaping in lstinline.
Previously the LaTeX writer created invalid LaTeX
when `--listings` was specified and a code span occured
inside emphasis or another construction.

This is because the characters `%{}\` must be escaped
in lstinline when the listinline occurs in another
command, otherwise they must not be escaped.

To deal with this, adoping Michael Kofler's suggestion,
we always wrap lstinline in a dummy command `\passthrough`,
now defined in the default template if `--listings` is
specified.  This way we can consistently escape the
special characters.

Closes #1629.
2017-04-29 11:05:44 +02:00
John MacFarlane
e76b672414 LaTeX writer: don't use lstinline it \item[..].
If you do, the contents of item disappear or are misplaced.
Use `\texttt` instead.

Closes #645.
2017-04-28 12:03:59 +02:00
schrieveslaach
a29fa15a7b LaTeX reader: Add basic support for hyphenat package (#3603) 2017-04-26 12:05:13 +02:00
schrieveslaach
81548960d5 LaTeX reader: Add support for \vdots (#3607) 2017-04-26 12:03:07 +02:00
John MacFarlane
ee160d7c4c LaTeX writer: fix error with line breaks after empty content.
LaTeX requires something before a line break, so we insert a
`~` if no printable content has yet been emitted.

Closes #2874.
2017-04-25 15:00:27 +02:00
John MacFarlane
d17f0dab84 LaTeX reader: better support for subfigure package.
A figure with two subfigures turns into two pandoc
figures; the subcaptions are used and the main caption
ignored, unless there are no subcaptions.

Closes #3577.
2017-04-24 23:39:14 +02:00
John MacFarlane
51a46b7e31 HTML reader: Revise treatment of li with id attribute.
Previously we always added an empty div before the list
item, but this created problems with spacing in tight
lists.  Now we do this:

If the list item contents begin with a Plain block,
we modify the Plain block by adding a Span around
its contents.

Otherwise, we add a Div around the contents of the
list item (instead of adding an empty Div to the
beginning, as before).

Closes #3596.
2017-04-23 11:03:48 +02:00
schrieveslaach
020dc63e23 Add siunitx Support (#3588)
For example:


```latex
\SI[round-precision=2]{1}{m} is equal to \SI{1000}{mm}.

\SI[round-precision=2]{1}[\$]{} is equal to \SI{0.938094}{\euro}
```
2017-04-22 21:57:21 +02:00
John MacFarlane
bcc848d773 Avoid parsing "Notes:**" as a bare URI.
This avoids parsing bare URIs that start with a scheme
+ colon + `*`, `_`, or `]`.

Closes #3570.
2017-04-15 13:32:28 +02:00
John MacFarlane
31a36cf186 Man writer: Fix handling of nested font commands.
Previously pandoc emitted incorrect markup for bold + italic, for example,
or bold + code.

Closes #3568.
2017-04-12 12:23:29 +02:00
John MacFarlane
12ae1df5bf Allow raw latex commands starting with \start in Markdown.
Previously these weren't allowed because they were interpreted
as starting ConTeXt environments, even without a corresponding
\stop...

Closes #3558.
2017-04-06 11:30:03 +02:00
schrieveslaach
5fe734d452 lstinline with braces can be used (verb cannot be used with braces) (#3535)
* Fix lstinline handling: lstinline with braces can be used (verb cannot be used with braces)

* Use codeWith and determine the language from lstinline

* Improve code

* Add another test: convert lstinline without language option
2017-03-29 14:49:46 +02:00
schrieveslaach
49d72444d7 LaTeX reader: add support for LaTeX subfiles package.
Closes #3530.
2017-03-27 21:20:27 +02:00
John MacFarlane
fddd6ffdd0 Add blank lines to #3531 command test. 2017-03-26 20:48:54 +02:00
John MacFarlane
358dfba8f4 MediaWiki writer: don't softbreak lines inside list items.
Closes #3531.
2017-03-26 20:41:09 +02:00
John MacFarlane
438e8686cf Markdown writer: don't emit a simple table if simple_tables disabled.
Closes #3529.
2017-03-24 16:11:56 +01:00
John MacFarlane
a939cfe769 Pipe tables: impose minimum cell size.
This might help with #3526.
At any rate, it fixes another bug (see test/command/3526.md).
2017-03-23 16:54:47 +01:00
John MacFarlane
286b320fb0 Added to issue 3516 command test to debug test failure on appveyor. 2017-03-22 14:36:12 +01:00
John MacFarlane
430e2db9ba Improve rendering of superscript in plain output.
We now handle a few non digit characters (+, -, =, parentheses)
for which there are superscripted unicode characters.

Closes #3518.
2017-03-21 14:43:14 +01:00
John MacFarlane
daf8d1db18 RST writer: improve grid table output, fix bug with empty rows.
Uses the new gridTable in Writers.Shared, which is here
improved to better handle 0-width cells.

Closes #3516.
2017-03-21 14:16:46 +01:00
John MacFarlane
48c88d566d Add space_in_atx_header extension.
This is enabled by default in pandoc and GitHub markdown but not the
other flavors.

This requirse a space between the opening #'s and the header
text in ATX headers (as CommonMark does but many other implementations
do not).  This is desirable to avoid falsely capturing things ilke

    #hashtag

or

    #5

Closes #3512.
2017-03-20 21:55:30 +01:00
John MacFarlane
fff3489bf3 Removed failing part of 3348 test.
This was failing because of a small discrepancy in markdown
table header line lengths on appveyor.

It's a minor issue, I can't see what is causing it, and
it's irrelevant to the issue this is testing, so we'll
just write native for this test.
2017-03-19 20:37:39 +01:00
John MacFarlane
87f99f3fdf HTML reader: Better sanity checks on raw HTML.
This also affects the Markdown reader.

Closes #3257.
2017-03-18 22:43:57 +01:00
John MacFarlane
435221a9f3 Added test case to 3348 to try to figure out why appveyor build fails. 2017-03-17 17:10:43 +01:00
John MacFarlane
8f90b83fee Adjust command test 3348.md to specify column width.
This is meant to address a test failure on appveyor.
2017-03-17 16:19:51 +01:00
John MacFarlane
090165d714 Added test for #256. 2017-03-16 22:31:36 +01:00
John MacFarlane
6bf3f89d69 Better handling of \part in LaTeX.
Closes #1905.

Removed stateChapters from ParserState.

Now we parse chapters as level 0 headers, and parts as level -1 headers.
After parsing, we check for the lowest header level, and if it's
less than 1 we bump everything up so that 1 is the lowest header level.
So `\part` will always produce a header; no command-line options
are needed.
2017-03-13 22:11:10 +01:00
John MacFarlane
c8b906256d Improved behavior of auto_identifiers when there are explicit ids.
Previously only autogenerated ids were added to the list
of header identifiers in state, so explicit ids weren't taken
into account when generating unique identifiers.  Duplicated
identifiers could result.

This simple fix ensures that explicitly given identifiers are
also taken into account.

Fixes #1745.

Note some limitations, however.  An autogenerated identifier
may still coincide with an explicit identifier that is given
for a header later in the document, or with an identifier on
a div, span, link, or image.  Fixing this would be much more
difficult, because we need to run `registerHeader` before
we have the complete parse tree (so we can't get a complete
list of identifiers from the document by walking the tree).

However, it might be worth issuing warnings for duplicate
header identifiers; I think we can do that.  It is not
common for headers to have the same text, and the issue
can always be worked around by adding explicit identifiers,
if the user is aware of it.
2017-03-12 21:30:04 +01:00
John MacFarlane
62becc1536 Changed test case labeled 3384.md to 3348.md.
The last commit referred to #3384, but should have
closed #3348.
2017-03-11 23:29:57 +01:00
John MacFarlane
d66b046c8a Markdown writer: fixed bugs in simple/multiline list output.
* Previously we got overlong lists with `--wrap=none`.  This is fixed.
* Previously a multiline list could become a simple list (and would
  always become one with `--wrap=none`).

Closes #3384.
2017-03-11 23:24:14 +01:00
John MacFarlane
c46febaaee Expand \newenvironment macros.
Closes #987.

Depends on still unreleased texmath 0.9.3.
2017-03-10 09:46:32 +01:00
Albert Krewinkel
c91f168fc9 Org reader: disallow tables on list marker lines
Fixes: #3499
2017-03-08 15:45:00 +01:00
John MacFarlane
bcfb77e2ab Markdown writer: Avoid spurious blanklines at end of document...
after tables and list, for example.
2017-03-08 12:47:39 +01:00
John MacFarlane
b6e7bfaf1d Markdown writer: ensure space before list at top level.
Closes #3487.
2017-03-08 12:42:01 +01:00
John MacFarlane
410991ec6e Org reader: don't allow tables inside list items.
Closes #3499.
2017-03-08 12:28:13 +01:00
John MacFarlane
2c67101c7d Added test case for #3497. 2017-03-08 12:23:01 +01:00
John MacFarlane
8c55b7b564 Markdown reader: Treat certain environments as inline
when they occur without space surrounding them.

E.g. equation, math.

This avoids incorrect vertical space around equations.

Closes #3309.
Closes #2171.
See also rstudio/bookdown#358.
2017-03-07 15:00:32 +01:00
John MacFarlane
74afd2974a Markdown writer: better handling of tables with empty columns.
E.g. an HTML table with two cells in the first row and one
in the second (but no row/colspan).

We now calculate the number of columns based on the longest
row (or the length of aligns or widths).

Closes #3337.
2017-03-06 22:51:28 +01:00
John MacFarlane
9e87114234 LaTeX reader: allow newpage, clearpage, pagebreak in inline contexts
as well as block contexts.

Closes #3494.
2017-03-06 21:49:06 +01:00
John MacFarlane
e20f55618f Markdown reader: fixed internal header links.
Closes #2397.

This patch also adds `shortcut_reference_links` to the list
of mmd extensions.
2017-03-05 16:34:47 +01:00
John MacFarlane
2fee07795c Added a markdown abbrevation test case. 2017-03-05 10:44:25 +01:00
John MacFarlane
7fc6919f90 Markdown reader: Fixed regression on left-biased union for metadata.
When multiple YAML metadata blocks are used, and two define
the same field, the value defined first takes precedence,
according to the manual.  This was changed briefly in
ba3ee62323.  This commit
reverts to the original behavior and adds a test case.
2017-03-05 09:28:44 +01:00
John MacFarlane
ba3ee62323 Parse YAML metadata in a context that sees footnotes...
defined in the body of the document.

Closes #1279.
2017-03-05 01:36:40 +01:00
John MacFarlane
0517cf0bc0 Fixed some loose ends in #1592.
Added test cases.

Fixed HTML reader to parse a span with class "smallcaps" as
SmallCaps.

Fixed Markdown writer to render SmallCaps as a native span
when native spans are enabled.
2017-03-04 23:01:29 +01:00
John MacFarlane
ce9d49ef04 OpenDocument writer: fixed dropped elements in some ordered lists.
Closes #2434.
2017-03-03 22:48:37 +01:00
John MacFarlane
fb47d1d909 RST reader: support RST-style citations.
The citations appear at the end of the document as a definition
list in a special div with id `citations`.

Citations link to the definitions.

Added stateCitations to ParserState.

Closes #853.
2017-03-03 22:23:01 +01:00