summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Shared.hs
Commit message (Collapse)AuthorAge
* Move CR filtering from tabFilter to the readers.John MacFarlane2017-06-20
| | | | | | | | | | The readers previously assumed that CRs had been filtered from the input. Now we strip the CRs in the readers themselves, before parsing. (The point of this is just to simplify the parsers.) Shared now exports a new function `crFilter`. [API change] And `tabFilter` no longer filters CRs.
* Use Control.Monad.State.Strict throughout.John MacFarlane2017-06-17
| | | | | This gives 20-30% speedup and reduction of memory usage in most of the writers.
* Switched Writer types to use Text.John MacFarlane2017-06-11
| | | | | | | | | | | * XML.toEntities: changed type to Text -> Text. * Shared.tabFilter -- fixed so it strips out CRs as before. * Modified writers to take Text. * Updated tests, benchmarks, trypandoc. [API change] Closes #3731.
* Rewrote convertTabs to use Text not String.John MacFarlane2017-06-10
|
* Added eastAsianLineBreakFilter to Shared.John MacFarlane2017-05-30
| | | | This used to live in the Markdown reader.
* Shared.isURI: allow uppercase versions of known schemes.John MacFarlane2017-05-23
|
* Shared: Provide custom isURI that rejects unknown schemes [isURI]Albert Krewinkel2017-05-23
| | | | | | | | | | | | | | | | | | | We also export the set of known `schemes`. The new function replaces the function of the same name from `Network.URI`, as the latter did not check whether a scheme is well-known. E.g. MediaWiki wikis frequently feature pages with names like `User:John`. These links were interpreted as URIs, thus turning internal links into global links. This is prevented by also checking whether the scheme of a URI is frequently used (i.e. is IANA registered or an otherwise well-known scheme). Fixes: #2713 Update set of well-known URIs from IANA list All official IANA schemes (as of 2017-05-22) are included in the set of known schemes. The four non-official schemes doi, isbn, javascript, and pmid are kept.
* Update dates in copyright noticesAlbert Krewinkel2017-05-13
| | | | | This follows the suggestions given by the FSF for GPL licensed software. <https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html>
* Added PandocHttpException, trap exceptions in fetching from URLs.John MacFarlane2017-05-07
| | | | Closes #3646.
* Remove https flag.John MacFarlane2017-05-07
| | | | | | | | | Supporting two completely different libraries for fetching from URLs makes it difficult to trap errors, because of different error types expected from the libraries. There's no clear reason not to build with these https-capable libraires.
* Error: Added PandocCouldNotFindDataFileError.John MacFarlane2017-04-15
| | | | | Use this instead of PandocAppError when appropriate. Removed exit code from PandocAppError, use 1 for all.
* Text.Pandoc.App: Throw errors rather than exiting.John MacFarlane2017-04-02
| | | | | | | | | | | | | | | | | These are caught (and lead to exit) in pandoc.hs, but other uses of Text.Pandoc.App may want to recover in another way. Added PandocAppError to PandocError (API change). This is a stopgap: later we should have a separate constructor for each type of error. Also fixed uses of 'exit' in Shared.readDataFile, and removed 'err' from Shared (API change). Finally, removed the dependency on extensible-exceptions. See #3548.
* Revert "Shared: export extractIds."John MacFarlane2017-03-12
| | | | This reverts commit 0ef1e51211cd35b1ddb54a5fe8bee4247f1e1801.
* Shared: export extractIds.John MacFarlane2017-03-12
| | | | This will be used to help with #1745.
* Removed normalizeSpaces from Text.Pandoc.Shared.John MacFarlane2017-03-10
| | | | | | | Rewrote functions in RST reader and writer to avoid the need for it. Closes #1530.
* Shared.normalizeSpaces: strip off leading/trailing line breaks...John MacFarlane2017-03-10
| | | | ...not just spaces.
* Shared: remove 'warn'.John MacFarlane2017-02-24
| | | | | PDF writer: Use 'report' instead of 'warn', make it sensitive to verbosity settings.
* Shared.openURL: Changed type from an Either.John MacFarlane2017-02-23
| | | | Now it will just raise an exception to be trapped later.
* Simplify toRomanNumeral using guards (#3445)Alexander Krotov2017-02-14
|
* Allow user to specify User-Agent (#3421)Thenaesh Elango2017-02-05
| | | | | | | | | 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>
* Shared: rename compactify', compactify'DL -> compactify, compactifyDL.John MacFarlane2017-01-27
|
* Removed Shared.compactify.John MacFarlane2017-01-27
| | | | Changed signatures on Parsing.tableWith and Parsing.gridTableWith.
* Removed writerIgnoreNotes.John MacFarlane2017-01-25
| | | | | | | | | Instead, just temporarily remove notes when generating TOC lists in HTML and Markdown (as we already did in LaTeX). Also export deNote from Text.Pandoc.Shared. API change in Shared and Options.WriterOptions.
* Factored out deNote in Shared.John MacFarlane2017-01-25
|
* Text.Pandoc.Shared: Removed fetchItem, fetchItem'.John MacFarlane2017-01-25
| | | | | Made changes where these are used, so that the version of fetchItem from PandocMonad can be used instead.
* Removed hush from Text.Pandoc.Shared.John MacFarlane2017-01-25
| | | | Not used anywhere.
* Removed `--normalize` option and normalization functions from Shared.John MacFarlane2017-01-25
| | | | | | | | | | | | | * Removed normalize, normalizeInlines, normalizeBlocks from Text.Pandoc.Shared. These shouldn't now be necessary, since normalization is handled automatically by the Builder monoid instance. * Remove `--normalize` command-line option. * Don't use normalize in tests. * A few revisions to readers so they work well without normalize.
* Shared: put err into MonadIO.John MacFarlane2017-01-25
|
* Shared: changed err and warn output.John MacFarlane2017-01-25
| | | | | Don't print program name in either case. Print [warning] for warnings.
* Shared.fetchItem: Better handling of protocol-relative URL.John MacFarlane2016-11-27
| | | | | | | | If URL starts with `//` and there is no "base URL" (as there would be if a URL were used on the command line), then default to http:. Closes #2635.
* Put 'warn' in MonadIO. Add warnings for math conversions in docx.John MacFarlane2016-11-22
|
* Merge pull request #3165 from hubertp-lshift/feature/odt-imageJohn MacFarlane2016-10-18
|\ | | | | [odt] images parser
| * Use bind function instead of pattern matchingHubert Plociniczak2016-10-17
| |
| * Basic support for images in ODT documentsHubert Plociniczak2016-10-12
| | | | | | | | | | Highly influenced by the docx support, refactored some code to avoid DRY.
* | Allow http-client 0.4.30, which is the version in stackage lts.John MacFarlane2016-10-13
| | | | | | | | | | Previously we required 0.5. Remove CPP conditionals for earlier versions.
* | Revert "Remove http-client CPP conditionals."John MacFarlane2016-10-13
| | | | | | | | | | | | | | | | This reverts commit 3f82471355286d33f2d73329c29a51c47bf76ad7. We might want to revert the requirement of http-client 0.5, as this is not yet in Stackage and that is starting to cause problems. I can't recall why it is there.
* | Shared: add function combining lines using LineBreakAlbert Krewinkel2016-10-13
|/ | | | | | | The `linesToBlock` function takes a list of lines and combines them by appending a hard `LineBreak` to each line and concatenating the result, putting the result it into a `Para`. This is most useful when dealing when converting `LineBlock` elements.
* Remove http-client CPP conditionals.Jesse Rosenthal2016-09-03
| | | | | Our lower bound on http-client is 0.5, and both of these min_version tests are less than 0.5, so they will always pass.
* Remove Compat.MonoidJesse Rosenthal2016-09-02
| | | | | This was only necessary for GHC versions with base below 4.5 (i.e., ghc < 7.4).
* Rename README to MANUAL.txtAlbert Krewinkel2016-07-20
|
* Shared: improve year sanity check in normalizeDateJesse Rosenthal2016-07-14
| | | | | | | | Previously we parsed a list of dates, took the first one, and then tested its year range. That meant that if the first one failed, we returned nothing, regardless of what the others did. Now we test for sanity before running `msum` over the list of Maybe values. Anything failing the test will be Nothing, so will not be a candidate.
* Shared: normalizeDate should reject illegal years.Jesse Rosenthal2016-07-14
| | | | | | | We only allow years between 1601 and 9999, inclusive. The ISO 8601 actually says that years are supposed to start with 1583, but MS Word only allows 1601-9999. This should stop corrupted word files if the date is out of that range, or is parsed incorrectly.
* Shared: Add further formats for `normalizeDate`Jesse Rosenthal2016-07-14
| | | | | | We want to avoid illegal dates -- in particular years with greater than four digits. We attempt to parse series of digits first as `%Y%m%d`, then `%Y%m`, and finally `%Y`.
* Fix warning for parseURl import.John MacFarlane2016-07-03
|
* CPP workaround for deprecation of parseUrl in http-client.John MacFarlane2016-07-03
|
* Shared: Add BlockQuote to blocksToInlinesJesse Rosenthal2016-06-23
|
* Shared: introduce blocksToInlines functionJesse Rosenthal2016-06-23
| | | | | | | | | | This is a lossy function for converting `[Block] -> [Inline]`. Its main use, at the moment, is for docx comments, which can contain arbitrary blocks (except for footnotes), but which will be converted to spans. This is, at the moment, pretty useless for everything but the basic `Para` and `Plain` comments. It can be improved, but the docx reader should probably emit a warning if the comment contains more than this.
* Updated copyright dates to include 2016.John MacFarlane2016-03-22
|
* Make protocol-relative URIs work again.John MacFarlane2016-02-23
| | | | Closes #2737.
* Changed type of Shared.uniqueIdent argument from [String] to Set String.John MacFarlane2016-01-22
| | | | | | | This avoids performance problems in documents with many identically named headers. Closes #2671.