Module: TruncateHTML

Defined in:
lib/middleman-blog/truncate_html.rb

Overview

Class Method Summary collapse

Class Method Details

.truncate_html(text, max_length, ellipsis = "...") ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/middleman-blog/truncate_html.rb', line 10

def self.truncate_html(text, max_length, ellipsis = "...")
  ellipsis_length = ellipsis.length
  text = text.encode('UTF-8') if text.respond_to?(:encode)
  doc = Nokogiri::HTML::DocumentFragment.parse text
  content_length = doc.inner_text.length
  actual_length = max_length - ellipsis_length
  if content_length > actual_length 
    doc.truncate(actual_length, ellipsis).inner_html
  else
    text
  end
end