class Markaby::HTML5

def can_handle? tag_name

def can_handle? tag_name
  custom_element? tag_name
end

def custom_element? tag_name

def custom_element? tag_name
  tag_name.to_s.include? "_"
end

def custom_element_tag_for tag_name

def custom_element_tag_for tag_name
  tag_name.to_s.tr("_", "-").to_sym
end

def default_options

def default_options
  super.merge({
    output_xml_instruction: false,
    output_meta_tag: "html5",
    root_attributes: {}
  })
end

def handle_tag tag_name, builder, *args, &block

def handle_tag tag_name, builder, *args, &block
  builder.tag! tag_name, *args, &block
end

def validate_and_transform_tag_name! tag_name

def validate_and_transform_tag_name! tag_name
  custom_element?(tag_name) ? custom_element_tag_for(tag_name) : super
end

def validate_attribute! tag_name, attribute_name

def validate_attribute! tag_name, attribute_name
  custom_element?(tag_name) || super
end