Module: Perron::Resource::TableOfContent

Extended by:
ActiveSupport::Concern
Included in:
Perron::Resource
Defined in:
lib/perron/resource/table_of_content.rb

Defined Under Namespace

Classes: Builder

Instance Method Summary collapse

Instance Method Details

#table_of_content(levels: %w[h1 h2 h3 h4 h5 h6])) ⇒ Object Also known as: table_of_contents, toc



8
9
10
11
12
13
14
15
# File 'lib/perron/resource/table_of_content.rb', line 8

def table_of_content(levels: %w[h1 h2 h3 h4 h5 h6])
  return [] if content.blank? || .toc == false

  document = Nokogiri::HTML::DocumentFragment.parse(Markdown.render(content))
  headings = extract_headings from: document, levels: levels.join(", ")

  Builder.new.build(headings)
end