summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-10-02Char code optimizations in block parsers.John MacFarlane
2014-10-02Eliminated unnecessary variable.John MacFarlane
2014-10-02Changed peek() to return char code.John MacFarlane
Test char codes instead of strings. Small optimization (about 1% speed boost).
2014-09-30Unescape entities as well as backslashes in titles, URLs.John MacFarlane
This way URLs with entities will be properly percent encoded as in the C implementation.
2014-09-30unescape URI before escaping.John MacFarlane
If we already have %-encoded characters in the URI, we want to preserve them.
2014-09-30Added entity decoding.John MacFarlane
AST now contains parses entities as Str objects with unicode characters, not as 'Entity'. (Like the new C parser.)
2014-09-29Rename unescape -> unescapeBS to avoid confusion with built-in.John MacFarlane
2014-09-29Escape URIs.John MacFarlane
2014-09-29Merge branch 'master' into newemphasisJohn MacFarlane
Conflicts: Makefile js/stmd.js
2014-09-29Use charAt for browser compatibility.John MacFarlane
2014-09-26Only memoize during inline parsing.John MacFarlane
This cuts the performance hit. With memoization, we get roughly constant behavior in the fuzztest. Without it, not.
2014-09-26Restored memoization code.John MacFarlane
2014-09-26Used last_emphasis_closer to avoid unneeded scans for closer.John MacFarlane
This doesn't seem to help much.
2014-09-26Removed memoization code.John MacFarlane
2014-09-26Simple fallback if we don't match emphasis.John MacFarlane
The other approach led to wrong results on: *hi _there*
2014-09-24Suppress 'missing field initializer' warningsJohn MacFarlane
from gperf generated header.
2014-09-24Makefile: Use ?= so variables can be set on command line.John MacFarlane
2014-09-24Fixed bug that causes hang on bare `<` inside link label.John MacFarlane
2014-09-24Makefile: Use ?= so variables can be set on command line.John MacFarlane
2014-09-24Merge pull request #92 from meziantou/patch-1John MacFarlane
Fix some compatibility issues
2014-09-19spec: Fixed date, version.John MacFarlane
Closes #133.
2014-09-18Merge pull request #132 from JordanMilne/fix_render_leakJohn MacFarlane
Fix memory leak when rendering images as HTML
2014-09-18Fix memory leak when rendering images as HTMLJordan Milne
2014-09-18Merge pull request #130 from JordanMilne/find_special_lookupJohn MacFarlane
Use a lookup table for subject_find_special_char
2014-09-18Use a lookup table for subject_find_special_charJordan Milne
2014-09-17Merge pull request #97 from Knagis/masterJohn MacFarlane
Updated runtests.pl to support Windows
2014-09-18Add missing headerVicent Marti
2014-09-17Merge pull request #66 from vmg/revampJohn MacFarlane
Enfastenate the C Parsenator
2014-09-17Use helper functions to simplify code.John MacFarlane
2014-09-17Better handle trailing backslashes in ATX-style headersJordan Milne
Previously something like '# `\' would hang the parser while it waited for an extra character that wasn't there.
2014-09-16Revert "Re-added backtracking and memoization."John MacFarlane
This reverts commit ac8529c9f55da7fdc1186e3f34313cf411de6e71.
2014-09-16Re-added backtracking and memoization.John MacFarlane
Gives better results for things like **foo*
2014-09-16Small performance tweaks.John MacFarlane
2014-09-16Fixed bug in parsing `* **a** b*` etc.John MacFarlane
2014-09-16New parseEmphasis algorithm.John MacFarlane
- State machine for emphasis parsing. - This would require some adjustments to the spec and spec examples. - It currently blows the stack on `tricky'. - Memoization code has been commented out. - Inline parsers return arrays.
2014-09-16Merge pull request #124 from rlidwka/patch-1John MacFarlane
typo fix
2014-09-16typo fixAlex Kocharin
2014-09-15Merge pull request #90 from ousia/masterJohn MacFarlane
typo replacing CommonMark corrected
2014-09-15Cleanup external APIsVicent Marti
2014-09-11Fixed performance regression from eccc23dc8d.John MacFarlane
2014-09-11Fixed typo.John MacFarlane
starting
2014-09-11jshint improvements.John MacFarlane
2014-09-11Reindented source with js2-mode.John MacFarlane
2014-09-11Clarified code logic for last_emphasis_closer.John MacFarlane
2014-09-11Add check for null in last_emphasis_closer.John MacFarlane
2014-09-11Renamed last_closer -> last_emphasis_closer.John MacFarlane
2014-09-11Added last_closer to Inline object.John MacFarlane
This helps us avoid unneeded backtracking in pathological input of the form: *a **a *a **a *a etc. If we get to position k without finding a closing delimiter, then backtrack to 1, we can assume we won't find a closing delimiter when parsing forward again. This could no doubt be polished up, e.g. by making it sensitive to the kind of delimiter.
2014-09-11Fixed bug.John MacFarlane
2014-09-11Updated test cases in spec to reflect last change.John MacFarlane
2014-09-11Updated spec (but not yet examples) with new rules.John MacFarlane
These reflect the current parsing algorithm. We now get a symmetry that we lacked before: **a* b* *a *b** are both emphasis within emphasis. One asymmetry remains: **a* has no emphasis, while *a** has emphasis. Further tweaking of the algorithm could regularize this.