class Pirka::Highlighter::Middleware::LineNum

Public Class Methods

new(highlighter, params = {}) click to toggle source
# File lib/pirka/highlighter.rb, line 54
def initialize(highlighter, params = {})
  @highlighter = highlighter
  @selector = params["selector"]
  raise _("selector param not specified") unless @selector
end

Public Instance Methods

markup(element, lang) click to toggle source
# 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