aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers
AgeCommit message (Collapse)AuthorFilesLines
2020-04-17Markdown writer: avoid unnecessary escapes before intraword `_`John MacFarlane1-1/+6
when `intraword_underscores` extension is enabled. Closes #6296.
2020-04-17API change: use PandocError for exceptions in Lua subsystemAlbert Krewinkel1-18/+9
The PandocError type is used throughout the Lua subsystem, all Lua functions throw an exception of this type if an error occurs. The `LuaException` type is removed and no longer exported from `Text.Pandoc.Lua`. In its place, a new constructor `PandocLuaError` is added to PandocError.
2020-04-15Modify toLegacyTable to cut up cells, add testsdespresc1-8/+43
Now a cell with dimension (h, w) will be cut up into h*w cells of dimension (1,1), all in the same grid position, with the upper-left holding the original cell contents and the rest being empty.
2020-04-15Use the new builders, modify readers to preserve empty headersdespresc4-5/+5
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 issuesdespresc31-56/+96
- 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-15Remove the onlySimpleCellBodies function from Shareddespresc3-3/+3
2020-04-15Implement the new Table typedespresc32-181/+239
2020-04-11LaTeX writer: ensure that `-M csquotes` works even in fragment mode.John MacFarlane1-10/+11
Closes #6265.
2020-04-04Jira: support citations, attachment links, and user linksAlbert Krewinkel1-3/+25
Closes: #6231 Closes: #6238 Closes: #6239
2020-04-01Docbook writer: Add personname element to docbook author.John MacFarlane1-1/+2
Closes #6244.
2020-03-31Markdown writer: ensure consistent padding for pipe tables.John MacFarlane1-2/+2
Previously there was no space between text and bar in right-aligned table cells. This commit also ensures space on both sides for centered cells. Closes #6240.
2020-03-31Jira writer: convert spans with class `underline` to inserted textAlbert Krewinkel1-1/+9
Spans with class `underline` as converted into Jira text marked as `+inserted+`, i.e. surrounded by plus-signs.
2020-03-30Jira writer: add image attributesAlbert Krewinkel1-1/+13
Image attributes are added to the output as image parameters. If the image has a class "thumbnail", then a thumbnail image is generated; all other attributes are discarded in this case. Closes: #6234
2020-03-30Fix #6228 (#6230)Joseph C. Sible1-3/+3
UUID: Remove `getUUID`, fix `getRandomUUID` and make it polymorphic in PandocMonad.
2020-03-29Clean up and simplify Text.Pandoc.Writers.Docx (#6229)Joseph C. Sible1-56/+48
* Use <|> to simplify the Semigroup instance * Use map instead of reimplementing it * Simplify isValidChar * Remove an unnecessary nested do block * Simplify pgContentWidth * Simplify addLang * Simplify newStyles * Avoid an unnecessary fmap in headerFooterEntries * Remove unnecessary monadicity from mkNumbering and mkAbstractNum * Use randomRs instead of constantly messing with the RNG state * Lift common functions out of ifs * Hoist not * Clarify withTextPropM and withParaPropM
2020-03-29Clean up some fmaps (#6226)Joseph C. Sible2-5/+5
* Avoid fmapping when we're just binding right after anyway * Clean up unnecessary fmaps in the LaTeX reader
2020-03-22Finer grained imports of Text.Pandoc.Class submodules (#6203)Albert Krewinkel38-48/+48
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 Krewinkel41-82/+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 Krewinkel37-39/+40
* Update copyright year * Copyright: add notes for Lua and Jira modules
2020-03-07Ms writer: fix definition lists so indent even when...John MacFarlane1-3/+4
paragraph indent is set to 0 (as is the default). Also ensure indent for display math that falls back to TeX.
2020-03-06Ms writer: use .QS/.QE instead of .RS/.RE for block quotes.John MacFarlane1-1/+1
2020-03-04EPUB writer: fix regression on detection of front/back/bodymatter.John MacFarlane1-1/+2
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-02-17Remove redundant `otherwise` guard in inlineToAsciiDoc (#6146)Ryan Scott1-1/+0
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-14Fixes: group biblatex citations even with prefix and suffix (#6058)Ethan Riley1-25/+42
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-13A bit more cleanup (#6141)Joseph C. Sible1-1/+1
* 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-12Introduce new format variants for JATS (#6067)Albert Krewinkel1-41/+99
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-12Moved html5Attributes, html4Attributes, rdfaAttributes...John MacFarlane1-347/+2
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-10Fix spurious dots in markdown_mmd metadata outputJohn MacFarlane1-1/+1
Closes #6133 (regression).
2020-02-08reveal.js: ensure that pauses work even in title slides.John MacFarlane1-4/+6
Closes #5819.
2020-02-08Clean up after "hlint --refactor" (#6129)Joseph C. Sible2-6/+5
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-08More cleanup (#6130)Joseph C. Sible1-7/+6
* Use an infix operator normally instead of immediately applying an operator section * Use M.fromList
2020-02-07Apply linter suggestions. Add fix_spacing to lint target in Makefile.John MacFarlane19-162/+138
2020-02-07Resolve HLint warningsAlbert Krewinkel17-113/+113
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-07Various minor cleanups and refactoring (#6117)Joseph C. Sible4-23/+21
* 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-05Fix --number-offset with HTML TOC.John MacFarlane1-10/+19
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-05MediaWiki writer: prevent triple `[[[`.John MacFarlane1-1/+11
This confuses mediawiki's parser. So we insert a `<nowiki/>` no-op between a literal `[` and a link. Closes #6119.
2020-02-03Swap suboptimal uses of maybe and fromMaybe (#6111)Joseph C. Sible3-10/+10
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-03Fix duplicate frame classes in LaTeX/Beamer output.John MacFarlane1-2/+2
Close #6107.
2020-01-19Docx writer: fix regression with Compact style on tight lists. (#6073)John MacFarlane1-1/+9
Starting in 2.8, the docx writer no longer distinguishes between tight and loose lists, since the Compact style is omitted. This is a side-effect of the fix to #5670, as explained in the changelog: + Preserve built-in styles in DOCX with custom style (Ben Steinberg, #5670). This change prevents custom styles on divs and spans from overriding styles on certain elements inside them, like headings, blockquotes, and links. On those elements, the "native" style is required for the element to display correctly. This change also allows nesting of custom styles; in order to do so, it removes the default "Compact" style applied to Plain blocks, except when inside a table. This patch fixes the problem by extending the exception currently offered to Plain blocks inside tables to Plain blocks inside list items. Closes #6072.
2020-01-12HTML writer: fix duplicate attributes on headings.John MacFarlane1-9/+10
Another regression from 2.7.x. Closes #6062.
2020-01-07Jira writer: fix output of table headersAlbert Krewinkel1-4/+4
Headers were missing from tables. Fixes: #6035
2020-01-07Fix regression in handling of columns in beamer slides.John MacFarlane1-5/+6
Columns in title slides were causing problems with slide division. Closes #6033.
2020-01-07Reveal.js writer: restore old behavior for 2D nesting.John MacFarlane1-11/+17
The fix to #6030 actually changed behavior, so that the 2D nesting occurred at slide level N-1 and N, instead of at the top-level section. This commit restores the 2.7.3 behavior. If there are more than 2 levels, the top level is horizontal and the rest are collapsed to vertical. Closes #6032.
2020-01-05Fix regression in beamer slide structure with certain slide levels.John MacFarlane1-8/+17
Closes #6030.
2020-01-05Fix revealjs slide structure regression with certain slide levels.John MacFarlane1-6/+8
Partially addresses #6030.
2020-01-04HTML writer: Add newlines to make slide show output more readable.John MacFarlane1-6/+8
2020-01-03Org writer: remove extra spaces from table cellsAlbert Krewinkel1-1/+1
Closes: #6024
2020-01-01LaTeX writer: properly handle unnumbered headings level 4+.John MacFarlane1-1/+1
Closes #6018. Previously the `\paragraph` command was used instead of `\paragraph*` for unnumbered level 4 headings.
2019-12-21HTML writer: more tweaks to avoid round-trip failures...John MacFarlane1-2/+5
having to do with makeSections.
2019-12-21Fix regression with --number-sections.John MacFarlane1-2/+1
Starting with 2.8, `--number-sections` also had the effect of `--section-divs`, even if `--section-divs` was not specified.