summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/Muse.hs
AgeCommit message (Collapse)Author
2022-10-17T.P.Error: Remove PandocParsecError constructor from PandocError. (#8385)John MacFarlane
Henceforth we just use `PandocParseError`. T.P.Parsing now exports `fromParsecError`, which can be used to turn a parsec ParseError into a regular PandocParseError (the appearance to the user should be unchanged in every case). [API change] Closes #8382.
2022-10-16T.P.Parsing: Remove gratuitious renaming of Parsec types.John MacFarlane
We were exporting Parser, ParserT as synonyms of Parsec, ParsecT. There is no good reason for this and it can cause confusion. Also, when possible, we replace imports of Text.Parsec with T.P.Parsing. The idea is to make it easier, at some point, to switch to megaparsec or another parsing engine if we want to. T.P.Parsing new exports: Stream(..), updatePosString, SourceName, Parsec, ParsecT [API change]. Removed exports: Parser, ParserT [API change].
2021-05-09Change reader types, allowing better tracking of source positions.John MacFarlane
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 MacFarlane
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 Despres
* 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 Sagar
Deprecate `underlineSpan` in Shared in favor of `Text.Pandoc.Builder.underline`.
2020-04-15Use the new builders, modify readers to preserve empty headersdespresc
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 issuesdespresc
- 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 typedespresc
2020-03-22Finer grained imports of Text.Pandoc.Class submodules (#6203)Albert Krewinkel
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 Krewinkel
* 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 Krewinkel
* 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].despresc
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 Krotov
2019-10-15Muse reader: do not split series of asterisks into symbols and emphasisAlexander Krotov
Fixes #5821
2019-10-15Muse reader: do not terminate emphasis on "*" not followed by spaceAlexander Krotov
2019-10-04Fix all hlint warnings in Muse readerAlexander Krotov
2019-09-28Use Prelude.fail to avoid ambiguity with fail from GHC.Base.John MacFarlane
2019-08-26Use parseFromString' in Muse reader.John MacFarlane
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 MacFarlane
* 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 Krotov
Closes #5551
2019-05-25Muse reader: allow images inside link descriptionsAlexander Krotov
2019-03-01Remove license boilerplate.John MacFarlane
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 Krotov
2019-02-18Muse reader: add secondary note supportAlexander Krotov
2019-02-04Add missing copyright notices and remove license boilerplate (#5112)Albert Krewinkel
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)Alexander
It is updated by some readers, but never actually used.
2018-11-14Muse reader: trim whitespace before parsing grid table cellsAlexander Krotov
2018-11-14Muse reader: add grid tables supportAlexander Krotov
2018-10-28Muse reader: try to parse lists before trying to parse tableAlexander Krotov
This ensures that tables inside lists are parsed correctly.
2018-10-27Muse reader: forbid whitespace after opening and before closing markup elementsAlexander Krotov
See https://github.com/melmothx/text-amuse/issues/44 for discussion on these rules
2018-10-26Muse reader: parse page breaksAlexander Krotov
2018-10-24Muse reader: simplify museToPandocTableAlexander Krotov
to get rid of partial functions (head, tail, maximum)
2018-10-22Muse reader internals: remove unnecessary "skipSpaces"Alexander Krotov
2018-10-22Muse reader: allow footnotes to start with empty lineAlexander Krotov
A space character was required after footnote marker, now newline is allowed.
2018-10-21Muse reader: make sure that the whole text is parsedAlexander Krotov
2018-10-21Muse reader: allow empty headersAlexander Krotov
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 Krotov
2018-10-17Muse reader: remove indentation from examples indicated by {{{ and }}}Alexander Krotov
2018-10-16Muse reader: simplify "atStart"Alexander Krotov
2018-10-16Muse reader: code cleanupAlexander Krotov
2018-10-16Muse reader: simplify "commonPrefix" implementationAlexander Krotov
2018-10-16Muse reader: simplify emphasis parsingAlexander Krotov
2018-10-11Muse reader internals: don't use "choice" with static listAlexander Krotov
2018-10-11Muse reader: use indentWith to parse indentationAlexander Krotov
2018-10-11Muse reader: move museInPara from state to environmentAlexander Krotov
2018-10-10Muse reader internals: merge link and explicit link parsers into one functionAlexander Krotov
2018-10-10Muse reader: rewrite code parser in applicative styleAlexander Krotov
2018-10-10Muse reader: fix parsing of empty cellsAlexander Krotov
2018-10-10Muse reader: simplify table parsingAlexander Krotov