Update: Replace Markdown parser (fixes #125, fixes #186) #188
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The previous parser,
remark-parse
v7, included a transitive dependency on an npm package with a security vulnerability (see #186). Newer versions ofremark-parse
are wrappers around a new underlying parser,mdast-util-from-markdown
, so we can use that directly.I had thought the upgrade was going to be more difficult because the new parser no longer supplies per-line indent information, but we're already calculating it in
getBlockRangeMap()
, so I included the indentation in the each line'sRangeMap
and read from there instead.The previous parser also failed to preserve
\r\n
line endings, replacing them all with\n
. The new parser correctly preserves\r\n
line endings, finally providing a fix for the failing test case I cherry-picked from #125. The improved behavior also uncovered an incorrect line ending test assertion that this commit corrects.While this change is in theory fully compatible, containing just bug fixes, I'm tagging it
Update:
in case there are compatibility changes in the new parser. This is consistent with #175, which upgradedremark-parse
v5 to v7 in a semver-minorUpdate:
change.