class Amber::Render::NokogiriTableOfContents

NOKOGIRI TOC

Public Instance Methods

to_html() click to toggle source
Calls superclass method Amber::Render::TableOfContents#to_html
# File lib/amber/render/table_of_contents.rb, line 138
def to_html
  super
  @nokogiri_doc.to_html.gsub(/(<h\d.*?>)\n/, '\1').gsub(/\n(<\/h\d.*?>)/, '\1')
end
to_toc() click to toggle source
Calls superclass method Amber::Render::TableOfContents#to_toc
# File lib/amber/render/table_of_contents.rb, line 143
def to_toc
  super
  ul = Nokogiri::XML::Node.new(@options[:tag], Nokogiri::HTML.fragment(""))
  @toc.populate_node(ul, @options)
  ul.to_pretty_html
end

Private Instance Methods

each_heading(html) { |name, inner_html| ... } click to toggle source
# File lib/amber/render/table_of_contents.rb, line 152
def each_heading(html, &block)
  @nokogiri_doc = Nokogiri::HTML.fragment(html, "UTF-8")
  if @options[:content_selector]
    selector = @levels.keys.map {|h| "#{@options[:content_selector]} #{h}" }.join(",")
  else
    selector = @levels.keys.join(",")
  end
  @nokogiri_doc.css(selector).each do |node|
    node.inner_html = yield(node.name, node.inner_html)
  end
end