mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-27 17:46:05 -05:00
FIX: pinned topic excerpt is not properly truncated
This commit is contained in:
parent
942f168ab6
commit
297680c28d
2 changed files with 5 additions and 7 deletions
|
@ -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 << "…"
|
||||
@excerpt << "</a>" if @in_a
|
||||
raise DoneException.new
|
||||
|
@ -318,4 +315,3 @@ module PrettyText
|
|||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
|
@ -131,6 +131,7 @@ test
|
|||
|
||||
it "should truncate stuff properly" do
|
||||
PrettyText.excerpt("hello world",5).should == "hello…"
|
||||
PrettyText.excerpt("<p>hello</p><p>world</p>",6).should == "hello w…"
|
||||
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
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue