FIX: pinned topic excerpt is not properly truncated

This commit is contained in:
Régis Hanol 2013-05-10 12:28:17 +02:00
parent 942f168ab6
commit 297680c28d
2 changed files with 5 additions and 7 deletions

View file

@ -247,13 +247,9 @@ module PrettyText
end
def self.get_excerpt(html, length, options)
me = self.new(length,options)
parser = Nokogiri::HTML::SAX::Parser.new(me)
begin
copy = "<div>"
copy << html unless html.nil?
copy << "</div>"
parser.parse(html) unless html.nil?
rescue DoneException
# we are done
@ -302,8 +298,9 @@ module PrettyText
def characters(string, truncate = true, count_it = true, encode = true)
return if @in_quote
encode = encode ? lambda{|s| ERB::Util.html_escape(s)} : lambda {|s| s}
if @current_length + string.length > @length && count_it
@excerpt << encode.call(string[0..(@length-@current_length)-1]) if truncate
if count_it && @current_length + string.length > @length
length = [0, @length - @current_length - 1].max
@excerpt << encode.call(string[0..length]) if truncate
@excerpt << "&hellip;"
@excerpt << "</a>" if @in_a
raise DoneException.new
@ -318,4 +315,3 @@ module PrettyText
end
end

View file

@ -131,6 +131,7 @@ test
it "should truncate stuff properly" do
PrettyText.excerpt("hello world",5).should == "hello&hellip;"
PrettyText.excerpt("<p>hello</p><p>world</p>",6).should == "hello w&hellip;"
end
it "should insert a space between to Ps" do
@ -168,6 +169,7 @@ test
it "should handle nil" do
PrettyText.excerpt(nil,100).should == ''
end
end