mirror of
https://github.com/redmine/redmine.git
synced 2025-11-06 05:16:12 +01:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user