Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Now we just use the former Key' (string contents),
renamed Key. lookupKeySrc and fromKey are no longer
eport. Key', toKey' and KeyTable' have become Key,
toKey, and KeyTable.
|
|
* Use Builder's Inlines/Blocks instead of lists.
* Return values in the reader monad, which are then
run (at the end of parsing) against the final
parser state. This allows links, notes, and
example numbers to be resolved without a second
parser pass.
* An effect of using Builder is that everything is
normalized automatically.
* New exports from Text.Pandoc.Parsing:
widthsFromIndices, NoteTable', KeyTable', Key', toKey',
withQuoteContext, singleQuoteStart, singleQuoteEnd, doubleQuoteStart,
doubleQuoteEnd, ellipses, apostrophe, dash
* Updated opendocument tests.
* Don't derive Show for ParserState.
* Benchmarks: markdown reader takes 82% of the time it took before.
Markdown writer takes 92% of the time (here the speedup is probably
due to the fact that everything is normalized by default).
|
|
|
|
|
|
Still have not implemented individual tests for all the extensions
in the markdown writer.
|
|
|
|
Test individually for the extensions.
|
|
|
|
|
|
|
|
|
|
|
|
Better to keep reader and writer options separate.
|
|
This is the beginning of a larger transition that will make
Options, not ParserState, the parameter of the read functions.
(Options will also be used in writers, in place of WriterOptions.)
Next step is to remove strict, replacing it with granular
tests for different extensions.
|
|
Technically this is required, according to the mardkown syntax
document, but Markdown.pl and other markdown processors are more
liberal.
|
|
|
|
|
|
|
|
|
|
Still, pipe tables are a huge performance drag. One benchmark:
With pipe tables, 1.25 sec (including this fix).
without pipe tables, 1.05 sec.
|
|
* All tables now require at least one body row.
* Renamed from 'extra' to 'pipe' tables.
* Moved functions from Parsing to Readers.Markdown.
* Cleaned up code; revised to parse in one pass rather than
parsing a raw string, splitting it, and parsing the components.
* Allow pipe tables without pipes on the ends (as PHP Markdown Extra
does).
|
|
Markdown extra tables [part of the multi-markdown syntax for tables]
|
|
|
|
No other module directly imports Parsec. This will make it easier
to change the parsing backend in the future, if we want to.
|
|
|
|
|
|
This avoids exponential parsing blowups with long strings
of these characters. Closes #507.
|
|
So, for example:
1. * x
* y
2. * z
* w
|
|
Previously pandoc would produce incorrect results on this:
~~~
[not a link]: /url
~~~
[not a link]
because it would recognize "not a link" as a reference link
definition on the first pass. This fix causes the first pass
to skip delimited code blocks.
|
|
Only tables whose lines begin with a "|" are supported.
There are 2 warnings about unused variables when compiling.
|
|
(1) Attributes can contain line breaks.
(2) Values in key-value attributes can be surrounded by either
double or single quotes, or left unquoted if they contain no spaces.
|
|
This avoids exponential lookahead in parasitic cases, like
a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**.
Added stateMaxNestingLevel to ParserState.
We set this to 6, so you can still have Emph inside Emph, just not
indefinitely.
|
|
Moved characterReference parser to Text.Pandoc.Parsing.
decodeCharacterReferences is now replaced by fromEntities
in Text.Pandoc.XML.
|
|
* The new reader is more robust, accurate, and extensible.
It is still quite incomplete, but it should be easier
now to add features.
* Text.Pandoc.Parsing: Added withRaw combinator.
* Markdown reader: do escapedChar before raw latex inline.
Otherwise we capture commands like \{.
* Fixed latex citation tests for new citeproc.
* Handle \include{} commands in latex.
This is done in pandoc.hs, not the (pure) latex reader.
But the reader exports the needed function, handleIncludes.
* Moved err and warn from pandoc.hs to Shared.
* Fixed tests - raw tex should sometimes have trailing space.
* Updated lhs-test for highlighting-kate changes.
|
|
|
|
Previously the ID attribute got lost if it didn't come first.
Now attributes can come in any order.
|
|
You can now write
```ruby
x = 2
```
instead of
~~~ {.ruby}
x = 2
~~~~
|
|
Closes #348. Closes #108.
|
|
Top line of table must not be followed by a blank line.
This bug caused slowdown on some files with hrules and tables,
and pandoc tried to interpret the hrules as the tops of
multiline tables.
|
|
This change also means that
[link with [link](/url)](/url)
will turn into
<p><a href="/url">link with link</a></p>
instead of
<p><a href="/url">link with [link](/url)</a></p>
|
|
Pandoc previously behaved like Markdown.pl for consecutive
lists of different styles. Thus, the following would be parsed
as a single ordered list, rather than an ordered list followed
by an unordered list:
1. one
2. two
- one
- two
This patch makes pandoc behave more sensibly, parsing this as
two lists. Any change in list type (ordered/unordered) or in
list number style will trigger a new list. Thus, the following
will also be parsed as two lists:
1. one
2. two
a. one
b. two
Since we regard this as a bug in Markdown.pl, and not something
anyone would ever rely on, we do not preserve the old behavior
even when `--strict` is selected.
|
|
* Added stateLastStrPos to ParserState. This lets us keep track
of whether we're parsing the position immediately after a 'str'.
If we encounter a ' in such a location, it must be an apostrophe,
and can't be a single quote start.
* Set this in the markdown, textile, html, and rst str parsers.
* Closes #360.
|
|
|
|
|
|
This solves a problem stemming from the fact that a parser
doesn't know what came *before* in the input stream.
Previously pandoc would parse
D'oh l'*aide*
as containing a single quoted "oh l", when both `'`s should
be apostrophes. (Issue #360.) There are two issues here.
(a) It is obvious that the first `'` is not an open quote,
becaues of the preceding `D`. This patch solves the problem.
(b) It is obvious to us that the second `'` is not an
open quote, because we see that *aide* is some text.
But getting a good algorithm that has good performance is
a bit tricky. You can't assume that `'` followed by `*`
is always an apostrophe:
*'this is quoted'*
This patch does not fix (b).
|
|
Closes #312.
|
|
|
|
|
|
Refactored escapedChar into escapedChar', escapedChar.
|