5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/writeup/filters/table_of_contents.rb', line 5
def call
result[:toc] = ""
= Hash.new(0)
doc.css('h2, h3').each do |node|
text = node.text
id = text.downcase
id.gsub!(PUNCTUATION_REGEXP, '') id.gsub!(' ', '-')
uniq = ([id] > 0) ? "-#{[id]}" : ''
[id] += 1
if = node.children.first
result[:toc] << %Q{<li class="#{node.name}"><a href="##{id}#{uniq}">#{text}</a></li>\n}
.add_previous_sibling(%Q{<a id="#{id}#{uniq}" class="anchor" href="##{id}#{uniq}" aria-hidden="true"><span class="octicon octicon-link"></span></a>})
end
end
result[:toc] = %Q{<ul class="section-nav">\n#{result[:toc]}</ul>} unless result[:toc].empty?
doc
end
|