aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/Markdown.hs
AgeCommit message (Collapse)AuthorFilesLines
2019-11-13Markdown reader: don't parse footnote body unless extension enabled.John MacFarlane1-18/+20
2019-11-12Switch to new pandoc-types and use Text instead of String [API change].despresc1-211/+215
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-11-11Markdown reader: fix small super/subscript issue.John MacFarlane1-2/+6
Superscripts and subscripts cannot contain spaces, but newlines were previously allowed (unintentionally). This led to bad interactions in some cases with footnotes. E.g. ``` foo^[note] bar^[note] ``` With this change newlines are also not allowed inside super/subscripts. Closes #5878.
2019-09-28Use throwError instead of fail when appropriate.John MacFarlane1-2/+3
2019-09-28Use Prelude.fail to avoid ambiguity with fail from GHC.Base.John MacFarlane1-2/+2
2019-09-22Use HsYAML-0.2.0.0John MacFarlane1-11/+12
Most of this is due to @vijayphoenix (#5704), but it needed some revisions to integrate with current master, and to use the released HsYAML. Closes #5704.
2019-08-27Markdown reader: Headers: don't parse content over newline boundary.John MacFarlane1-4/+15
Closes #5714.
2019-08-14Removed some needless lookaheads in Markdown reader.John MacFarlane1-2/+0
2019-07-06Markdown reader: handle inline code more eagerly within lists. (#5628)Brian Leung1-5/+7
Closes #5627.
2019-06-04Markdown reader: don't create implicit reference for empty header.John MacFarlane1-4/+7
Closes #5549.
2019-03-28Markdown reader: fenced div takes priority over setext header.John MacFarlane1-2/+2
For ::: {.cell} --- :::
2019-03-14Markdown writer: be sure implicit figures work in list contexts.John MacFarlane1-11/+13
Previously they would sometimes not work: e.g., when they occured in final paragraphs in lists that were originally parsed as Plain and converted later using PlainToPara. Closes #5368.
2019-03-01Remove license boilerplate.John MacFarlane1-19/+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-28Markdown Reader: yamlToMeta respects extensions (#5276)Mauro Bieg1-3/+2
Add ReaderOptions parameter to yamlToMeta [API change]. fixes #5272
2019-02-15Markdown reader: fix bug parsing fenced code blocks.John MacFarlane1-2/+3
Previously parsing would break if the code block contained a string of backticks of sufficient length followed by something other than end of line. Closes #5304.
2019-02-08Make --metadata-file use pandoc-markdown (#5279)Mauro Bieg1-1/+2
see #5272
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.
2019-02-04Markdown reader: add newline when parsing blocks in YAML.John MacFarlane1-9/+10
Otherwise last block gets parsed as a Plain rather than a Para. This is a regression in pandoc 2.x. This patch restores pandoc 1.19 behavior. Closes #5271.
2019-01-21HTML and markdown: treat textarea as a verbatim environment.John MacFarlane1-7/+7
We don't want to parse its contents as Markdown or HTML. Closes #5241.
2019-01-08Removed superfluous sourceCode class on code blocks.John MacFarlane1-2/+2
* These were added by the RST reader and, for literate Haskell, by the Markdown and LaTeX readers. There is no point to this class, and it is not applied consistently by all readers. See #5047. * Reverse order of `literate` and `haskell` classes on code blocks when parsing literate Haskell. Better if `haskell` comes first.
2019-01-02Implement task lists (#5139)Mauro Bieg1-1/+2
Closes #3051
2018-11-25Fix parsing of citations and quotes after parentheses.John MacFarlane1-6/+2
Starting with pandoc 2.4, citations and quoted inlines were no longer recognized after parentheses. This is because of commit 9b0bd4ec6f5c9125efb3e36232e6d1f6ac08a728, which is reverted here. The point of that commit was to allow relocation of soft line breaks to before an abbreviation, so that a nonbreaking space could be added after the abbreviation. Now we simply leave the soft line break in place, even though this means that we won't get a nonbreaking space after "Mr." at the end of a line (and in LaTeX this may result in a longer intersentential space). Those who care about this issue should take care not to end lines with an abbreviation, or to insert nonbreaking spaces manually. Closes #5099.
2018-10-14Markdown reader: Fix awkward soft break movements before abbreviations.John MacFarlane1-5/+10
Closes #4635.
2018-10-14Markdown reader: Added updateStrPos in a couple places where needed.John MacFarlane1-1/+2
2018-09-19Markdown reader: distinguish autolinks in the AST.John MacFarlane1-5/+7
With this change, autolinks are parsed as Links with the `uri` class. (The same is true for bare links, if the `autolink_bare_uris` extension is enabled.) Email autolinks are parsed as Links with the `email` class. This allows the distinction to be represented in the URI. Formerly the `uri` class was added to autolinks by the HTML writer, but it had to guess what was an autolink and could not distinguish `[http://example.com](http://example.com)` from `<http://example.com>`. It also incorrectly recognized `[pandoc](pandoc)` as an autolink. Now the HTML writer simply passes through the `uri` attribute if it is present, but does not add anything. The Textile writer has been modified so that the `uri` class is not explicitly added for autolinks, even if it is present. Closes #4913.
2018-09-16Markdown reader: example_lists should work without startnum.John MacFarlane1-1/+3
Closes #4908.
2018-09-15introduce --metadata-file optionmb211-2/+14
closes #1960 API change: Text.Pandoc.Readers.Markdown exports now `yamlToMeta`
2018-09-15Markdown Reader: factor out yamlMapmb211-40/+27
2018-09-15Markdown Reader: factor out yamlBsToMetamb211-4/+8
2018-09-15Markdown Reader: rename yamlToMeta to yamlToMetaValuemb211-9/+9
2018-08-15Markdown reader: Use "tex" instead of "latex" for raw tex-ish content.John MacFarlane1-7/+3
We can't always tell if it's LaTeX, ConTeXt, or plain TeX. Better just to use "tex" always. Also changed: ConTeXt writer: now outputs raw "tex" blocks as well as "context". (Closes #969). RST writer: uses ".. raw:: latex" for "tex" content. (RST doesn't support raw context anyway.) Note that if "context" or "latex" specifically is desired, you can still force that in a markdown document by using the raw attribute (see MANUAL.txt): ```{=latex} \foo ``` Note that this change may affect some filters, if they assume that raw tex parsed by the Markdown reader will be RawBlock (Format "latex"). In most cases it should be trivial to modify the filters to accept "tex" as well.
2018-08-07Markdown reader: Properly handle boolean values in YAML metadata.John MacFarlane1-1/+12
This fixes a regression in 2.2.3, which cause boolean values to be parsed as MetaInlines instead of MetaBool. Note also an undocumented (but desirable) change in 2.2.3: numbers are now parsed as MetaInlines rather than MetaString. Closes #4819.
2018-08-06Fix parsing of embedded mappings in YAML metadata.John MacFarlane1-24/+22
This fixes a regression in 2.2.3 which caused embedded mappings (e.g. mappings in sequences) not to work in YAML metadata. Closes #4817.
2018-07-30Markdown reader: allow unquoted numbers, booleans as YAML mapping keys.John MacFarlane1-26/+28
Previously in 2.2.2 you could not do --- 0: bar ... but only --- '0': bar ... With this change, both forms work.
2018-07-30Use YAML.decode rather than YAML.decodeStrict.John MacFarlane1-1/+1
(Minor)
2018-07-15Wrap emojis in span nodes (#4759)Anders Waldenborg1-4/+4
Text.Pandoc.Emoji now exports `emojiToInline`, which returns a Span inline containing the emoji character and some attributes with metadata (class `emoji`, attribute `data-emoji` with emoji name). Previously, emojis (as supported in Markdown and CommonMark readers, e.g ":smile:") were simply translated into the corresponding unicode code point. By wrapping them in Span nodes, we make it possible to do special handling such as giving them a special font in HTML output. We also open up the possibility of treating them differently when the `--ascii` option is selected (though that is not part of this commit). Closes #4743.
2018-06-29Fix compiler warnings.John MacFarlane1-4/+4
2018-06-29Use HsYAML instead of yaml for translations, YAML metadata.John MacFarlane1-56/+46
yaml wraps a C library; HsYAML is pure Haskell. Closes #4747. Advances #4535.
2018-06-13Markdown reader: allow empty code spans.John MacFarlane1-1/+1
E.g. `` ` ` ``.
2018-04-21Markdown reader/writer: spacing adjustments in tables.John MacFarlane1-3/+8
* Markdown writer now includes a blank line at the end of the row in a single-row multiline table, to prevent it from being interpreted as a simple table. Closes #4578. * Markdown reader does a better job computing the relative width of the last column in a multiline table, so we can round-trip tables without constantly shrinking the last column.
2018-04-19Markdown reader: allow empty attributes.John MacFarlane1-0/+2
See #2944.
2018-04-18Markdown reader: handle table w/o following blank line in fenced div.John MacFarlane1-3/+14
Closes #4560.
2018-04-16Markdown reader: remove "fallback" for doubleQuote parser.John MacFarlane1-4/+3
Previously the parser tried to be efficient -- if no end double quote was found, it would just return the contents. But this could backfire in a case like: **this should "be bold** since the fallback would return the content `"be bold**` and the closing boldface delimiter would never be encountered.
2018-03-18Use NoImplicitPrelude and explicitly import Prelude.John MacFarlane1-0/+2
This seems to be necessary if we are to use our custom Prelude with ghci. Closes #4464.
2018-03-17hlint fixes.John MacFarlane1-1/+1
2018-03-16Monoid/Semiground cleanup relying on custom Prelude.John MacFarlane1-1/+0
2018-03-13Require pandoc-types 1.17.4.John MacFarlane1-1/+1
And a few tweaks related to the Semigroups/Monoid change. Closes #4448.
2018-01-20Markdown reader: Fix parsing bug with nested fenced divs.John MacFarlane1-2/+0
Closes #4281. Previously we allowed "nonindent spaces" before the opening and closing `:::`, but this interfered with list parsing, so now we require the fences to be flush with the margin of the containing block.
2018-01-19hlint code improvements.John MacFarlane1-30/+28
2018-01-17Markdown reader: don't coalesce adjacent raw LaTeX blocks...John MacFarlane1-3/+9
if they are separated by a blank line. See lierdakil/pandoc-crossref#160 for motivation.