feat: escape single open brackets after a close bracket #1237
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.
Context
For a text with an opening bracket right after a complete bracket, the remark library will drop the second opening bracket because it thinks the second part is part of the link reference, will start parsing it as such, but when no closing bracket was found, it only retains the text.
This may look unexpected for users, so this PR provides a workaround to retain the second opening bracket by visiting the tree and regex escaping it, so that it can be retained.
🧰 Changes
Created an additional plugin to the processor to revisit the created AST of a markdown, visits linkRefernce nodes, and compares span recorded in the node positions with the expected [label] length to find dropped ['s & replace it with text node with the bracket reattached
I used this approach instead of just escaping the brackets because it was hard for me to distinguish if the text is inaccurate code block, jsx, etc where we don't want to touch it.
Let me know if there's another approach or if this is too complicated for this case, I feel like the amount of cases of this appearing would be low.
🧬 QA & Testing