summaryrefslogtreecommitdiff
path: root/js/lib/inlines.js
AgeCommit message (Collapse)Author
2014-12-25Fixed infinite loop in JS parser for link-in-link-in-image.John MacFarlane
Partially addresses #252. This fixes the infinite loop, and brings the JS parser into agreement with cmark, but both still have bad output in this case, so more work is needed.
2014-12-25Improved rules for emphasis and strong emphasis.John MacFarlane
This improves parsing of emphasis around punctuation. Background: http://talk.commonmark.org/t/emphasis-inside-strong-broken-in-js-implementation-when-parenthesis-involved/903/6 The basic idea of the change is that if the delimiter is part of a delimiter clump that has punctuation to the left and a normal character (non-space, non-punctuation) to the right, it can only be an opener. If it has punctuation to the right and a normal character (non-space, non-punctuation) to the left, it can only be a closer. This handles cases like **Gomphocarpus (*Gomphocarpus physocarpus*, syn. *Asclepias physocarpa*)** and **foo "*bar*" foo** better than before. The spec section on Emphasis and Strong Emphasis has been extensively revised. The C and JS implementations have been brought up to date, and all tests pass.
2014-12-10Further delinting efforts.John MacFarlane
2014-12-10More js delinting.John MacFarlane
2014-12-10More js delinting.John MacFarlane
2014-11-25Rename NODE_STRING -> NODE_TEXT.John MacFarlane
In JS, use 'Text' instead of 'Str'. In spec, use "plain textual content" instead of "strings."
2014-11-22Fixed #214 C and JS implementations.John MacFarlane
They were gobbling whitespace after shortcut reference links, e.g. [foo] bar [foo]: url Closes #214.
2014-11-10Allow images to contain images.John MacFarlane
2014-11-10jshint improvements.John MacFarlane
2014-11-10Stack-based link handling in js. All tests pass.John MacFarlane
2014-11-09Rewrote parseLink in js consistent with the C and spec.John MacFarlane
2014-11-09Added processEmphasis, run at end of parseInlines.John MacFarlane
2014-11-09Changed parseEmphasis to just put things on stack.John MacFarlane
2014-11-03Removed artificial rule for emph/strong markers.John MacFarlane
Previously there was a rule that nothing in a string of more than 3 `*` or `_` characters could close or start emphasis. This was artifical and led to strange asymmetries, e.g. you could have `*a *b**` emph within emph but not `**a **b****` strong within strong. The new parsing strategy makes it easy to remove this limitation. Spec, js, and c implementations have been updated. Spec might need some further grooming.
2014-10-24js: Removed memoization.John MacFarlane
It is no longer needed with the new stack-based emphasis parsing.
2014-10-24js: Use linked list instead of array for emphasis_openers stack.John MacFarlane
2014-10-24js: renamed emph_stack -> emphasis_openers.John MacFarlane
2014-10-23inlines.js: Implemented stack-based emph parsing.John MacFarlane
2014-10-18Add unescapeString as method of InlineParser.John MacFarlane
2014-10-18Factored out inlines.js from index.js.John MacFarlane