Mercurial > hg > bioaid
view _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 |
line wrap: on
line source
module TocFilter def toc(input) output = "<ol class=\"toc\">" input.scan(/<(h2)(?:>|\s+(.*?)>)([^<]*)<\/\1\s*>/mi).each do |entry| id = (entry[1][/^id=(['"])(.*)\1$/, 2] rescue nil) title = entry[2].gsub(/<(\w*).*?>(.*?)<\/\1\s*>/m, '\2').strip if id output << %{<li><a href="##{id}">#{title}</a></li>} else output << %{<li>#{title}</li>} end end output << '</ol>' output end end Liquid::Template.register_filter(TocFilter)