Module: Metanorma::Mirror::Output::HtmlRenderers::ListRenderers

Included in:
Metanorma::Mirror::Output::HtmlRenderer
Defined in:
lib/metanorma/mirror/output/html_renderers/list_renderers.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.register(registry) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/metanorma/mirror/output/html_renderers/list_renderers.rb', line 8

def self.register(registry)
  registry.register_node_handler("bullet_list",
                                 instance_method(:render_bullet_list))
  registry.register_node_handler("ordered_list",
                                 instance_method(:render_ordered_list))
  registry.register_node_handler("dl", instance_method(:render_dl))
  registry.register_node_handler("list_item",
                                 instance_method(:render_list_item))
  registry.register_node_handler("dt", instance_method(:render_dt))
  registry.register_node_handler("dd", instance_method(:render_dd))
end

Instance Method Details

#render_bullet_list(node, depth: 0) ⇒ Object



20
21
22
# File 'lib/metanorma/mirror/output/html_renderers/list_renderers.rb', line 20

def render_bullet_list(node, depth: 0)
  render_list(node, "ul", "mn-bullet-list")
end

#render_dd(node, depth: 0) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/metanorma/mirror/output/html_renderers/list_renderers.rb', line 67

def render_dd(node, depth: 0)
  HtmlRenderers.build do |doc|
    doc.dd(class: "mn-dd") do
      HtmlRenderers.embed(doc, render_children(node))
    end
  end
end

#render_dl(node, depth: 0) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/metanorma/mirror/output/html_renderers/list_renderers.rb', line 36

def render_dl(node, depth: 0)
  HtmlRenderers.build do |doc|
    doc.dl(class: "mn-definition-list") do
      node.content.each do |item|
        next unless item.is_a?(Model::Container) || item.is_a?(Model::Leaf)

        case item.type
        when "dt"
          doc.dt(class: "mn-dt") do
            HtmlRenderers.embed(doc, render_inline(item.content))
          end
        when "dd"
          doc.dd(class: "mn-dd") do
            HtmlRenderers.embed(doc, render_children(item))
          end
        else
          HtmlRenderers.embed(doc, render_node(item))
        end
      end
    end
  end
end

#render_dt(node, depth: 0) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/metanorma/mirror/output/html_renderers/list_renderers.rb', line 59

def render_dt(node, depth: 0)
  HtmlRenderers.build do |doc|
    doc.dt(class: "mn-dt") do
      HtmlRenderers.embed(doc, render_inline(node.content))
    end
  end
end

#render_list_item(node, depth: 0) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/metanorma/mirror/output/html_renderers/list_renderers.rb', line 28

def render_list_item(node, depth: 0)
  HtmlRenderers.build do |doc|
    doc.li(class: "mn-list-item") do
      HtmlRenderers.embed(doc, render_inline(node.content))
    end
  end
end

#render_ordered_list(node, depth: 0) ⇒ Object



24
25
26
# File 'lib/metanorma/mirror/output/html_renderers/list_renderers.rb', line 24

def render_ordered_list(node, depth: 0)
  render_list(node, "ol", "mn-ordered-list")
end