Class: Juli::Visitor::Html::IdAssigner
- Inherits:
-
Absyn::Visitor
- Object
- Absyn::Visitor
- Juli::Visitor::Html::IdAssigner
- Defined in:
- lib/juli/visitor/html.rb
Overview
assign DOM id on header node.
IdAssigner should be executed before running Html visitor since ContentsDrawer also refers DOM id. That is the reason why DOM id assignment is isolated from Html visitor.
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ IdAssigner
constructor
A new instance of IdAssigner.
- #run(in_file, root) ⇒ Object
- #visit_chapter(n) ⇒ Object
Methods inherited from Absyn::Visitor
#run_bulk, #run_file, #visit_array, #visit_compact_dictionary_list, #visit_compact_dictionary_list_item, #visit_dictionary_list, #visit_dictionary_list_item, #visit_node, #visit_ordered_list, #visit_str, #visit_unordered_list, #visit_verbatim
Constructor Details
#initialize(opts = {}) ⇒ IdAssigner
Returns a new instance of IdAssigner.
30 31 32 33 |
# File 'lib/juli/visitor/html.rb', line 30 def initialize(opts={}) super @uniq_id_seed = 0 end |
Instance Method Details
#run(in_file, root) ⇒ Object
40 41 42 |
# File 'lib/juli/visitor/html.rb', line 40 def run(in_file, root) root.accept(self) end |
#visit_chapter(n) ⇒ Object
35 36 37 38 |
# File 'lib/juli/visitor/html.rb', line 35 def visit_chapter(n) n.dom_id = uniq_id(n.level) n.blocks.accept(self) end |