aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-03-18Docx reader: Handle alternate contentJesse Rosenthal1-14/+37
Some word functions -- especially graphics -- give various choices for content so there can be backwards compatibility. This follows the largely undocumented feature by working through the choices until we find one that works. Note that we had to split out the processing of child elems of runs into a separate function so we can recurse properly. Any processing of an element *within* a run (other than a plain run) should go into `childElemToRun`.
2016-03-16Docx reader: Add test for enumerated headers.Jesse Rosenthal3-1/+9
We don't want them to turn into a list.
2016-03-16Docx reader: Don't make numbered heads into lists.Jesse Rosenthal1-6/+8
Word uses list numbering styles to number its headings. We only call something a numbered list if it does not also heave a heading style.
2016-03-15pandoc.hs: Also use filescope for json files.Jesse Rosenthal1-7/+9
JSON files have metadata and list structure, so they can't be simply catted, but they're useful as intermediate build files in large projects.
2016-03-15README: Add description of `--file-scope` option.Jesse Rosenthal1-0/+8
2016-03-15Introduce file-scope parsing (parse-before-combine)Jesse Rosenthal2-4/+25
Traditionally pandoc operates on multiple files by first concetenating them (around extra line breaks) and then processing the joined file. So it only parses a multi-file document at the document scope. This has the benefit that footnotes and links can be in different files, but it also introduces a couple of difficulties: - it is difficult to join files with footnotes without some sort of preprocessing, which makes it difficult to write academic documents in small pieces. - it makes it impossible to process multiple binary input files, which can't be catted. - it makes it impossible to process files from different input formats. This commit introduces alternative method. Instead of catting the files first, it parses the files first, and then combines the parsed output. This makes it impossible to have links across multiple files, and auto-identified headers won't work correctly if headers in multiple files have the same name. On the other hand, footnotes across multiple files will work correctly and will allow more freedom for input formats. Since ByteStringReaders can currently only read one binary file, and will ignore subsequent files, we also changes the behavior to automatically parse before combining if using the ByteStringReader. If we use one file, it will work as normal. If there is more than one file it will combine them after parsing (assuming that the format is the same). Note that this is intended to be an optional method, defaulting to off. Turn it on with `--file-scope`.
2016-03-12Add a general ByteStringReader with warnings.Jesse Rosenthal1-1/+9
Have docx reader use it.
2016-03-12Add readDocxWithWarningsJesse Rosenthal1-6/+15
The regular readDocx just becomes a special case.
2016-03-12Docx Reader: Add state to the parser, for warningsJesse Rosenthal1-6/+19
In order to be able to collect warnings during parsing, we add a state monad transformer to the D monad. At the moment, this only includes a list of warning strings (nothing currently triggers them, however). We use StateT instead of WriterT to correspond more closely with the warnings behavior in T.P.Parsing.
2016-03-10Fixed behavior of base tag.John MacFarlane2-18/+15
+ If the base path does not end with slash, the last component will be replaced. E.g. base = `http://example.com/foo` combines with `bar.html` to give `http://example.com/bar.html`. + If the href begins with a slash, the whole path of the base is replaced. E.g. base = `http://example.com/foo/` combines with `/bar.html` to give `http://example.com/bar.html`. Closes #2777.
2016-03-10Merge pull request #2771 from mb21/docx-alt-textJohn MacFarlane1-2/+2
Docx Writer: handle image alt text
2016-03-10 Docx Writer: handle image alt textmb211-2/+2
closes #2754
2016-03-09Markdown reader: Improved pipe table parsing.John MacFarlane3-16/+38
Fixes #2765. Added test case.
2016-03-09Markdown reader: Clean up pipe table parsing.John MacFarlane1-8/+8
2016-03-09Markdown reader: allow `+` separators in pipe table cells.John MacFarlane1-6/+4
We already allowed them in the header, but not in the body rows, for some reason. This gives compatibility with org-mode tables.
2016-03-09Markdown reader: don't cross line boundary parsing pipe table row.John MacFarlane1-1/+7
Previously an emph element could be parsed across the newline at the end of the pipe table row. I thought this would help with #2765, but it doesn't.
2016-03-08DokuWiki writer: use $$ for display math.John MacFarlane2-2/+5
2016-03-08Docx reader: update feature checklist.Jesse Rosenthal1-5/+3
The feature checklist in the source code was out of date. Update.
2016-03-07Stack-based appveyor setup.John MacFarlane1-33/+14
2016-03-06Merge pull request #2760 from ickc/masterJohn MacFarlane2-2/+2
Very Minor update on the documentation
2016-03-06Update READMEickc1-1/+1
2016-03-06Update pandoc.1ickc1-1/+1
2016-02-28LaTeX reader: handle interior `$` characters in math.John MacFarlane1-4/+12
e.g. `$$\hbox{$i$}$$`. Partially addresses #2743.
2016-02-26Merge pull request #2739 from mb21/patch-2John MacFarlane1-0/+4
Add relocatable stack build
2016-02-26Add relocatable stack buildMauro Bieg1-0/+4
2016-02-26Docx Reader: Get rid of Modifiable typeclass.Jesse Rosenthal4-199/+170
The docx reader used to use a Modifiable typeclass to combine both Blocks and Inlines. But all the work was in the inlines. So most of the generality was wasted, at the expense of making the code harder to understand. This gets rid of the generality, and adds functions for Blocks and Inlines. It should be a bit easier to work with going forward.
2016-02-24Allow zip-archive 0.3.John MacFarlane1-2/+2
2016-02-23Make protocol-relative URIs work again.John MacFarlane1-2/+4
Closes #2737.
2016-02-22Raise tagsoup lower bound to 0.13.7.John MacFarlane1-1/+1
This fixes entity-related problems. Closes #2734.
2016-02-21Markdown reader: use htmlInBalanced for rawVerbatimBlock.John MacFarlane1-7/+5
This should give better performance. See #2730.
2016-02-21Update README to reflect 4112b32.Jesse Rosenthal1-3/+4
We don't infer `--chapters` if `article` document option is set. For example: `\documentclass[article]{memoir}`.
2016-02-20Fixed some linter warnings.John MacFarlane1-3/+3
2016-02-20Merge pull request #2646 from tarleb/org-figure-with-no-nameJohn MacFarlane2-7/+7
Prefix even empty figure names with "fig:"
2016-02-20Merge pull request #2668 from monofon/fix/yaml-metadata-block-bottom-lineJohn MacFarlane2-2/+2
Markdown writer: Use hyphens for yaml metadata block bottom line
2016-02-20Merge pull request #2691 from tarleb/org-image-file-linksJohn MacFarlane2-29/+33
Org reader: Refactor link-target processing
2016-02-20HTML reader: rewrote htmlInBalanced.John MacFarlane1-10/+39
This version avoids an exponential performance problem with `<script>` tags, and it should be faster in general. Closes #2730.
2016-02-20Merge pull request #2732 from pra85/patch-2John MacFarlane1-3/+3
Fix typos in Readme
2016-02-21Fix typos in ReadmePrayag Verma1-3/+3
Remove extra `be` `overriden` → `overridden`
2016-02-18LaTeX writer: clean up options parser.Jesse Rosenthal1-3/+4
Make sure that we require the closing bracket.
2016-02-18LaTeX writer: treat memoir template with `article` opt as articleJesse Rosenthal1-6/+21
We currently treat all memoir templates as books. This means that pandoc will infer the `--chapters` argument, even if the `article` iption is set for memoir. This commit makes pandoc treats the document as an article if there is an article option (i.e., `\documentclass[12pt,article]{memoir}`). Note that this refactors out the parsec parsers for document class and options, to make it a little clearer what's going on.
2016-02-18Merge pull request #2725 from adunning/patch-1John MacFarlane1-1/+0
Remove stray line from stack.full.yaml
2016-02-18Remove stray line from stack.full.yamlAndrew Dunning1-1/+0
The line causes an error with stack 1.0.2: ``` Could not parse '/pandoc-build/pandoc/stack.full.yaml': AesonException "Error in $.extra-deps: failed to parse field 'extra-deps': failed to parse field extra-deps: expected [a], encountered Null" See http://docs.haskellstack.org/en/stable/yaml_configuration.html. ```
2016-02-17Don't build with lts-2 or lts-3.John MacFarlane1-9/+0
2016-02-17Travis: don't build with lts-3.John MacFarlane1-4/+0
It doesn't have recent enough dependencies.
2016-02-17Travis fixes.John MacFarlane1-2/+4
cabal sdist has problems on cabal 1.16, because of our Text.Pandoc.Data module. So we don't test it.
2016-02-17Fixed stack.yaml.John MacFarlane1-2/+2
2016-02-17Try new travis stack+cabal script.John MacFarlane1-75/+124
2016-02-16HTML reader: properly handle an empty cell in a simple table.John MacFarlane1-0/+1
Closes #2718.
2016-02-10stack.yaml: Added commented-out commands to compile against aeson 0.11.John MacFarlane1-0/+4
This has been tested.
2016-02-09Removed `tex_math_single_backslash` from `markdown_github` options.John MacFarlane2-3/+1
Closes #2707.