Commit graph

399 commits

Author SHA1 Message Date
Henry de Valence
3d70059a48 HLint: use fromMaybe
Replace uses of `maybe x id` with `fromMaybe x`.
2013-12-19 21:07:09 -05:00
Henry de Valence
f6d151889c HLint: redundant parens
Remove parens enclosing a single element.
2013-12-19 20:43:25 -05:00
Henry de Valence
0c5e7cf8cb HLint: use elem and notElem
Replaces long conditional chains with calls to `elem` and `notElem`.
2013-12-19 20:19:24 -05:00
John MacFarlane
2f00f5c7c2 Properly handle script blocks in strict mode.
(That is, markdown-markdown_in_html_blocks.)
Previously a spurious `<p>` tag was being added.

Closes .
2013-12-15 12:27:29 -08:00
John MacFarlane
6d0cd9203c Markdown reader: Fixed regression in title blocks.
If author field was empty, date was being ignored.  Closes .
2013-12-12 22:34:56 -08:00
John MacFarlane
8e255fad98 Another small performance improvement. 2013-12-07 19:56:54 -08:00
John MacFarlane
e2c4156c20 Small performance improvement in list parsing. 2013-12-07 19:41:42 -08:00
John MacFarlane
e5a7c31a32 Markdown reader: Fixed bug with literal </div> in lists.
Closes .
2013-12-07 17:12:52 -08:00
John MacFarlane
def05d3504 HTML reader: Parse LaTeX math if appropriate options are set.
* Moved inlineMath, displayMath from Markdown reader to Parsing.
* Export them from Parsing.  (API change.)
* Generalize their types.
2013-12-06 17:15:13 -08:00
John MacFarlane
5314df51f3 Stop parsing "list lines" when we hit a block tag.
This fixes exponential slowdown in certain input, e.g.
a series of lists followed by `</div>`.
2013-12-04 10:18:05 -08:00
John MacFarlane
cf149fcf38 Fixed bug with intraword emphasis.
Closes .
2013-11-22 19:41:08 -08:00
John MacFarlane
4301fa4a27 Markdown reader: Correctly handle empty bullet list items.
For example:

    - one
    -
    - two

This should NOT be parsed as a setext header followed by a list.
2013-11-03 21:16:47 -08:00
John MacFarlane
ab0ffe6549 Markdown reader: Yaml block must start immediately after ---.
If there's a blank line after `---`, we interpreted it as
a horizontal rule.
2013-10-29 10:57:48 -07:00
John MacFarlane
21f1bcb280 Markdown reader: unresolved citations fall back to original text.
Not ???.

Reason:  Less surprising, especially for people using @ as
in twitter.
2013-09-14 22:28:37 -07:00
John MacFarlane
a9f3abc653 Markdown: don't parse citation right after alphanumeric.
An `@` after an alphanumeric is probably an email address.
2013-09-09 11:19:37 -07:00
John MacFarlane
777226296b markdown+list_without_preceding_blankline:+Interpret text before list as paragraph. 2013-09-08 11:49:44 -07:00
John MacFarlane
cf2506acdc Markdown: Allow backtick code blocks not to be preceded by blank line.
Closes .
2013-09-08 11:43:46 -07:00
John MacFarlane
5afd373ae4 Added lists_without_preceding_blankline extension.
* Added `Ext_lists_without_preceding_blankline` to
  `Extension` in `Options`.  Added this option to
  `githubMarkdownExtensions`.
* Made markdown reader sensitive to this.
* Closes .
2013-09-07 09:36:37 -07:00
John MacFarlane
9b0b9b6e03 Markdown reader: Don't autolink a bare URI that is followed by </a>.
Closes .
2013-09-01 15:18:56 -07:00
John MacFarlane
6ed41fdfcc Factored out registerHeader from markdown reader, added to Parsing.
Text.Pandoc.Parsing now exports registerHeader, which can be
used in other readers.
2013-09-01 08:54:10 -07:00
John MacFarlane
deb59b6235 Removed dependency on citeproc-hs.
Going forward we'll use pandoc-citeproc, as an external filter.

The `--bibliography`, `--csl`, and `--citation-abbreviation` fields
have been removed.  Instead one must include `bibliography`, `csl`,
or `csl-abbrevs` fields in the document's YAML metadata.  The filter
can then be used as follows:

    pandoc --filter pandoc-citeproc

The `Text.Pandoc.Biblio` module has been removed.  Henceforth,
`Text.CSL.Pandoc` from pandoc-citations can be used by library users.

The Markdown and LaTeX readers now longer format bibliographies and
citations.  That must be done using `processCites` or `processCites'`
from Text.CSL.Pandoc.

All bibliography-related fields have been removed from `ReaderOptions`
and `WriterOptions`: `writerBiblioFiles`, `readerReferences`,
`readerCitationStyle`.

API change.
2013-08-24 22:33:01 -07:00
John MacFarlane
7048c130ec Create Cite element even if no matching reference in the biblio.
* Add ??? as fallback text for non-resolved citations.
* Biblio:  Put references (including a header at the end of
  the document, if one exists) inside a Div with class "references".
  This gives some control over styling of references, and allows
  scripts to manipulate them.
* Markdown writer:  Print markdown citation codes, and disable
  printing of references, if `citations` extension is enabled.

