Commit graph

3421 commits

Author SHA1 Message Date
John MacFarlane
2357e61748 LaTeX reader: fixed longtable support. 2015-10-15 23:15:40 -07:00
John MacFarlane
504bf3f8e7 Support all frame attributes in Beamer. 2015-10-15 15:11:07 -07:00
John MacFarlane
047cb32dfc Use unicode super/subscripts for digits in plain output. 2015-10-15 14:35:01 -07:00
John MacFarlane
6dc3b6585d More changes to avoid compiler warnings on ghc 7.10.
* CPP around deprecated `parseTime`.
* Text.Pandoc.Compat.Locale -> Text.Pandoc.Compat.Time,
  now exports Data.Time.
2015-10-14 10:06:18 -07:00
John MacFarlane
82b3e0ab97 Use custom Prelude to avoid compiler warnings.
- The (non-exported) prelude is in prelude/Prelude.hs.
- It exports Monoid and Applicative, like base 4.8 prelude,
  but works with older base versions.
- It exports (<>) for mappend.
- It hides 'catch' on older base versions.

This allows us to remove many imports of Data.Monoid
and Control.Applicative, and remove Text.Pandoc.Compat.Monoid.

It should allow us to use -Wall again for ghc 7.10.
2015-10-14 09:09:10 -07:00
John MacFarlane
198862ee40 LaTeX writer: add \protect to \hyperdef in inline context.
This way we don't get an error when this is used as a moveable
argument.

Closes #2136.
2015-10-13 21:48:14 -07:00
John MacFarlane
25e0e0bd2a epub with --webtex: include image file rather than data: URI.
Closes #2363.
2015-10-13 21:19:43 -07:00
John MacFarlane
24f68654e9 RST writer: do header normalization only in "standalone" mode.
If we're producing a fragment, just skip normalization.
After all, the fragment might be somewhere in the middle
of the document.  It's more important for fragments to
have consistency in rendering (so they can be pieced
together) than to normalize.

This closes #2394.  It's simpler and more robust than
my earlier fix.
2015-10-12 23:00:27 -07:00
John MacFarlane
fb51077712 Revert "RST writer: tweaks to header normalization."
This reverts commit 476b383c57.
2015-10-12 22:44:37 -07:00
John MacFarlane
476b383c57 RST writer: tweaks to header normalization.
These changes are intended to make the writer more
useful to people who are processing small fragments,
which may for example look like this:

    ### third level header from previous section

    ## second level header

Previously such fragments got turned into two
headers of the same level.  The new algorithm
avoids doing any normalization until we hit the
minimal-level header in the fragment (here, the
second level header).

Closes #2394.
2015-10-12 22:04:40 -07:00
John MacFarlane
0b91c73456 Removed unnecessary import. 2015-10-11 17:27:00 -07:00
John MacFarlane
1e8a25ad69 Percent-encode more special characters in URLs.
HTML, LaTeX writers adjusted.
The special characters are '<','>','|','"','{','}','[',']','^', '`'.

Closes #1640, #2377.
2015-10-11 17:12:50 -07:00
John MacFarlane
04307a1554 Define Typeable and Exception instances for PandocError.
Closes #2386.
2015-10-11 15:50:41 -07:00
John MacFarlane
0e78eba791 HTML reader/writer: better handling of "section" elements.
Previously `<section>` tags were just parsed as raw HTML
blocks.  With this change, section elements are parsed as
Div elements with the class "section".  The HTML writer will
use `<section>` tags to render these Divs in HTML5; otherwise
they will be rendered as `<div class="section">`.

