Class: Kramdown::Converter::Toc
- Defined in:
- lib/kramdown/converter/toc.rb
Overview
Converts a Kramdown::Document to an element tree that represents the table of contents.
The returned tree consists of Element objects of type :toc where the root element is just used as container object. Each :toc element contains as value the wrapped :header element and under the attribute key :id the header ID that should be used (note that this ID may not exist in the wrapped element).
Since the TOC tree consists of special :toc elements, one cannot directly feed this tree to other converters!
Constant Summary
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
#data, #options, #root, #warnings
Instance Method Summary collapse
- #convert(el) ⇒ Object
-
#initialize(root, options) ⇒ Toc
constructor
A new instance of Toc.
Methods inherited from Base
apply_template, convert, #generate_id, get_template, #in_toc?, #smart_quote_entity, #warning
Constructor Details
Instance Method Details
#convert(el) ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/kramdown/converter/toc.rb', line 47 def convert(el) if el.type == :header && in_toc?(el) attr = el.attr.dup attr['id'] = generate_id(el.[:raw_text]) if @options[:auto_ids] && !attr['id'] add_to_toc(el, attr['id'], @toc) if attr['id'] else el.children.each {|child| convert(child)} end @toc end |