class Kramdown::Converter::Man

def convert_header(el, opts)

def convert_header(el, opts)
  return unless opts[:parent].type == :root
  case el.options[:level]
  when 1
    unless @title_done
      @title_done = true
      data = el.options[:raw_text].scan(/([^(]+)\s*\((\d\w*)\)(?:\s*-+\s*(.*))?/).first ||
        el.options[:raw_text].scan(/([^\s]+)\s*(?:-*\s+)?()(.*)/).first
      return unless data && data[0]
      name = data[0]
      section = (data[1].to_s.empty? ? el.attr['data-section'] || '7' : data[1])
      description = (data[2].to_s.empty? ? nil : " - #{data[2]}")
      date = el.attr['data-date'] ? quote(el.attr['data-date']) : nil
      extra = (el.attr['data-extra'] ? quote(escape(el.attr['data-extra'].to_s)) : nil)
      opts[:result] << macro("TH", quote(escape(name.upcase)), quote(section), date, extra)
      if description
        opts[:result] << macro("SH", "NAME") << escape("#{name}#{description}") << "\n"
      end
    end
  when 2
    opts[:result] << macro("SH", quote(escape(el.options[:raw_text])))
  when 3
    opts[:result] << macro("SS", quote(escape(el.options[:raw_text])))
  else
    warning("Header levels greater than three are not supported")
  end
end