Class: Nexmo::Markdown::HeadingFilter

Inherits:
Banzai::Filter
  • Object
show all
Defined in:
lib/nexmo_markdown_renderer/filters/heading_filter.rb

Instance Method Summary collapse

Instance Method Details

#call(input) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/nexmo_markdown_renderer/filters/heading_filter.rb', line 4

def call(input)
  @input = input
  @headings = []
  heading_tag_list = %w[h1 h2 h3 h4 h5 h6]
  headings = document.children.select do |child|
    heading_tag_list.include? child.name
  end
    
  headings.each do |heading|
    parameterized_heading = parameterized_heading_without_collision(heading)
    heading['id'] = parameterized_heading
    heading['data-id'] = SecureRandom.hex
    heading['class'] = heading[:class]
    heading['class'] += ' Vlt-title--icon'
    
    heading.prepend_child "      <a href=\"#\#{parameterized_heading}\" class=\"heading-permalink\">\n        <svg class=\"Vlt-grey\"><use xlink:href=\\\"/symbol/volta-icons.svg#Vlt-icon-link\\\" /></svg>\n      </a>\n    HEREDOC\n  end\n    \n  @document.to_html\nend\n"