class ReverseMarkdown::Converters::Pre

Public Instance Methods

convert(node, state = {}) click to toggle source
# File lib/github_to_canvas_quiz/reverse_markdown/converters/pre.rb, line 8
def convert(node, state = {})
  content = treat_children(node, state)
  if ReverseMarkdown.config.github_flavored
    "\n```#{language(node)}\n#{content.strip}\n```\n"
  else
    "\n\n    #{content.lines.to_a.join('    ')}\n\n"
  end
end

Private Instance Methods

language(node) click to toggle source
# File lib/github_to_canvas_quiz/reverse_markdown/converters/pre.rb, line 32
def language(node)
  lang = language_from_highlight_class(node)
  lang || language_from_confluence_class(node)
  lang || language_from_rouge_class(node)
end
language_from_confluence_class(node) click to toggle source
# File lib/github_to_canvas_quiz/reverse_markdown/converters/pre.rb, line 42
def language_from_confluence_class(node)
  node['class'].to_s[/brush:\s?(:?.*);/, 1]
end
language_from_highlight_class(node) click to toggle source
# File lib/github_to_canvas_quiz/reverse_markdown/converters/pre.rb, line 38
def language_from_highlight_class(node)
  node.parent['class'].to_s[/highlight-([a-zA-Z0-9]+)/, 1]
end
language_from_rouge_class(node) click to toggle source
# File lib/github_to_canvas_quiz/reverse_markdown/converters/pre.rb, line 46
def language_from_rouge_class(node)
  node['class'].to_s[/highlight\s(.*)/, 1]
end
treat(node, state) click to toggle source

Override treat as proposed in github.com/xijo/reverse_markdown/pull/69

Calls superclass method
# File lib/github_to_canvas_quiz/reverse_markdown/converters/pre.rb, line 20
def treat(node, state)
  case node.name
  # preserve newline in <span>, <code> and text blocks
  when 'text', 'span', 'code'
    node.text
  when 'br'
    "\n"
  else
    super
  end
end