Class: Qiita::Markdown::Filters::SyntaxHighlight::Highlighter

Inherits:
Object
  • Object
show all
Defined in:
lib/qiita/markdown/filters/syntax_highlight.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(default_language: nil, node: nil, specific_language: nil) ⇒ Highlighter

Returns a new instance of Highlighter.



50
51
52
53
54
# File 'lib/qiita/markdown/filters/syntax_highlight.rb', line 50

def initialize(default_language: nil, node: nil, specific_language: nil)
  @default_language = default_language
  @node = node
  @specific_language = specific_language
end

Class Method Details

.call(**args) ⇒ Object



46
47
48
# File 'lib/qiita/markdown/filters/syntax_highlight.rb', line 46

def self.call(**args)
  new(**args).call
end

Instance Method Details

#callObject



56
57
58
59
60
61
62
# File 'lib/qiita/markdown/filters/syntax_highlight.rb', line 56

def call
  outer = Nokogiri::HTML.fragment(%(<div class="code-frame" data-lang="#{language}">))
  frame = outer.at("div")
  frame.add_child(filename_node) if filename
  frame.add_child(highlighted_node)
  @node.replace(outer)
end