Remove parent divs only once for each ul
element
#2080
Merged
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.
Fixes #2039
The issue was that, in
Docs::Cpref::CleanHtmlFilter
, we had the following:This was fine for almost all cases, however, the page for
std::vector::vector
had more than oneul
element inside the samediv
(in the Complexity section).This meant that, as we iterated over each
ul
element, because 2 or more had the same parentdiv
, for the firstul
with a sibling, we'd correctly pop all it's siblings out of the parent div, but when we came around to the second siblingul
, it's parentdiv
was now some outerdiv
on the page, and that would get removed. This would repeat itself how many siblingul
elements there might be on the page.I modified the code to simply grab the parent divs, remove the duplicates and then execute the logic to pop out it's children and remove itself.
All tests passed locally, but when I went ahead to add tests to prevent this bug from reappearing, I noticed that there doesn't seem to be any tests for specific scrapers or filters, is that by choice?