aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/Muse.hs
AgeCommit message (Collapse)AuthorFilesLines
2021-05-09Change reader types, allowing better tracking of source positions.John MacFarlane1-8/+9
Previously, when multiple file arguments were provided, pandoc simply concatenated them and passed the contents to the readers, which took a Text argument. As a result, the readers had no way of knowing which file was the source of any particular bit of text. This meant that we couldn't report accurate source positions on errors or include accurate source positions as attributes in the AST. More seriously, it meant that we couldn't resolve resource paths relative to the files containing them (see e.g. #5501, #6632, #6384, #3752). Add Text.Pandoc.Sources (exported module), with a `Sources` type and a `ToSources` class. A `Sources` wraps a list of `(SourcePos, Text)` pairs. [API change] A parsec `Stream` instance is provided for `Sources`. The module also exports versions of parsec's `satisfy` and other Char parsers that track source positions accurately from a `Sources` stream (or any instance of the new `UpdateSourcePos` class). Text.Pandoc.Parsing now exports these modified Char parsers instead of the ones parsec provides. Modified parsers to use a `Sources` as stream [API change]. The readers that previously took a `Text` argument have been modified to take any instance of `ToSources`. So, they may still be used with a `Text`, but they can also be used with a `Sources` object. In Text.Pandoc.Error, modified the constructor PandocParsecError to take a `Sources` rather than a `Text` as first argument, so parse error locations can be accurately reported. T.P.Error: showPos, do not print "-" as source name.
2021-03-20Text.Pandoc.Parsing: remove F type synonym.John MacFarlane1-1/+1
Muse and Org were defining their own F anyway, with their own state. We therefore move this definition to the Markdown reader.
2020-09-13Fix hlint suggestions, update hlint.yaml (#6680)Christian Despres1-1/+1
* Fix hlint suggestions, update hlint.yaml Most suggestions were redundant brackets. Some required LambdaCase. The .hlint.yaml file had a small typo, and didn't ignore camelCase suggestions in certain modules.
2020-04-28Support new Underline element in readers and writers (#6277)Vaibhav Sagar1-3/+3
Deprecate `underlineSpan` in Shared in favor of `Text.Pandoc.Builder.underline`.
2020-04-15Use the new builders, modify readers to preserve empty headersdespresc1-2/+13
The Builder.simpleTable now only adds a row to the TableHead when the given header row is not null. This uncovered an inconsistency in the readers: some would unconditionally emit a header filled with empty cells, even if the header was not present. Now every reader has the conditional behaviour. Only the XWiki writer depended on the header row being always present; it now pads its head as necessary.
2020-04-15Adapt to the newest Table type, fix some previous adaptation issuesdespresc1-2/+2
- Writers.Native is now adapted to the new Table type. - Inline captions should now be conditionally wrapped in a Plain, not a Para block. - The toLegacyTable function now lives in Writers.Shared.
2020-04-15Implement the new Table typedespresc1-2/+2
2020-03-22Finer grained imports of Text.Pandoc.Class submodules (#6203)Albert Krewinkel1-1/+1
This should speed-up recompilation after changes in `Text.Pandoc.Class`, as the number of modules affected by a change will be smaller in general. It also offers faster insights into the parts of `T.P.Class` used within a module.
2020-03-15Use implicit Prelude (#6187)Albert Krewinkel1-2/+0
* Use implicit Prelude The previous behavior was introduced as a fix for #4464. It seems that this change alone did not fix the issue, and `stack ghci` and `cabal repl` only work with GHC 8.4.1 or newer, as no custom Prelude is loaded for these versions. Given this, it seems cleaner to revert to the implicit Prelude. * PandocMonad: remove outdated check for base version Only base versions 4.9 and later are supported, the check for `MIN_VERSION_base(4,8,0)` is therefore unnecessary. * Always use custom prelude Previously, the custom prelude was used only with older GHC versions, as a workaround for problems with ghci. The ghci problems are resolved by replacing package `base` with `base-noprelude`, allowing for consistent use of the custom prelude across all GHC versions.
2020-03-13Update copyright year (#6186)Albert Krewinkel1-1/+1
* Update copyright year * Copyright: add notes for Lua and Jira modules
2019-11-12Switch to new pandoc-types and use Text instead of String [API change].despresc1-69/+75
PR #5884. + Use pandoc-types 1.20 and texmath 0.12. + Text is now used instead of String, with a few exceptions. + In the MediaBag module, some of the types using Strings were switched to use FilePath instead (not Text). + In the Parsing module, new parsers `manyChar`, `many1Char`, `manyTillChar`, `many1TillChar`, `many1Till`, `manyUntil`, `mantyUntilChar` have been added: these are like their unsuffixed counterparts but pack some or all of their output. + `glob` in Text.Pandoc.Class still takes String since it seems to be intended as an interface to Glob, which uses strings. It seems to be used only once in the package, in the EPUB writer, so that is not hard to change.
2019-10-15Muse reader: do not allow closing asterisks to be followed by "*"Alexander Krotov1-2/+7
2019-10-15Muse reader: do not split series of asterisks into symbols and emphasisAlexander Krotov1-0/+7
Fixes #5821
2019-10-15Muse reader: do not terminate emphasis on "*" not followed by spaceAlexander Krotov1-2/+1
2019-10-04Fix all hlint warnings in Muse readerAlexander Krotov1-2/+2
2019-09-28Use Prelude.fail to avoid ambiguity with fail from GHC.Base.John MacFarlane1-2/+2
2019-08-26Use parseFromString' in Muse reader.John MacFarlane1-1/+1
Now that it is polymorphic, this is possible, and it's a better choice because it resets last string pos.
2019-08-26Fix inline parsing in grid table cells.John MacFarlane1-1/+1
* T.P.Parsing: Change type of `setLastStrPos` so it takes a `Maybe SourcePos` rather than a `SourcePos`. [API change] * T.P.Parsing: Make `parseFromString'` and `gridTableWith` and `gridTableWith'` polymorphic in the parser state, constraining it with `HasLastStrPosition`. [API change] Closes #5708.
2019-07-14Muse: add RTL supportAlexander Krotov1-0/+12
Closes #5551
2019-05-25Muse reader: allow images inside link descriptionsAlexander Krotov1-5/+4
2019-03-01Remove license boilerplate.John MacFarlane1-18/+0
The haddock module header contains essentially the same information, so the boilerplate is redundant and just one more thing to get out of sync.
2019-02-18hlint MuseAlexander Krotov1-1/+1
2019-02-18Muse reader: add secondary note supportAlexander Krotov1-5/+11
2019-02-04Add missing copyright notices and remove license boilerplate (#5112)Albert Krewinkel1-2/+2
Quite a few modules were missing copyright notices. This commit adds copyright notices everywhere via haddock module headers. The old license boilerplate comment is redundant with this and has been removed. Update copyright years to 2019. Closes #4592.
2018-12-31Remove unused HasHeaderMap (#5175)Alexander1-6/+0
It is updated by some readers, but never actually used.
2018-11-14Muse reader: trim whitespace before parsing grid table cellsAlexander Krotov1-2/+2
2018-11-14Muse reader: add grid tables supportAlexander Krotov1-2/+31
2018-10-28Muse reader: try to parse lists before trying to parse tableAlexander Krotov1-3/+3
This ensures that tables inside lists are parsed correctly.
2018-10-27Muse reader: forbid whitespace after opening and before closing markup elementsAlexander Krotov1-4/+16
See https://github.com/melmothx/text-amuse/issues/44 for discussion on these rules
2018-10-26Muse reader: parse page breaksAlexander Krotov1-1/+9
2018-10-24Muse reader: simplify museToPandocTableAlexander Krotov1-6/+4
to get rid of partial functions (head, tail, maximum)
2018-10-22Muse reader internals: remove unnecessary "skipSpaces"Alexander Krotov1-1/+1
2018-10-22Muse reader: allow footnotes to start with empty lineAlexander Krotov1-2/+3
A space character was required after footnote marker, now newline is allowed.
2018-10-21Muse reader: make sure that the whole text is parsedAlexander Krotov1-0/+1
2018-10-21Muse reader: allow empty headersAlexander Krotov1-7/+1
Previously empty headers caused parser to terminate without parsing the rest of the document.
2018-10-17Muse reader: allow examples to be indented with tabsAlexander Krotov1-8/+5
2018-10-17Muse reader: remove indentation from examples indicated by {{{ and }}}Alexander Krotov1-4/+7
2018-10-16Muse reader: simplify "atStart"Alexander Krotov1-5/+6
2018-10-16Muse reader: code cleanupAlexander Krotov1-33/+29
2018-10-16Muse reader: simplify "commonPrefix" implementationAlexander Krotov1-5/+1
2018-10-16Muse reader: simplify emphasis parsingAlexander Krotov1-17/+7
2018-10-11Muse reader internals: don't use "choice" with static listAlexander Krotov1-18/+16
2018-10-11Muse reader: use indentWith to parse indentationAlexander Krotov1-2/+2
2018-10-11Muse reader: move museInPara from state to environmentAlexander Krotov1-34/+25
2018-10-10Muse reader internals: merge link and explicit link parsers into one functionAlexander Krotov1-13/+5
2018-10-10Muse reader: rewrite code parser in applicative styleAlexander Krotov1-8/+5
2018-10-10Muse reader: fix parsing of empty cellsAlexander Krotov1-1/+1
2018-10-10Muse reader: simplify table parsingAlexander Krotov1-10/+6
2018-10-09Get rid of mapLeft in Muse readerAlexander Krotov1-3/+3
2018-10-09Muse reader: rewrite parseHtmlContent, verseTag and lineBlock in applicative ↵Alexander Krotov1-18/+12
style