annotate _plugins/TocFilter.rb @ 35:982aeacba4c6

Finally added toc after speaking to Apache devs
author nick <nrclark@essex.ac.uk>
date Wed, 28 Nov 2012 20:25:13 +0000
parents
children
rev   line source
nrclark@35 1 module TocFilter
nrclark@35 2 def toc(input)
nrclark@35 3 output = "<ol class=\"toc\">"
nrclark@35 4 input.scan(/<(h2)(?:>|\s+(.*?)>)([^<]*)<\/\1\s*>/mi).each do |entry|
nrclark@35 5 id = (entry[1][/^id=(['"])(.*)\1$/, 2] rescue nil)
nrclark@35 6 title = entry[2].gsub(/<(\w*).*?>(.*?)<\/\1\s*>/m, '\2').strip
nrclark@35 7 if id
nrclark@35 8 output << %{<li><a href="##{id}">#{title}</a></li>}
nrclark@35 9 else
nrclark@35 10 output << %{<li>#{title}</li>}
nrclark@35 11 end
nrclark@35 12 end
nrclark@35 13 output << '</ol>'
nrclark@35 14 output
nrclark@35 15 end
nrclark@35 16 end
nrclark@35 17 Liquid::Template.register_filter(TocFilter)