Mercurial > hg > bioaid
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) |