Merge pull request #1981 from vikhyat/spoilers

Preserve spoiler tags in post excerpts
This commit is contained in:
Régis Hanol 2014-02-20 12:31:52 +01:00
commit 3e7ae1c0f4
2 changed files with 15 additions and 0 deletions

View File

@ -49,8 +49,16 @@ class ExcerptParser < Nokogiri::XML::SAX::Document
include_tag(name, attributes)
@in_a = true
end
when "aside"
@in_quote = true
when "div", "span"
# Preserve spoilers
if attributes.any? {|x| x == ["class", "spoiler"] }
include_tag("span", attributes)
@in_spoiler = true
end
end
end
@ -65,6 +73,9 @@ class ExcerptParser < Nokogiri::XML::SAX::Document
characters(" ")
when "aside"
@in_quote = false
when "div", "span"
characters("</span>", false, false, false) if @in_spoiler
@in_spoiler = false
end
end

View File

@ -92,6 +92,10 @@ describe PrettyText do
PrettyText.excerpt("<img src='http://cnn.com/a.gif' title='car'>", 100, markdown_images: true).should == "![car](http://cnn.com/a.gif)"
end
it "should keep spoilers" do
PrettyText.excerpt("<div class='spoiler'><img src='http://cnn.com/a.gif'></div>", 100).should == "<span class='spoiler'>[image]</span>"
PrettyText.excerpt("<span class='spoiler'>spoiler</div>", 100).should == "<span class='spoiler'>spoiler</span>"
end
end
it "should have an option to strip links" do