summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/Haddock.hs
AgeCommit message (Collapse)Author
2022-08-18Handle haddock 1.11.0 API changes (not noted in their changelog).John MacFarlane
2021-05-25Use haddock-library-1.10.0Albert Krewinkel
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-19Protect partial uses of maximum with NonEmpty.John MacFarlane
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-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.
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-03Minor ghc 8.8 fixups.John MacFarlane
2018-05-30Revert "ALlow compilation with haddock-library 1.4 and above."John MacFarlane
This reverts commit 50c71b5bc5db797ac46550ed54e91196269716e3. This was a bad idea, since tests depend on recent haddock-library. We'd be able to build but fail tests.
2018-05-30ALlow compilation with haddock-library 1.4 and above.John MacFarlane
haddock-library-1.6 requires Cabal >= 2.0. This change allows systems with older Cabal versions to build pandoc.
2018-05-20Use haddock-library 1.6.0.John MacFarlane
2018-03-18Use NoImplicitPrelude and explicitly import Prelude.John MacFarlane
This seems to be necessary if we are to use our custom Prelude with ghci. Closes #4464.
2018-03-17More CSS around DocTable in Haddock reader.John MacFarlane
2018-03-16Allow earlier versions of haddock-library, use CPP.John MacFarlane
2018-03-16Better table handling for Haddock.John MacFarlane
In the reader, we use the new Table type in Haddock. Note that tables with col/rowspans will not translate well into Pandoc. In the writer, we now render tables always as grid tables, since Haddock supports these.
2018-03-16Monoid/Semiground cleanup relying on custom Prelude.John MacFarlane
2017-10-27hlint suggestions.John MacFarlane
2017-10-27Automatic reformating by stylish-haskell.John MacFarlane
2017-06-20Move CR filtering from tabFilter to the readers.John MacFarlane
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.
2017-06-10Changed all readers to take Text instead of String.John MacFarlane
Readers: Renamed StringReader -> TextReader. Updated tests. API change.
2017-03-04Stylish-haskell automatic formatting changes.John MacFarlane
2017-01-25Removed readerVerbosity and writerVerbosity.John MacFarlane
API change. Also added a verbosity parameter to makePDF.
2017-01-25Changes to verbosity in writer and reader options.John MacFarlane
API changes: Text.Pandoc.Options: * Added Verbosity. * Added writerVerbosity. * Added readerVerbosity. * Removed writerVerbose. * Removed readerTrace. pandoc CLI: The `--trace` option sets verbosity to DEBUG; the `--quiet` option sets it to ERROR, and the `--verbose` option sets it to INFO. The default is WARNING.
2017-01-25Unify Errors.Jesse Rosenthal
2017-01-25Working on readers.Jesse Rosenthal
2016-09-02Remove Compat.MonoidJesse Rosenthal
This was only necessary for GHC versions with base below 4.5 (i.e., ghc < 7.4).
2016-07-15Don't require haddock-library 1.4.John MacFarlane
Instead use CPP to work around version differences.
2016-07-14Haddock reader - support math.John MacFarlane
The Haddock document model added elements for math in 1.4.
2015-11-09Restored Text.Pandoc.Compat.Monoid.John MacFarlane
Don't use custom prelude for latest ghc. This is a better approach to making 'stack ghci' and 'cabal repl' work. Instead of using NoImplicitPrelude, we only use the custom prelude for older ghc versions. The custom prelude presents a uniform API that matches the current base version's prelude. So, when developing (presumably with latest ghc), we don't use a custom prelude at all and hence have no trouble with ghci. The custom prelude no longer exports (<>): we now want to match the base 4.8 prelude behavior.
2015-11-09Revert "Use -XNoImplicitPrelude and 'import Prelude' explicitly."John MacFarlane
This reverts commit c423dbb5a34c2d1195020e0f0ca3aae883d0749b.
2015-11-08Use -XNoImplicitPrelude and 'import Prelude' explicitly.John MacFarlane
This is needed for ghci to work with pandoc, given that we now use a custom prelude. Closes #2503.
2015-10-14Use custom Prelude to avoid compiler warnings.John MacFarlane
- 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-02-18Change return type of Haddock readerMatthew Pickering
2015-01-05Allow haddock-library 1.2, by calling the ↵Mark Wright
Documentation.Haddock.Types.MetaDoc record accessor function _doc :: MetaDoc mod id -> DocH mod id
2014-06-26Require haddock-library >= 1.1 and simplify haddock reader code.John MacFarlane
See #1346.
2014-06-18More polish on Haddock reader/writer.John MacFarlane
2014-06-18Finished first draft of Haddock writer.John MacFarlane
2014-06-18Rewrote haddock reader to use haddock-library.John MacFarlane
This brings pandoc's rendering of haddock markup in line with the new haddock. Note that we preserve line breaks in `@` code blocks, unlike the earlier version. Modified tests pass. More tests would be good.
2014-06-18Removed old haddock reader code. Add dependency on haddock-library.John MacFarlane
This also removes the dependency on alex and happy.
2013-06-24Use new flexible metadata type.John MacFarlane
* Depend on pandoc 1.12. * Added yaml dependency. * `Text.Pandoc.XML`: Removed `stripTags`. (API change.) * `Text.Pandoc.Shared`: Added `metaToJSON`. This will be used in writers to create a JSON object for use in the templates from the pandoc metadata. * Revised readers and writers to use the new Meta type. * `Text.Pandoc.Options`: Added `Ext_yaml_title_block`. * Markdown reader: Added support for YAML metadata block. Note that it must come at the beginning of the document. * `Text.Pandoc.Parsing.ParserState`: Replace `stateTitle`, `stateAuthors`, `stateDate` with `stateMeta`. * RST reader: Improved metadata. Treat initial field list as metadata when standalone specified. Previously ALL fields "title", "author", "date" in field lists were treated as metadata, even if not at the beginning. Use `subtitle` metadata field for subtitle. * `Text.Pandoc.Templates`: Export `renderTemplate'` that takes a string instead of a compiled template.. * OPML template: Use 'for' loop for authors. * Org template: '#+TITLE:' is inserted before the title. Previously the writer did this.
2013-03-29Haddock reader: improved error reporting.David Lazar
2013-03-28Add reader for Haddock markup based on Haddock's own lexer/parser.David Lazar