Class: Juli::Visitor::Html::IdAssigner

Inherits:
Absyn::Visitor show all
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

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