summaryrefslogtreecommitdiff
path: root/js/lib
AgeCommit message (Collapse)Author
2015-01-09Don't include string_content in output of toAST().John MacFarlane
2015-01-09JS: use c rather than string_content property for code blocks, html.John MacFarlane
string_content is just for the raw string content that will be parsed as inlines, not for the 'real' content of the block element.
2015-01-09Rewrote HTML escaping for big performance gain.John MacFarlane
2015-01-09Comment fix.John MacFarlane
2015-01-09Simplified reMain for more performance gains.John MacFarlane
2015-01-09Simplified reMain, with AST manipulation for 2-space hardbreak.John MacFarlane
Small performance improvement.
2015-01-09Don't initialize strings, string_content to defined value.John MacFarlane
2015-01-09Made `tight` a property of `list_data`.John MacFarlane
2015-01-09Initialize more properties of Node. Even better performance!John MacFarlane
2015-01-09Initialize more fields in Node. Better performance.John MacFarlane
2015-01-09Initialize more fields in Node.John MacFarlane
This helps with performance.
2015-01-09Removed makeBlock. Use new Node directly. Initialize more fields.John MacFarlane
2015-01-09JS: replace NUL characters with U+FFFD, as per spec.John MacFarlane
2015-01-09More JS linter fixes.John MacFarlane
2015-01-09JS linter improvements.John MacFarlane
(Note: this is helping performance. We have regained everything we lost with the last major change, and more.)
2015-01-09Rename js/lib/html-renderer.js -> js/lib/html.js.John MacFarlane
2015-01-09JS linter cleanups.John MacFarlane
2015-01-09Use linked list instead of arrays for AST.John MacFarlane
Use the same doubly linked node structure that cmark uses. The primary advantages of this change are (a) simplified code, especially in the renderers, and (b) elimination of the need for recursion, so we can render deeply-nested structures without a stack overflow. A node walker has also been added, for easy AST traversal. * Added js/lib/node.js for nodes. Includes a node walker. * All modules updated to use node structures. * Regularized position information into pos property. * Performance is slightly worse than before, but only marginally, and no doubt there are more optimizations that can be done.
2015-01-07js: Use children instead of inline_content for Paragraph.John MacFarlane
2015-01-07js: Use children rather than 'c' for Emph and Strong contents.John MacFarlane
Now we use 'children' uniformly, in both inlines and blocks, for child nodes.
2015-01-07js: Changed 'label' in Link, Image to 'children'.John MacFarlane
This matches the C impl. Also removed an unused property.
2015-01-03Fixed CDATA regex in js.John MacFarlane
Closes #267.
2015-01-03Improved js regex for html comments.John MacFarlane
Closes #263. Note, this only affects inline comments. With block comments we parse differently, and don't guarantee that only valid HTML5 comments will pass. This all needs to be made more explicit in the spec. However, this fix addresses the cpu problem.
2014-12-27Minor whitespace fixes.John MacFarlane
2014-12-27Fixed shadowing error.John MacFarlane
2014-12-25JS: fixed parsing of link-in-link-in-image.John MacFarlane
Partially addresses #252. Still need to: - update C parser. - put an example in the spec.
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-12-10More linter corrections to js code.John MacFarlane
2014-12-10More eslint corrections.John MacFarlane
2014-12-10linter fixes to html5-entities.js and index.js.John MacFarlane
2014-12-10html5-entities.js: put object property 'in' in quotes.John MacFarlane
...this is a JS keyword, and at least IE8 gets confused by it in this context.
2014-12-09Avoid using non-ascii characters in js code.John MacFarlane
It seems to confuse IE8.
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-23js: use 'CodeBlock' in AST for all code blocks.John MacFarlane
Don't distinguish fenced, indented.
2014-11-23Revert "Revert "Remove distinction btw atx and setext header in AST.""John MacFarlane
This reverts commit 4570eb2bff2e1b71fa5b6408abbc69c98ff5ff24.
2014-11-22Revert "Remove distinction btw atx and setext header in AST."John MacFarlane
This reverts commit a71423f6ee1b77d9f79d42599ea00b4ca99f5da0. Not quite sure about this change, so reverting for now. Note that we still have a distinction between fenced and indented code blocks in the AST. These two distinctions seem to stand or fall together.
2014-11-22Remove distinction btw atx and setext header in AST.John MacFarlane
Now we just have 'header' -- Setext and ATX are just two ways of forming these; it's not a semantic difference that should remain in the AST.
2014-11-22Fixed #192.John MacFarlane
The C and JS implementations were not registering blank lines after atx headers for purposes of tight/loose list calculation. Exmaple: * item * # block1 ## block2
2014-11-22Updated JS and C implementations for #209.John MacFarlane
A setext header was being treated a if it were a blank line for purposes of tight/loose list determination. Closes #209.
2014-11-22js html renderer: formatting changes to align with changes in spec.John MacFarlane
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-17Fix Issue 202 - Catch RangeError thrown by native String.fromCodePoint (js ↵Guillaume Crico
implementation) When using a JS engine that provides a native String.fromCodePoint ES6 implementation (e.g. SpiderMonkey), a RangeError is thrown if the codepoint is invalid. When adding the from-code-point.js polyfill, the js implementation was modified in order to handle invalid code point by returning the 0xFFFD placeholder glyph. So this is not a real "polyfill", but an specific implementation (adapted to the parser needs). So, if a native String.fromCodePoint implementation is availbale, the fromCodePoint function should catch the RangeError and return the 0xFFFD placeholder glyph.
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