From e6f00370eebc7f812b44cf38d7bcb7000df06f5e Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Wed, 30 Apr 2025 22:40:18 +0000 Subject: [PATCH] Fixes broken references for multiple footnote usage (#42648). git-svn-id: https://svn.redmine.org/redmine/trunk@23726 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- .../common_mark/sanitization_filter.rb | 2 +- .../common_mark/sanitization_filter_test.rb | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/redmine/wiki_formatting/common_mark/sanitization_filter.rb b/lib/redmine/wiki_formatting/common_mark/sanitization_filter.rb index 584df9e0d..ed9bfd83f 100644 --- a/lib/redmine/wiki_formatting/common_mark/sanitization_filter.rb +++ b/lib/redmine/wiki_formatting/common_mark/sanitization_filter.rb @@ -105,7 +105,7 @@ module Redmine node = env[:node] return unless node.name == "a" return unless node.has_attribute?("id") - return if node.name == "a" && node["id"] =~ /\Afnref-\d+\z/ + return if node.name == "a" && node["id"] =~ /\Afnref(-\d+){1,2}\z/ node.remove_attribute("id") } diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb index 0918f7fc2..09ef58dd0 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb @@ -47,10 +47,14 @@ if Object.const_defined?(:Commonmarker) end def test_should_support_footnotes - input = %(foo) - assert_equal input, filter(input) - input = %(
  1. footnote
) - assert_equal input, filter(input) + [ + %(foo), + %(foo), + %(
  1. footnote
), + ].each do | input | + assert_equal input, filter(input) + assert_equal input, filter(input) + end end def test_should_remove_invalid_ids