class Kramdown::Extension

A string containing the body of the extension. If no body is available, this is nil.
[body]
A hash containing the options set in the extension.
[opts]
The parser instance from which the extension method is called.
[parser]

These methods are called with three parameters:
An extension is a method called parse_EXTNAME where EXTNAME is the extension name.
specification.
This class provides implementations for the default extensions defined in the kramdown
The base extension class.

def boolean_value(val)

def boolean_value(val)
  val.downcase.strip != 'false' && !val.empty?
end

def parse_comment(parser, opts, body)

Just ignore everything and do nothing.
def parse_comment(parser, opts, body)
  nil
end

def parse_nomarkdown(parser, opts, body)

Add the body (if available) as :raw Element to the +parser.tree+.
def parse_nomarkdown(parser, opts, body)
  parser.tree.children << Element.new(:raw, body) if body.kind_of?(String)
end

def parse_options(parser, opts, body)

Update the document options with the options set in +opts+.
def parse_options(parser, opts, body)
  if val = opts.delete('auto_ids')
    parser.doc.options[:auto_ids] = boolean_value(val)
  end
  if val = opts.delete('filter_html')
    parser.doc.options[:filter_html] = val.split(/\s+/)
  end
  if val = opts.delete('footnote_nr')
    parser.doc.options[:footnote_nr] = Integer(val) rescue parser.doc.options[:footnote_nr]
  end
  if val = opts.delete('parse_block_html')
    parser.doc.options[:parse_block_html] = boolean_value(val)
  end
  if val = opts.delete('parse_span_html')
    parser.doc.options[:parse_span_html] = boolean_value(val)
  end
  if val = opts.delete('coderay_wrap')
    (parser.doc.options[:coderay] ||= {})[:wrap] = (val.empty? ? nil : val.to_sym)
  end
  if val = opts.delete('coderay_css')
    (parser.doc.options[:coderay] ||= {})[:css] = val.to_sym
  end
  if val = opts.delete('coderay_tab_width')
    (parser.doc.options[:coderay] ||= {})[:tab_width] = val.to_i
  end
  if val = opts.delete('coderay_line_numbers')
    (parser.doc.options[:coderay] ||= {})[:line_numbers] = (val.empty? ? nil : val.to_sym)
  end
  if val = opts.delete('coderay_line_number_start')
    (parser.doc.options[:coderay] ||= {})[:line_number_start] = val.to_i
  end
  if val = opts.delete('coderay_bold_every')
    (parser.doc.options[:coderay] ||= {})[:bold_every] = val.to_i
  end
  opts.each {|k,v| parser.warning("Unknown kramdown options '#{k}'")}
end