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

Refactor table of contents building

parent 3b017a36
...@@ -43,15 +43,7 @@ module Banzai ...@@ -43,15 +43,7 @@ module Banzai
end end
end end
if header_root.children.length > 0 push_toc(header_root.children, root: true)
result[:toc] = %q{<ul class="section-nav">}
header_root.children.each do |child|
push_toc(child)
end
result[:toc] << '</ul>'
end
doc doc
end end
...@@ -62,19 +54,19 @@ module Banzai ...@@ -62,19 +54,19 @@ module Banzai
%Q{<a id="user-content-#{href}" class="anchor" href="##{href}" aria-hidden="true"></a>} %Q{<a id="user-content-#{href}" class="anchor" href="##{href}" aria-hidden="true"></a>}
end end
def push_toc(header_node) def push_toc(children, root: false)
result[:toc] << %Q{<li><a href="##{header_node.href}">#{header_node.text}</a>} return if children.empty?
if header_node.children.length > 0
result[:toc] << '<ul>'
header_node.children.each do |child| klass = ' class="section-nav"' if root
push_toc(child)
end
result[:toc] << "<ul#{klass}>"
children.each { |child| push_anchor(child) }
result[:toc] << '</ul>' result[:toc] << '</ul>'
end 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>' result[:toc] << '</li>'
end 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