Project

General

Profile

Patch #42737 » 0001-Switch-from-a-multi-pass-approach-to-a-single-pass-a.patch

Marius BĂLTEANU, 2026-02-03 04:19

View differences:

lib/redmine/wiki_formatting/common_mark/formatter.rb
73 73
          html = MarkdownFilter.new(@text, PIPELINE_CONFIG).call
74 74
          fragment = Redmine::WikiFormatting::HtmlParser.parse(html)
75 75
          SANITIZER.call(fragment)
76
          SCRUBBERS.each do |scrubber|
77
            fragment.scrub!(scrubber)
76
          scrubber = Loofah::Scrubber.new do |node|
77
            SCRUBBERS.each do |s|
78
              s.scrub(node)
79
              break if node.parent.nil?
80
            end
78 81
          end
82
          fragment.scrub!(scrubber)
79 83
          fragment.to_s
80 84
        end
81 85
      end
lib/redmine/wiki_formatting/html_sanitizer.rb
27 27
      def self.call(html)
28 28
        fragment = HtmlParser.parse(html)
29 29
        SANITIZER.call(fragment)
30
        SCRUBBERS.each do |scrubber|
31
          fragment.scrub!(scrubber)
30
        scrubber = Loofah::Scrubber.new do |node|
31
          SCRUBBERS.each do |s|
32
            s.scrub(node)
33
            break if node.parent.nil?
34
          end
32 35
        end
36
        fragment.scrub!(scrubber)
33 37
        fragment.to_s
34 38
      end
35 39
    end
lib/redmine/wiki_formatting/textile/formatter.rb
39 39
        def to_html(*rules)
40 40
          html = @filter.to_html(rules)
41 41
          fragment = Loofah.html5_fragment(html)
42
          SCRUBBERS.each do |scrubber|
43
            fragment.scrub!(scrubber)
42
          scrubber = Loofah::Scrubber.new do |node|
43
            SCRUBBERS.each do |s|
44
              s.scrub(node)
45
              break if node.parent.nil?
46
            end
44 47
          end
48
          fragment.scrub!(scrubber)
45 49
          fragment.to_s
46 50
        end
47 51
      end
(3-3/4)