6945 Commits
Author SHA1 Message Date
Albert Krewinkel f2b337768e Finer grained imports of Text.Pandoc.Class submodules (#6203)
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-22 12:28:45 -07:00
Albert Krewinkel 2a042ff711 Text.Pandoc.Class: extract submodules PandocIO, PandocPure 2020-03-22 14:59:38 +01:00
Albert Krewinkel 66375f3fc4 Class: fix missing import when data files are not embedded 2020-03-21 16:26:24 +01:00
John MacFarlane 7601953205 Add to html5 attributes.
Add: allow, autocapitalize, decoding, enterkeyhint,
imagesizes, imagesrcset, loading.
2020-03-19 16:10:51 -07:00
Albert Krewinkel a5fa55969f Use implicit Prelude (#6187)
* 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-15 09:45:44 -07:00
Albert Krewinkel 76705dfeb0 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.
2020-03-15 09:55:34 +01:00
Albert Krewinkel ec49643d64 Subdivide Text.Pandoc.Class into small modules (#6106)
* Extract CommonState into submodule

* Extract PandocMonad into submodule

* PandocMonad: ensure all functions have Haddock documentation
2020-03-14 20:49:36 -07:00
Albert Krewinkel 11b5f1e40b Update copyright year (#6186)
* Update copyright year

* Copyright: add notes for Lua and Jira modules
2020-03-13 09:52:47 -07:00
Albert Krewinkel 24da280000 Lua marshalling: Remove unused language extensions 2020-03-13 09:52:28 +01:00
Albert Krewinkel 7eb9914841 Jira reader: support colored inline text, indented lists
* Support for colored inlines has been added.
* Lists are now allowed to be indented; i.e., lists are still recognized
  if list markers are preceded by spaces.

Closes: #6183, #6184
2020-03-13 09:52:28 +01:00
John MacFarlane 87875763c8 Ms writer: fix definition lists so indent even when...
paragraph indent is set to 0 (as is the default).

Also ensure indent for display math that falls back
to TeX.
2020-03-07 21:54:29 -08:00
John MacFarlane 2ab83a56e6 Ms writer: use .QS/.QE instead of .RS/.RE for block quotes. 2020-03-06 09:45:46 -08:00
John MacFarlane 4faac2bf9b Fix parsing of \' in man/ms readers.
It was being parsed as a backtick.
Closes #6175.
2020-03-05 19:29:14 -08:00
John MacFarlane 4eb0c1eec1 Fix parsing of \. in man/ms readers.
Previously due to a typo it was being parsed as `` ` ``.

Closes #6175.
2020-03-05 19:22:41 -08:00
John MacFarlane c78b30bd28 EPUB writer: fix regression on detection of front/back/bodymatter.
This bug caused sections with epub:type "dedication" to be
misplaced in bodymatter instead of frontmatter as specified
in the manual.  The same problem would affect other epub:types.

The pattern matching needed to be changed with the use of
`makeSection`.  Closes #6170.
2020-03-04 08:42:57 -08:00
John MacFarlane 43711ade22 PDF via wkhtmltopdf: put user-specified options last.
Certain options (e.g. "cover") need to come after flags on
the command line.  Closes #6171.
2020-03-02 15:26:11 -08:00
John MacFarlane 2c09b15b8d Fix table alignment when heading begins with t.
Due to a typo (`t` instead of `\t`) we were center
aligning column headings that begin with a lowercase t!
Closes #6153.
2020-02-21 08:06:19 -08:00
John MacFarlane 984a82a9b8 Text.Pandoc.App: set resource path at the beginning...
...so it can affect things like include-in-header.

See #5982.
2020-02-19 16:56:20 -08:00
John MacFarlane 0edc084c50 Revert "Allow specifying string value in metadata using !!literal tag."
This reverts commit 3493d6afaa.

This might be worth considering in the future, but let's not do
it yet...the additional complexity needs a better justification.
2020-02-17 15:58:21 -08:00
John MacFarlane 3493d6afaa Allow specifying string value in metadata using !!literal tag.
This is experimental.  Normally metadata values are interpreted
as markdown, but if the !!literal tag is used they will be interpreted
as plain strings.

We need to consider whether this can still be implemented if
we switch back from HsYAML to yaml for performance reasons.
2020-02-17 09:53:36 -08:00
Ryan Scott 6a01386cd1 Remove redundant otherwise guard in inlineToAsciiDoc (#6146)
The `RawInline` case in `inlineToAsciiDoc` currenty looks like this:

```hs
inlineToAsciiDoc _ il@(RawInline f s)
  | f == "asciidoc" = return $ literal s
  | otherwise         = do
      report $ InlineNotRendered il
      return empty
  | otherwise       = return empty
```

Notice how there are there are two overlapping `otherwise` guards.
The second `otherwise` guard is completely unreachable, so this patch
removes it.
2020-02-17 08:03:50 -08:00
Ethan Riley daf770c1e9 Fixes: group biblatex citations even with prefix and suffix (#6058)
Closes #5849.  Previously biblatex citations were only grouped if
there was no prefix.  This patch allows them to be grouped in
subgroups split by prefixes and suffixes, which allows better citation
sorting.
2020-02-14 08:44:40 -08:00
Joseph C. Sible 652ed0b82c A bit more cleanup (#6141)
* Remove unnecessary fmaps and only do toMilliseconds once

* Share the input tuple intead of making a new one

* Lift return out of if

* Simplify case statements

* Lift DottedNum out of the case statements

* Use st instead of mbs

* Use setState instead of updateState now that we have the whole state around
2020-02-13 22:52:51 -08:00
Lucas Escot 29c2670da2 Add highlight directive to the rST reader (#6140) 2020-02-13 10:27:34 -08:00
John MacFarlane 3a181f0a97 Add Text.Pandoc.Image with unexported svgToPng. 2020-02-12 21:57:00 -08:00
Albert Krewinkel f5ea5f0aad Introduce new format variants for JATS (#6067)
New formats:

- `jats_archiving` for the "Archiving and Interchange Tag Set",
- `jats_publishing` for the "Journal Publishing Tag Set", and
- `jats_articleauthoring` for the "Article Authoring Tag Set."

The "jats" output format is now an alias for "jats_archiving".

Closes: #6014
2020-02-12 20:36:02 -08:00
John MacFarlane 3a79f37d88 LaTeX reader: improve caption and label parsing.
- Don't emit empty Span elements for labels.
- Put tables with labels in a surrounding Div.
2020-02-12 17:43:55 -08:00
John MacFarlane 1433aaa4c3 HTML reader: don't parse data-id as id attribute.
And similarly don't parse any `data-X` as `X` when `X`
is a valid HTML attribute.

Reported in comment on #5415.
2020-02-12 08:47:32 -08:00
John MacFarlane fae8ea36f0 Moved html5Attributes, html4Attributes, rdfaAttributes...
from T.P.Writers.HTML (where they were unexported) to
T.P.XML (where they are now exported).

[API change: new exported functions]

This allows these sets to be used elsewhere, e.g.
in the HTML reader.
2020-02-12 08:45:59 -08:00
John MacFarlane 3fbee8c6ed LaTeX reader: resolve \ref to table numbers.
Closes #6137.
2020-02-11 22:28:06 -08:00
John MacFarlane 114d77c2ab Fix spurious dots in markdown_mmd metadata output
Closes #6133 (regression).
2020-02-10 09:00:21 -08:00
Albert Krewinkel 689cb7128f Org reader: simplify parsing of sub- and superscripts
Speeds up parsing of single-word, markup-less sub- and superscripts.

Fixes: #6127
2020-02-08 21:07:57 +01:00
John MacFarlane 5f0bd52221 reveal.js: ensure that pauses work even in title slides.
Closes #5819.
2020-02-08 09:38:07 -08:00
Joseph C. Sible f2f559003e Factor out a findM function (#6125)
This adds a new function to the API: Text.Pandoc.Shared.findM.
2020-02-08 09:12:30 -08:00
Joseph C. Sible 12c75701be Use <$> instead of >>= and return (#6128) 2020-02-08 09:12:01 -08:00
Joseph C. Sible e97a99616e Clean up after "hlint --refactor" (#6129)
HLint's automatic refactoring isn't quite perfect, so some of its
changes were overcomplicated, wrong, or created new findings.
Clean these up.
2020-02-08 09:11:00 -08:00
Joseph C. Sible 02ff42b178 More cleanup (#6130)
* Use an infix operator normally instead of immediately applying an operator section

* Use M.fromList
2020-02-08 09:09:33 -08:00
John MacFarlane 4c3db9273f Apply linter suggestions. Add fix_spacing to lint target in Makefile. 2020-02-07 09:08:22 -08:00
Albert Krewinkel 6cd77d4c63 Resolve HLint warnings
All warnings are either fixed or, if more appropriate, HLint is
configured to ignore them. HLint suggestions remain.

  * Ignore "Use camelCase" warnings in Lua and legacy code
  * Fix or ignore remaining HLint warnings
  * Remove redundant brackets
  * Remove redundant `return`s
  * Remove redundant as-pattern
  * Fuse mapM_/map
  * Use `.` to shorten code
  * Remove redundant `fmap`
  * Remove unused LANGUAGE pragmas
  * Hoist `not` in Text.Pandoc.App
  * Use fewer imports for `Text.DocTemplates`
  * Remove redundant `do`s
  * Remove redundant `$`s
  * Jira reader: remove unnecessary parentheses
2020-02-07 10:17:24 +01:00
Joseph C. Sible 60a3158bf9 More in-depth refactoring and cleanup (#6123)
* Avoid duplicating the dash case

* Pull common functions out of case branches

* Make sure list lengths are only calculated once

* Use unless

* Simplify parseURIReference' and avoid an unnecessary call to length

* Use <$> instead of reimplementing it

* Use swap instead of reimplementing it

* Remove eta-expansion that's been unnecessary since 90f5dd8

* Use tailDef instead of reimplementing it

* Use second instead of fmap, per @tarleb
2020-02-07 08:42:46 +01:00
Joseph C. Sible a5a3ac9946 Various minor cleanups and refactoring (#6117)
* Use concatMap instead of reimplementing it

* Replace an unnecessary multi-way if with a regular if

* Use sortOn instead of sortBy and comparing

* Use guards instead of lots of indents for if and else

* Remove redundant do blocks

* Extract common functions from both branches of maybe

Whenever both the Nothing and the Just branch of maybe do the same
function, do that function on the result of maybe instead.

* Use fmap instead of reimplementing it from maybe

* Use negative forms instead of negating the positive forms

* Use mapMaybe instead of mapping and then using catMaybes

* Use zipWith instead of mapping over the result of zip

* Use unwords instead of reimplementing it

* Use <$ instead of <$> and const

* Replace case of Bool with if and else

* Use find instead of listToMaybe and filter

* Use zipWithM instead of mapM and zip

* Inline lambda wrappers into the real functions

* We get zipWithM from Text.Pandoc.Writers.Shared

* Use maybe instead of fromMaybe and fmap

I'm not sure how this one slipped past me.

* Increase a bit of indentation
2020-02-07 08:38:24 +01:00
Joseph C. Sible 013a1647a7 Use traverse instead of reimplementing it (#6124) 2020-02-06 23:10:09 -08:00
Joseph C. Sible 30c8980883 Simplify an overcomplicated filtering function (#6115)
There's no need to use `catMaybes`, `uncurry`, `bool`, etc., just
to get elements where the second element of a tuple is True.
2020-02-05 17:22:53 -08:00
John MacFarlane 9c12024e07 Fix --number-offset with HTML TOC.
Eventually it would be worth adding a parameter to
makeSections so this could be done at that level;
then it would also affect other writers that construct
TOC manually.
2020-02-05 17:20:52 -08:00
John MacFarlane 0a4f49d370 MediaWiki writer: prevent triple [[[.
This confuses mediawiki's parser.  So we insert a `<nowiki/>`
no-op between a literal `[` and a link.  Closes #6119.
2020-02-05 10:08:18 -08:00
John MacFarlane 9c4dc8b49b LaTeX reader: skip comments in more places where this is needed.
Closes #6114.
2020-02-05 09:48:42 -08:00
Joseph C. Sible b018028ee9 Remove our bool function (#6116)
Data.Bool already provides a bool function identical to this one.
2020-02-04 22:38:49 -08:00
John MacFarlane fd9c03febe Add timing info for filters in --verbose mode.
+ Add RunningFilter, FilterCompleted constructors to LogMessage
+ When verbose mode is specified (verbosity == INFO), print a
  notice when running a filter and when a filter completes (including
  timing).

Closes #6112.
2020-02-04 09:38:53 -08:00
John MacFarlane 30962e2e9d Allow & in LaTeX citation keys.
Closes #6110.
2020-02-03 20:38:49 -08:00
Joseph C. Sible 1ea5b18020 Swap suboptimal uses of maybe and fromMaybe (#6111)
Anywhere "maybe" is used with "id" as its second argument, using
"fromMaybe" instead will simplify the code. Conversely, anywhere
"fromMaybe" is used with the result of "fmap" or "<$>" as its second
argument, using "maybe" instead will simplify the code.
2020-02-03 20:31:05 -08:00