Patch #37713 » 0001-add-rel-noopener-to-all-external-links-with-a-target.patch
| lib/redmine/wiki_formatting/common_mark/external_links_filter.rb | ||
|---|---|---|
| 43 | 43 |
klass, |
| 44 | 44 |
(scheme == "mailto" ? "email" : "external") |
| 45 | 45 |
].compact.join " " |
| 46 | ||
| 47 |
if node["target"].present? && scheme != "mailto" |
|
| 48 |
rel = node["rel"]&.split || [] |
|
| 49 |
rel << "noopener" |
|
| 50 |
node["rel"] = rel.join(" ")
|
|
| 51 |
end |
|
| 46 | 52 |
end |
| 47 | 53 |
doc |
| 48 | 54 |
end |
| test/unit/lib/redmine/wiki_formatting/common_mark/external_links_filter_test.rb | ||
|---|---|---|
| 50 | 50 |
filter(%(<a href="http://example.com/foo#bar#">Malformed URI</a>)) |
| 51 | 51 |
end |
| 52 | 52 |
end |
| 53 | ||
| 54 |
def test_external_links_with_target_get_rel_noopener |
|
| 55 |
assert_equal %(<a target="_blank" href="http://example.net/" class="external" rel="noopener">link</a>), filter(%(<a target="_blank" href="http://example.net/">link</a>)) |
|
| 56 |
assert_equal %(<a target="_blank" href="http://example.net/" rel="nofollow noopener" class="external">link</a>), filter(%(<a target="_blank" href="http://example.net/" rel="nofollow">link</a>)) |
|
| 57 |
end |
|
| 53 | 58 |
end |
| 54 | 59 |
end |