Commit 056158ef authored by Robert Speicher's avatar Robert Speicher

Refactor table of contents building

parent 3b017a36
......@@ -43,15 +43,7 @@ module Banzai
end
end
if header_root.children.length > 0
result[:toc] = %q{<ul class="section-nav">}
header_root.children.each do |child|
push_toc(child)
end
result[:toc] << '</ul>'
end
push_toc(header_root.children, root: true)
doc
end
......@@ -62,19 +54,19 @@ module Banzai
%Q{<a id="user-content-#{href}" class="anchor" href="##{href}" aria-hidden="true"></a>}
end
def push_toc(header_node)
result[:toc] << %Q{<li><a href="##{header_node.href}">#{header_node.text}</a>}
if header_node.children.length > 0
result[:toc] << '<ul>'
def push_toc(children, root: false)
return if children.empty?
header_node.children.each do |child|
push_toc(child)
end
klass = ' class="section-nav"' if root
result[:toc] << '</ul>'
end
result[:toc] << "<ul#{klass}>"
children.each { |child| push_anchor(child) }
result[:toc] << '</ul>'
end
def push_anchor(header_node)
result[:toc] << %Q{<li><a href="##{header_node.href}">#{header_node.text}</a>}
push_toc(header_node.children)
result[:toc] << '</li>'
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment