module doc_structure
import doc_concerns
+import modelize
# StructurePhase populates the DocPage content with section and article.
#
mentity.booster_rank = 0
section.add_child new ConcernsArticle(mentity, concerns)
for mentity in concerns do
+ var ssection = new ConcernSection(mentity)
if mentity isa MModule then
- section.add_child new DefinitionArticle(mentity)
- else
- section.add_child new ConcernSection(mentity)
+ ssection.add_child new DefinitionArticle(mentity)
end
+ section.add_child ssection
end
end
end
var mclasses = mclasses_for_mmodule(mentity).to_a
v.name_sorter.sort(mclasses)
for mclass in mclasses do
- var article = new DefinitionArticle(mclass)
+ var article = new DefinitionListArticle(mclass)
var mclassdefs = mclassdefs_for(mclass).to_a
if not mclassdefs.has(mclass.intro) then
article.add_child(new DefinitionArticle(mclass.intro))
mentity.intro_mmodule.mgroup.mproject.booster_rank = 0
mentity.intro_mmodule.mgroup.booster_rank = 0
mentity.intro_mmodule.booster_rank = 0
+ var constructors = new ConstructorsSection(mentity)
+ var minit = mentity.root_init
+ if minit != null then
+ constructors.add_child new DefinitionArticle(minit)
+ end
+ section.add_child constructors
section.add_child new ConcernsArticle(mentity, concerns)
for mentity in concerns do
var ssection = new ConcernSection(mentity)
v.name_sorter.sort(group)
for mprop in group do
for mpropdef in mpropdefs_for(mprop, mentity) do
- ssection.add_child new DefinitionArticle(mpropdef)
+ if mpropdef isa MMethodDef and mpropdef.mproperty.is_init then
+ if mpropdef == minit then continue
+ constructors.add_child new DefinitionArticle(mpropdef)
+ else
+ ssection.add_child new DefinitionArticle(mpropdef)
+ end
end
end
end
end
end
+# A group of sections that can be displayed together in a tab.
+#
+# Display the first child and hide less relevant data in other panels.
+class TabbedGroup
+ super DocSection
+end
+
+# A group of sections that can be displayed together in a tab panel.
+class PanelGroup
+ super DocSection
+
+ # The title of this group.
+ var group_title: String
+end
+
# A DocComposite element about a MEntity.
class MEntityComposite
super DocComposite
var mentity: MEntity
end
+# A list of constructors.
+class ConstructorsSection
+ super MEntitySection
+end
+
# A Section about a Concern.
#
# Those sections are used to build the page summary.
var concerns: ConcernsTree
end
+# An article that displaus a list of definition belonging to a MEntity.
+class DefinitionListArticle
+ super TabbedGroup
+ super MEntityArticle
+end
+
# An article that display the definition text of a MEntity.
class DefinitionArticle
super MEntityArticle