NOTE:  It would be good to improve what citeproc-hs does for
a nonexistent key.
2013-08-20 20:47:06 -07:00
John MacFarlane
0e2605ffdf Allow multiple YAML metadata blocks in document. 2013-08-18 18:39:04 -07:00
John MacFarlane
3117c668a7 Markdown reader: Parse span, div tags as Span, Div elements.
Assuming markdown_in_html extension is set.
2013-08-17 17:11:51 -07:00
John MacFarlane
5a5a252216 Markdown reader: Don't generate blank title, author, date elements. 2013-08-17 10:29:12 -07:00
John MacFarlane
d44d166431 Allow YAML title blocks to contain only comments. 2013-08-07 08:43:42 -07:00
John MacFarlane
7d18770b00 Added support for MetaBool. 2013-08-06 23:31:16 -07:00
John MacFarlane
3c06e2692a Markdown atx headers: Allow . or ) after # if no fancy_lists. 2013-07-29 08:38:46 -07:00
John MacFarlane
bd1979f1b7 Markdown reader: Improved strong/emph parsing.
Using technique from github.com/jgm/Markdown.

The new parsing algorithm requires no backtracking, and no keeping
track of nesting levels.

It will give different results in some edge cases but should not
affect most people.
2013-07-20 21:14:38 -07:00
John MacFarlane
6c2e76ac61 Added ignore_line_breaks markdown extension.
This causes intra-paragraph line breaks to be ignored,
rather than being treated as hard line breaks or spaces.
This is useful for some East Asian languages, where spaces
aren't used between words, but text is separated into lines
for readability.
2013-07-17 15:38:56 -07:00
John MacFarlane
3cd62d7c35 Rename Ext_yaml_title_block -> Ext_yaml_metadata_block. 2013-07-02 20:54:30 -07:00
John MacFarlane
e973bbbbc8 Markdown reader: Better error messages for yaml headers. 2013-07-02 09:23:43 -07:00
John MacFarlane
0fa5792790 Markdown reader: Ignore fields ending with _ in YAML headers. 2013-07-01 22:39:56 -07:00
John MacFarlane
f3f557d988 Emit warning instead of failing on invalid YAML header. 2013-07-01 22:29:04 -07:00
John MacFarlane
f869f7e08d Use new flexible metadata type.
* 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-06-24 20:29:41 -07:00
John MacFarlane
e3b8b89d31 Markdown reader: Check for blank lines first in blocks.
(And skip them.  This might speed things up in some cases.)
2013-06-19 09:22:57 -07:00
John MacFarlane
f2c3335642 Properly handle blank line at beginning of input.
Closes .
2013-06-19 09:11:34 -07:00
John MacFarlane
b53ea23b3f Improved code readability. 2013-06-19 09:08:35 -07:00
John MacFarlane
e0832b0359 Markdown reader: fixed bug in unmatched reference links.
The input

    [*infile*] [*outfile*]

was getting improperly parsed:  "infile" was emphasized, but
"*outfile*" was literal.  This was due to failure to parse the
"fallback" in the reference link parser.

Closes .
2013-06-19 08:56:11 -07:00
John MacFarlane
b89a443034 Markdown reader: Allow internal + in citation identifiers.
Closes .
2013-05-13 10:33:31 -07:00
John MacFarlane
031686bd35 Markdown reader: Implemented Ext_ascii_identifiers.
Closes .
2013-04-23 20:40:23 -07:00
John MacFarlane
0ee081ef25 Markdown reader: minor code cleanup. 2013-04-19 20:23:50 -07:00
John MacFarlane
db3d4113a2 Markdown reader: don't lose parentheses in URLs.
Added tests.  This fixes a regression from 1.10.x.  Closes .
2013-03-13 19:20:25 -07:00
John MacFarlane
d820eb2c47 Markdown reader: Handle unmatched double quotes in dialogues.
They do not generate a Quoted element; instead, the double quote
is just turned into a Str with a curly left quote.

This should satisfy the fiction writers.  Closes  (again).
2013-03-12 19:18:14 -07:00
John MacFarlane
f4629df14a Markdown reader: attribute parsing improvements.
* Cleaned up parsing code.
* '-' in an attribute context = '.unnumbered'.  The point of this
  is to provide a way to specify unnumbered headers in non-English
  documents.
2013-03-02 21:08:33 -08:00
John MacFarlane
3ad68b2522 Check for tables before line blocks.
Otherwise some pipe tables get treated as line blocks.
2013-03-02 19:02:50 -08:00
John MacFarlane
1aff783095 Markdown reader: Allow spaces around borders in pipe tables.
Closes .
2013-03-02 18:59:50 -08:00
John MacFarlane
649608d324 Markdown: allow ---- in angle-bracket autolinks.
The uri parser is designed for bare URIs.  In angle-bracket contexts,
we can be sure that we don't have trailing punctuation.  So
`<http://openclipart.org/detail/22566/lego-smiley----happy-by-pitr>`
should work now.

Closes .
2013-02-28 22:05:22 -08:00
John MacFarlane
07e8cedf2b Make implicit_header_references work with explicit header ids.
(Markdown reader.)
2013-02-21 19:53:35 -08:00
John MacFarlane
cc410a71b5 Allow & in emails (for entities).
Added tests for entities in titles and links.
Closes .
2013-02-15 23:02:17 -08:00