Class: Pirka::Highlighter::Middleware::LineNum

Inherits:
Object
  • Object
show all
Defined in:
lib/pirka/highlighter.rb

Instance Method Summary collapse

Constructor Details

#initialize(highlighter, params = {}) ⇒ LineNum

Returns a new instance of LineNum.



54
55
56
57
58
# File 'lib/pirka/highlighter.rb', line 54

def initialize(highlighter, params = {})
  @highlighter = highlighter
  @selector = params["selector"]
  raise _("selector param not specified") unless @selector
end

Instance Method Details

#markup(element, lang) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/pirka/highlighter.rb', line 60

def markup(element, lang)
  nums = element.search(@selector)
  nums.each(&:unlink)
  @highlighter.markup element, lang
  return if nums.empty?
  element.inner_html = element.inner_html.lines.collect.with_index {|line, index|
    num = nums[index].to_xml
    if line.length > 1
      line[0..0] << num << line[1..-1]
    else
      num << line
    end
  }.join
end