Closes #2438.
2015-10-11 15:25:49 -07:00
John MacFarlane
60dcaa37d5 Native writer: format Div properly, with blocks separated. 2015-10-11 15:14:35 -07:00
John MacFarlane
72b038d201 Merge pull request #2412 from frerich/reader/docbook/xref_support
Added support for <xref> tag in DocBook reader
2015-10-10 14:18:28 -07:00
John MacFarlane
3e4713c2de Merge pull request #2441 from mb21/polyglossia-lang
Change variable to polyglossia-lang.name and .options
2015-10-10 13:52:36 -07:00
John MacFarlane
5e57beac8d Re-export pandocVersions from Text.Pandoc.
The actual definition has been moved to Text.Pandoc.Shared,
but to avoid breaking changes we reexport it here.
2015-10-10 13:42:02 -07:00
John MacFarlane
4aabcf3d4e Merge pull request #2426 from alexvong1995/better-man-writer
Better man writer (revised)
2015-10-10 13:11:21 -07:00
John MacFarlane
114103d67f LaTeX reader: don't eat excess whitespace after macros.
Really close #2446.
2015-10-09 14:39:42 -07:00
John MacFarlane
1af8bc6f4d LaTeX reader: don't eat whitespace after macro with only opt arg.
Closes #2446.
2015-10-09 10:32:31 -07:00
mb21
80b851a4cf Change variable to polyglossia-lang.name and .options
closes #2437
2015-10-07 22:53:09 +02:00
Ophir Lifshitz
0b899ce7ef Docx Reader: Parse soft, no-break hyphen elements 2015-10-04 06:11:07 -04:00
John MacFarlane
421845202d FIxed typo: Ext_superscript, Ext_subscript. 2015-10-03 16:03:40 -07:00
John MacFarlane
68c02e1d01 For markdown_mmd, add: implicit_figures, superscripts, subscripts.
See #2401.
2015-10-03 15:32:01 -07:00
Alex Vong
319832cc19 Set the template variable $pandoc-version$ to pandocVersion by default.
* src/Text/Pandoc/Writers/Man.hs: Set $pandoc-version$ to be pandocVersion.
2015-10-01 02:24:34 +08:00
Alex Vong
d7a19c22be Move the variable pandocVersion from src/Text/Pandoc.hs to
`src/Text/Pandoc/Shared.hs`, so that all Writers can access this variable
without importing `src/Text/Pandoc.hs`, preventing circular import.

* pandoc.hs: Import pandocVersion from `Text.Pandoc.Shared`.
* src/Text/Pandoc.hs: Remove the definition of pandocVersion
 and relevant import.
* src/Text/Pandoc/Shared.hs: Add the definition of pandocVersion
 and relevant import.
2015-10-01 02:24:34 +08:00
Alex Vong
f5e33e0dce Set the template variable $hyphenate$ to true by default
* src/Text/Pandoc/Writers/Man.hs: Set $hyphenate$ to be true.
2015-10-01 02:24:34 +08:00
John MacFarlane
af8fb5e792 Removed unneeded imports. 2015-09-26 22:56:13 -07:00
John MacFarlane
6532950b26 MediaBag: ensure that / is always used as path separator. 2015-09-26 22:40:58 -07:00
John MacFarlane
fdfc961284 Merge pull request #2419 from mb21/bidi
Support bidirectional text output with XeLaTeX, ConTeXt and HTML
2015-09-26 17:06:56 -07:00
mb21
7b0c1e0d37 Support bidirectional text output with XeLaTeX, ConTeXt and HTML
closes #2191
2015-09-26 22:22:24 +02:00
John MacFarlane
29668552c8 Removed unneeded import. 2015-09-26 10:27:55 -07:00
John MacFarlane
da1b599c96 Correctly recognize book documentclass in metadata.
Closes #2395.
2015-09-25 23:28:38 -07:00
John MacFarlane
dcb0b02aa3 Markdown reader: handle 'id' and 'class' in parsing key/value attrs.
# Header {id="myid" class="foo bar"}

is now equivalent to

    # Header {#myid .foo .bar}

