class Asciidoctor::SyntaxHighlighter::CodeRayAdapter

def highlight node, source, lang, opts

def highlight node, source, lang, opts
  @requires_stylesheet = true if (css_mode = opts[:css_mode]) == :class
  lang = lang ? (::CodeRay::Scanners[lang = lang.to_sym] && lang rescue :text) : :text
  highlighted = ::CodeRay::Duo[lang, :html,
    css: css_mode,
    line_numbers: (line_numbers = opts[:number_lines]),
    line_number_start: opts[:start_line_number],
    line_number_anchors: false,
    highlight_lines: opts[:highlight_lines],
    bold_every: false,
  ].highlight source
  if line_numbers == :table && opts[:callouts]
    [highlighted, (idx = highlighted.index CodeCellStartTagCs) ? idx + CodeCellStartTagCs.length : nil]
  else
    highlighted
  end
end