Project

General

Profile

Defect #31695 » fixed-31695.patch

Yuichi HARADA, 2019-07-08 10:34

View differences:

lib/redmine/wiki_formatting/html_parser.rb
36 36
        doc.scrub!(WikiTags.new(tags))
37 37
        doc.scrub!(:newline_block_elements)
38 38

  
39
        Loofah.remove_extraneous_whitespace(doc.text).strip.squeeze(' ').gsub(/^ +/, '')
39
        Loofah.remove_extraneous_whitespace(doc.text(:encode_special_chars => false)).strip.squeeze(' ').gsub(/^ +/, '')
40 40
      end
41 41

  
42 42
      class WikiTags < ::Loofah::Scrubber
......
54 54
          when String
55 55
            node.add_next_sibling Nokogiri::XML::Text.new(formatting, node.document)
56 56
            node.remove
57
          when Proc
58
            node.add_next_sibling formatting.call(node)
59
            node.remove
57 60
          else
58 61
            CONTINUE
59 62
          end
lib/redmine/wiki_formatting/markdown/html_parser.rb
34 34
          'h3' => {:pre => "\n\n### ", :post => "\n\n"},
35 35
          'h4' => {:pre => "\n\n#### ", :post => "\n\n"},
36 36
          'h5' => {:pre => "\n\n##### ", :post => "\n\n"},
37
          'h6' => {:pre => "\n\n###### ", :post => "\n\n"}
37
          'h6' => {:pre => "\n\n###### ", :post => "\n\n"},
38
          'a' => lambda {|node| node.content.present? ? %Q| [#{node.content}](#{node.attributes['href'].value}) | : %Q| #{node.attributes['href'].value} |}
38 39
        )
39 40
      end
40 41
    end
lib/redmine/wiki_formatting/textile/html_parser.rb
34 34
          'h3' => {:pre => "\n\nh3. ", :post => "\n\n"},
35 35
          'h4' => {:pre => "\n\nh4. ", :post => "\n\n"},
36 36
          'h5' => {:pre => "\n\nh5. ", :post => "\n\n"},
37
          'h6' => {:pre => "\n\nh6. ", :post => "\n\n"}
37
          'h6' => {:pre => "\n\nh6. ", :post => "\n\n"},
38
          'a' => lambda {|node| node.content.present? ? %Q| "#{node.content}":#{node.attributes['href'].value} | : %Q| #{node.attributes['href'].value} |}
38 39
        )
39 40
      end
40 41
    end
test/unit/lib/redmine/wiki_formatting/markdown_html_parser_test.rb
28 28
  def test_should_convert_tags
29 29
    assert_equal 'A **simple** html snippet.',
30 30
      @parser.to_text('<p>A <b>simple</b> html snippet.</p>')
31

  
32
    assert_equal 'foo [bar](http://example.com/) baz',
33
      @parser.to_text('foo<a href="http://example.com/">bar</a>baz')
34
    assert_equal 'foo http://example.com/ baz',
35
      @parser.to_text('foo<a href="http://example.com/"></a>baz')
31 36
  end
32 37
end
test/unit/lib/redmine/wiki_formatting/textile_html_parser_test.rb
28 28
  def test_should_convert_tags
29 29
    assert_equal 'A *simple* html snippet.',
30 30
      @parser.to_text('<p>A <b>simple</b> html snippet.</p>')
31

  
32
    assert_equal 'foo "bar":http://example.com/ baz',
33
      @parser.to_text('foo<a href="http://example.com/">bar</a>baz')
34
    assert_equal 'foo http://example.com/ baz',
35
      @parser.to_text('foo<a href="http://example.com/"></a>baz')
31 36
  end
32 37
end
(1-1/3)