Remove style tags from html body (#15716).

git-svn-id: http://svn.redmine.org/redmine/trunk@14315 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2015-06-16 18:23:25 +00:00
parent 95f7471e9c
commit e911ce7cb4
4 changed files with 21 additions and 6 deletions

View File

@@ -23,7 +23,8 @@ module Redmine
class_attribute :tags
self.tags = {
'br' => {:post => "\n"}
'br' => {:post => "\n"},
'style' => ''
}
def self.to_text(html)
@@ -44,9 +45,16 @@ module Redmine
def scrub(node)
formatting = @tags_to_text[node.name]
return CONTINUE unless formatting
case formatting
when Hash
node.add_next_sibling Nokogiri::XML::Text.new("#{formatting[:pre]}#{node.content}#{formatting[:post]}", node.document)
node.remove
when String
node.add_next_sibling Nokogiri::XML::Text.new(formatting, node.document)
node.remove
else
CONTINUE
end
end
end
end

View File

@@ -32,7 +32,8 @@ module Redmine
'h3' => {:pre => "\n\n### ", :post => "\n\n"},
'h4' => {:pre => "\n\n#### ", :post => "\n\n"},
'h5' => {:pre => "\n\n##### ", :post => "\n\n"},
'h6' => {:pre => "\n\n###### ", :post => "\n\n"}
'h6' => {:pre => "\n\n###### ", :post => "\n\n"},
'style' => ''
}
end
end

View File

@@ -33,7 +33,8 @@ module Redmine
'h3' => {:pre => "\n\nh3. ", :post => "\n\n"},
'h4' => {:pre => "\n\nh4. ", :post => "\n\n"},
'h5' => {:pre => "\n\nh5. ", :post => "\n\n"},
'h6' => {:pre => "\n\nh6. ", :post => "\n\n"}
'h6' => {:pre => "\n\nh6. ", :post => "\n\n"},
'style' => ''
}
end
end

View File

@@ -27,4 +27,9 @@ class Redmine::WikiFormatting::HtmlParserTest < ActiveSupport::TestCase
assert_equal "A html snippet with\na new line.",
@parser.to_text('<p>A html snippet with<br>a new line.</p>')
end
def test_should_remove_style_tags_from_body
assert_equal "Text",
@parser.to_text('<html><body><style>body {font-size: 0.8em;}</style>Text</body></html>')
end
end