class Kramdown::Parser::Html::ElementConverter
def convert_table(el)
def convert_table(el) if !is_simple_table?(el) process_html_element(el, false) return end process_children(el) set_basics(el, :table) el.options[:alignment] = [] nr_cols = 0 calc_alignment = lambda do |c| align = c.attr['align'] if c.type == :html_element && c.value == 'col' && (align.nil? || %w{left right center}.include?(align)) el.options[:alignment] << (align.nil? ? :default : align.to_sym) elsif c.type == :tr nr_cols = c.children.length break else c.children.each {|cc| calc_alignment.call(cc)} end end calc_alignment.call(el) if el.options[:alignment].length > nr_cols el.options[:alignment][nr_cols..-1] = [] else el.options[:alignment] += [:default] * (nr_cols - el.options[:alignment].length) end el.children.delete_if {|c| c.type == :html_element} change_th_type = lambda do |c| if c.type == :th c.type = :td else c.children.each {|cc| change_th_type.call(cc)} end end change_th_type.call(el) if el.children.first.type == :tr tbody = Element.new(:tbody) tbody.children = el.children el.children = [tbody] end end