summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/redmine/wiki_formatting/html_parser.rb16
-rw-r--r--lib/redmine/wiki_formatting/markdown/html_parser.rb3
-rw-r--r--lib/redmine/wiki_formatting/textile/html_parser.rb3
-rw-r--r--test/unit/lib/redmine/wiki_formatting/html_parser_test.rb5
4 files changed, 21 insertions, 6 deletions
diff --git a/lib/redmine/wiki_formatting/html_parser.rb b/lib/redmine/wiki_formatting/html_parser.rb
index 9d83497bd..a81d9d9e7 100644
--- a/lib/redmine/wiki_formatting/html_parser.rb
+++ b/lib/redmine/wiki_formatting/html_parser.rb
@@ -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
- node.add_next_sibling Nokogiri::XML::Text.new("#{formatting[:pre]}#{node.content}#{formatting[:post]}", node.document)
- node.remove
+ 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
diff --git a/lib/redmine/wiki_formatting/markdown/html_parser.rb b/lib/redmine/wiki_formatting/markdown/html_parser.rb
index 14f89373a..e2dd1a78c 100644
--- a/lib/redmine/wiki_formatting/markdown/html_parser.rb
+++ b/lib/redmine/wiki_formatting/markdown/html_parser.rb
@@ -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
diff --git a/lib/redmine/wiki_formatting/textile/html_parser.rb b/lib/redmine/wiki_formatting/textile/html_parser.rb
index 201e69c64..fba6b1d17 100644
--- a/lib/redmine/wiki_formatting/textile/html_parser.rb
+++ b/lib/redmine/wiki_formatting/textile/html_parser.rb
@@ -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
diff --git a/test/unit/lib/redmine/wiki_formatting/html_parser_test.rb b/test/unit/lib/redmine/wiki_formatting/html_parser_test.rb
index 4662aeaeb..8f6ff5ab7 100644
--- a/test/unit/lib/redmine/wiki_formatting/html_parser_test.rb
+++ b/test/unit/lib/redmine/wiki_formatting/html_parser_test.rb
@@ -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