Closes #2396.
2015-09-25 23:01:34 -07:00
Frerich Raabe
eee992520c Improve text generated for <xref> by employing docbook-xsl heuristics
docbook-xsl, a set of XSLT scripts to generate HMTL out of DocBook,
tries harder to generate a nice xref text. Depending on the element
being linked to, it looks at the title or other descriptive child
elements. Let's do that, too.
2015-09-24 18:28:51 +02:00
Frerich Raabe
35f12b5095 Added proper support for DocBook 'xref' elements
'xref' is used to create cross references to other parts of the
document. It is an empty element - the cross reference text depends on
various attributes. Quoting 'DocBook: The Definitive Guide':

  1. If the endterm attribute is specified on xref, the content of the
  element pointed to by endterm will be used as the text of the
  cross-reference.

  2. Otherwise, if the object pointed to has a specified XRefLabel, the
  content of that attribute will be used as the cross-reference text.
2015-09-24 18:26:55 +02:00
Frerich Raabe
f6538144f0 Pass the parsed DocBook content along the state of readDocBook
Having access to the entire document will be needed when handling
elements which refer to other elements. This is needed for e.g. <xref>
or <link>, both of which reference other elements (by the 'id'
attribute) for the label text.

I suppose that in practice, the [Content] returned by parseXML always
only contains one 'Elem' value -- the document element. However, I'm not
totally sure about it, so let's just pass all the Content along.
2015-09-23 19:31:25 +02:00
Frerich Raabe
3564cd82ca Minor refactoring to readDocBook
I plan to use the parsed and normalized XML tree read in readDocBook in
other places - prepare that commit by factoring this code out into a
separate, shared, definition.
2015-09-23 19:25:58 +02:00
John MacFarlane
72e71a1dad LaTeX reader: support longtable.
Closes #2411.
2015-09-23 08:34:37 -07:00
John MacFarlane
f232a0a720 Merge pull request #2369 from mb21/language-variables
`lang` variable is now in BCP47 format
2015-09-22 22:21:06 -07:00
John MacFarlane
9b033672e4 Merge pull request #2406 from tarleb/org-verse-fix
Make sure verse blocks can contain empty lines
2015-09-20 13:02:47 -07:00
Albert Krewinkel
8007dd97b5 Make sure verse blocks can contain empty lines
The previous verse parsing code made the faulty assumption that empty
strings are valid (and empty) inlines.  This isn't the case, so lines
are changed to contain at least a newline.

It would generally be nicer and faster to keep the newlines while
splitting the string.  However, this would require more code, which
seems unjustified for a simple (and fairly rare) block as *verse*.

This fixes #2402.
2015-09-19 22:02:43 +02:00
Nikolay Yakimov
5788f62ef5 [RST Writer] Don't normalize heading levels below input minimum 2015-09-19 17:45:54 +03:00
John MacFarlane
4d49f76dbb Markdown writer: in TOC, add links to headers.
Closes #829.
2015-09-17 11:41:05 -07:00
John MacFarlane
bee255cbfe Use user data directory for reference docx archive.
This allows the test suite to work without installing pandoc first.
It also brings the docx writer in line with the odt writer.
2015-09-09 10:16:45 -07:00
mb21
622df7034c lang variable is now in BCP47 format
strings are converted for LaTeX and ConTeXt output, closes #1614
2015-08-20 23:17:47 +02:00
John MacFarlane
761e1edc30 Merge pull request #2364 from gbataille/bugDoc
[BUG] Haddock : * and ^ to be escaped in docs
2015-08-17 12:15:32 -07:00
Grégory Bataille
0dff30271c [BUG] Haddock : * and ^ to be escaped in docs 2015-08-17 09:03:33 +02:00
John MacFarlane
1f00a5395f RST reader: better handling of indirect roles.
Previously the parser failed on this kind of case

    .. role:: indirect(code)

    .. role:: py(indirect)
       :language: python

    :py:`hi`

Now it currectly recognizes `:py:` as a code role.

The previous test for this didn't work, because the
name of the indirect role was the same as the language
defined its parent, os it didn't really test for this
behavior.  Updated test.
2015-08-15 10:22:47 -07:00