Fix error on mention link with Nokogiri v1.11.0+ #26
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.
This pull request fixes an error on a mention link with Nokogiri v1.11.0+.
Problem
With Nokogiri v1.11.0, the MentionLInk filter raises an error.
We can confirm the error with the test.
Cause
We can find the cause from the release note of nokogiri v1.11.0.
https://github.com/sparklemotion/nokogiri/releases/tag/v1.11.0
In short,
Node#replace
raises an error if a node doesn't have a parent.A node's parent will be nil if
Node#replace
is already called.For example:
In our case, the
link_builder
callsNode#replace
if it finds correct mentions.For example:
mato/test/html_filters/mention_link_test.rb
Line 24 in e3ea0be
So we need to skip
Node#replace
to cleanup for correct mentions, but it doesn't.Solution
Skip
Node#replace
to cleanup for correct mentions.