Module: TocFilter

Defined in:
lib/jekylltask.rb

Instance Method Summary collapse

Instance Method Details

#toc(input) ⇒ Object



76
77
78
79
80
81
82
# File 'lib/jekylltask.rb', line 76

def toc(input)
  input.scan(/<(h2)(?:>|\s+(.*?)>)([^<]*)<\/\1\s*>/mi).inject(%{<ol class="toc">}) { |toc, entry|
    id = entry[1][/^id=(['"])(.*)\1$/, 2]
    title = entry[2].gsub(/<(\w*).*?>(.*?)<\/\1\s*>/m, '\2').strip
    toc << %{<li><a href="##{id}">#{title}</a></li>}
  } << "</ol>"
end