Sha256: 01edc0f74cf7559f6c1202c904a8ca3da811f34d6b184fa4bc56a328c85f672a

Contents?: true

Size: 777 Bytes

Versions: 3

Compression:

Stored size: 777 Bytes

Contents

require 'govuk_tech_docs/table_of_contents/heading_tree_builder'
require 'govuk_tech_docs/table_of_contents/heading_tree_renderer'
require 'govuk_tech_docs/table_of_contents/heading_tree'
require 'govuk_tech_docs/table_of_contents/heading'
require 'govuk_tech_docs/table_of_contents/headings_builder'

module GovukTechDocs
  module TableOfContents
    module Helpers
      def table_of_contents(html, max_level: nil)
        headings = HeadingsBuilder.new(html).headings

        if headings.none? { |heading| heading.size == 1 }
          raise "No H1 tag found. You have to at least add one H1 heading to the page."
        end

        tree = HeadingTreeBuilder.new(headings).tree
        HeadingTreeRenderer.new(tree, max_level: max_level).html
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
govuk_tech_docs-1.3.1 lib/govuk_tech_docs/table_of_contents/helpers.rb
govuk_tech_docs-1.3.0 lib/govuk_tech_docs/table_of_contents/helpers.rb
govuk_tech_docs-1.2.0 lib/govuk_tech_docs/table_of_contents/helpers.rb