def outline
      @outline ||= elements(:header).map do |element|
        OutlineElement.new(
          element.options[:level],
          element_text(element),
          Kramdown::Converter::Html.send(:new, document, { :auto_id_prefix => '' }).generate_id(element.options[:raw_text])
        )
      end
    end
def outline
      @outline ||= elements(:header).map do |element|
        OutlineElement.new(
          element.options[:level],
          element_text(element),
          Kramdown::Converter::Html.send(:new, document, { :auto_id_prefix => '' }).generate_id(element.options[:raw_text])
        )
      end
    end
Ordered headers for this chapter, each header as an object responding
 to #level and #text.

 @return [Array<#text,#level,#html_id>] list of headers for this chapter