Merge pull request #2745 from basecamp/excert-truncation
Pre-truncate excerpt before running replacement regexes
This commit is contained in:
@@ -3,9 +3,10 @@ module ExcerptHelper
|
|||||||
return "" if content.blank?
|
return "" if content.blank?
|
||||||
|
|
||||||
text = content.respond_to?(:to_plain_text) ? content.to_plain_text : content.to_s
|
text = content.respond_to?(:to_plain_text) ? content.to_plain_text : content.to_s
|
||||||
|
text = text.first(length * 2)
|
||||||
text = text.gsub(/^>\s*(.*)$/m, '> \1')
|
text = text.gsub(/^>\s*(.*)$/m, '> \1')
|
||||||
text = text.gsub(/^\s*[-+]\s*(.*)$/m, '• \1')
|
text = text.gsub(/^\s*[-+]\s*(.*)$/m, '• \1')
|
||||||
text = text.gsub(/^\d+\.\s*(.*)$/m) { |m| m }
|
text = text.gsub(/^\s*(\d+\.)\s*(.*)$/m, '\1 \2')
|
||||||
text = text.gsub(/\s+/, " ").strip
|
text = text.gsub(/\s+/, " ").strip
|
||||||
text.truncate(length)
|
text.truncate(length)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ class ExcerptHelperTest < ActionView::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "ol" do
|
test "ol" do
|
||||||
assert_excerpt("99. Hello world", "99. Hello world")
|
assert_excerpt("99. Hello world", "99. Hello world")
|
||||||
|
assert_excerpt("99. Hello world", " 99. Hello world")
|
||||||
end
|
end
|
||||||
|
|
||||||
test "large spaces" do
|
test "large spaces" do
|
||||||
|
|||||||
Reference in New Issue
Block a user