def toc node
unless (doc = node.document).attr?('toc-placement', 'macro') && doc.sections? && (doc.attr? 'toc')
return '<!-- toc disabled -->'
end
if node.id
id_attr = %( id="#{node.id}")
title_id_attr = %( id="#{node.id}title")
else
id_attr = ' id="toc"'
title_id_attr = ' id="toctitle"'
end
title = node.title? ? node.title : (doc.attr 'toc-title')
levels = (node.attr? 'levels') ? (node.attr 'levels').to_i : nil
role = node.role? ? node.role : (doc.attr 'toc-class', 'toc')
%(<div#{id_attr} class="#{role}">
<div#{title_id_attr} class="title">#{title}</div>
#{outline doc, :toclevels => levels}
</div>)
end