Method: Jazzy::DocBuilder.doc_structure_for_docs

Defined in:
lib/jazzy/doc_builder.rb

.doc_structure_for_docs(docs) ⇒ Array

Generate doc structure to be used in sidebar navigation

Returns:

  • (Array)

    doc structure comprised of section names & child names & URLs



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/jazzy/doc_builder.rb', line 32

def self.doc_structure_for_docs(docs)
  docs.map do |doc|
    children = doc.children
                  .sort_by { |c| [c.nav_order, c.name] }
                  .flat_map do |child|
      # FIXME: include arbitrarily nested extensible types
      [{ name: child.name, url: child.url }] +
        Array(child.children.select do |sub_child|
          sub_child.type.swift_extensible?
        end).map do |sub_child|
          { name: "#{sub_child.name}", url: sub_child.url }
        end
    end
    {
      section: doc.name,
      children: children,
    }
  end
end