nitdoc: move `DocComposite::title` to `doc_base`
authorAlexandre Terrasa <alexandre@moz-code.org>
Fri, 29 May 2015 23:05:46 +0000 (19:05 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Fri, 29 May 2015 23:05:46 +0000 (19:05 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/doc/doc_base.nit
src/doc/doc_phases/doc_console.nit
src/doc/doc_phases/doc_graphs.nit
src/doc/doc_phases/doc_hierarchies.nit
src/doc/doc_phases/doc_intros_redefs.nit
src/doc/doc_phases/doc_structure.nit
src/doc/html_templates/html_templates.nit

index 124ccce..3bb736e 100644 (file)
@@ -101,6 +101,9 @@ abstract class DocComposite
        # (HTML links, HTML anchors, vim links, etc.).
        var id: String is writable
 
+       # Item title if any.
+       var title: nullable String
+
        # Does `self` have a `parent`?
        fun is_root: Bool do return parent == null
 
@@ -136,6 +139,8 @@ class DocRoot
        super DocComposite
 
        redef var id = "<root>"
+       redef var title = "<root>"
+
        # No op for `RootSection`.
        redef fun parent=(p) do end
 end
index 7acdf10..4c0c193 100644 (file)
@@ -140,7 +140,7 @@ interface NitxQuery
        # Pretty prints the results for the console.
        fun make_results(nitx: Nitx, results: Array[NitxMatch]): DocPage do
                var page = new DocPage("results", "Results")
-               page.root.add_child(new QueryResultArticle("results.article", self, results))
+               page.root.add_child(new QueryResultArticle("results.article", "Results", self, results))
                return page
        end
 
@@ -216,7 +216,7 @@ class CommentQuery
                        var res = results.first.as(MEntityMatch)
                        var mentity = res.mentity
                        var page = new DocPage("results", "Results")
-                       var article = new DefinitionArticle("results.article", mentity)
+                       var article = new DefinitionArticle("results.article", "Results", mentity)
                        article.cs_title = mentity.name
                        article.cs_subtitle = mentity.cs_declaration
                        page.root.add_child article
@@ -389,7 +389,7 @@ class CodeQuery
        redef fun make_results(nitx, results) do
                var page = new DocPage("results", "Code Results")
                for res in results do
-                       page.add new CodeQueryArticle("results.article", self, res.as(CodeMatch))
+                       page.add new CodeQueryArticle("results.article", "Results", self, res.as(CodeMatch))
                end
                return page
        end
index ecc89f5..12bf6c2 100644 (file)
@@ -73,7 +73,7 @@ redef class MModulePage
                        end
                end
                op.append("\}\n")
-               return new GraphArticle("{mentity.nitdoc_id}.graph", mentity, name, "Importation Graph", op)
+               return new GraphArticle("{mentity.nitdoc_id}.graph", "Importation Graph", name, op)
        end
 end
 
@@ -107,7 +107,7 @@ redef class MClassPage
                        end
                end
                op.append("\}\n")
-               return new GraphArticle("{mentity.nitdoc_id}.graph", mentity, name, "Inheritance Graph", op)
+               return new GraphArticle("{mentity.nitdoc_id}.graph", "Inheritance Graph", name, op)
        end
 end
 
@@ -116,14 +116,11 @@ end
 # The graph is stored in dot format.
 # The final output is delayed untill rendering.
 class GraphArticle
-       super MEntityComposite
+       super DocArticle
 
        # Graph ID (used for outputing file with names).
        var graph_id: String
 
-       # Graph title to display.
-       var graph_title: String
-
        # Dot script of the graph.
        var dot: Text
 
index ed806e4..ecd6c74 100644 (file)
@@ -45,10 +45,10 @@ redef class MModulePage
                var group = new PanelGroup("list.group", "List")
                var imports = self.imports.to_a
                v.name_sorter.sort(imports)
-               group.add_child new HierarchyListArticle("{id}.imports", mentity, "Imports", imports)
+               group.add_child new HierarchyListArticle("{id}.imports", "Imports", imports)
                var clients = self.clients.to_a
                v.name_sorter.sort(clients)
-               group.add_child new HierarchyListArticle("{id}.clients", mentity, "Clients", clients)
+               group.add_child new HierarchyListArticle("{id}.clients", "Clients", clients)
                section.add_child group
                section.parent = root.children.first
                root.children.first.children.insert(section, 1)
@@ -62,16 +62,16 @@ redef class MClassPage
                var group = new PanelGroup("list.group", "List")
                var parents = self.parents.to_a
                v.name_sorter.sort(parents)
-               group.add_child new HierarchyListArticle("{id}.parents", mentity, "Parents", parents)
+               group.add_child new HierarchyListArticle("{id}.parents", "Parents", parents)
                var ancestors = self.ancestors.to_a
                v.name_sorter.sort(ancestors)
-               group.add_child new HierarchyListArticle("{id}.ancestors", mentity, "Ancestors", ancestors)
+               group.add_child new HierarchyListArticle("{id}.ancestors", "Ancestors", ancestors)
                var children = self.children.to_a
                v.name_sorter.sort(children)
-               group.add_child new HierarchyListArticle("{id}.children", mentity, "Children", children)
+               group.add_child new HierarchyListArticle("{id}.children", "Children", children)
                var descendants = self.descendants.to_a
                v.name_sorter.sort(descendants)
-               group.add_child new HierarchyListArticle("{id}.descendants", mentity, "Descendants", descendants)
+               group.add_child new HierarchyListArticle("{id}.descendants", "Descendants", descendants)
                section.add_child group
                section.parent = root.children.first
                root.children.first.children.insert(section, 1)
@@ -92,10 +92,7 @@ end
 
 # Dislay a hierarchical list of mentities.
 class HierarchyListArticle
-       super MEntityArticle
-
-       # Title displayed in the top of this list.
-       var list_title: String
+       super DocArticle
 
        # MEntities to display in this list.
        var mentities: Array[MEntity]
index 77066f0..df738c4 100644 (file)
@@ -58,10 +58,10 @@ redef class DefinitionArticle
                var group = new PanelGroup("list.group", "List")
                var intros = mmodule.intro_mclassdefs(v.ctx.min_visibility).to_a
                doc.mainmodule.linearize_mclassdefs(intros)
-               group.add_child new IntrosRedefsListArticle("{mentity.nitdoc_id}.intros", mentity, "Introduces", intros)
+               group.add_child new IntrosRedefsListArticle("{mentity.nitdoc_id}.intros", "Introduces", intros)
                var redefs = mmodule.redef_mclassdefs(v.ctx.min_visibility).to_a
                doc.mainmodule.linearize_mclassdefs(redefs)
-               group.add_child new IntrosRedefsListArticle("{mentity.nitdoc_id}.redefs", mentity, "Redefines", redefs)
+               group.add_child new IntrosRedefsListArticle("{mentity.nitdoc_id}.redefs", "Redefines", redefs)
                section.add_child group
                add_child(section)
        end
@@ -73,11 +73,11 @@ redef class DefinitionArticle
                var intros = mclassdef.collect_intro_mpropdefs(v.ctx.min_visibility).to_a
                # FIXME avoid diff changes
                # v.ctx.mainmodule.linearize_mpropdefs(intros)
-               group.add_child new IntrosRedefsListArticle("{mentity.nitdoc_id}.intros", mentity, "Introduces", intros)
+               group.add_child new IntrosRedefsListArticle("{mentity.nitdoc_id}.intros", "Introduces", intros)
                var redefs = mclassdef.collect_redef_mpropdefs(v.ctx.min_visibility).to_a
                # FIXME avoid diff changes
                # v.ctx.mainmodule.linearize_mpropdefs(redefs)
-               group.add_child new IntrosRedefsListArticle("{mentity.nitdoc_id}.redefs", mentity, "Redefines", redefs)
+               group.add_child new IntrosRedefsListArticle("{mentity.nitdoc_id}.redefs", "Redefines", redefs)
                section.add_child group
                add_child(section)
        end
@@ -95,10 +95,7 @@ end
 # FIXME diff hack
 # This can merged with InheritanceListArticle in a more generic class.
 class IntrosRedefsListArticle
-       super MEntityArticle
-
-       # Title displayed as header of the list.
-       var list_title: String
+       super DocArticle
 
        # Intro mentities to list.
        var mentities: Array[MEntity]
index fe75b8d..690e5c9 100644 (file)
@@ -47,13 +47,13 @@ end
 
 redef class OverviewPage
        redef fun apply_structure(v, doc) do
-               var article = new HomeArticle("home.article")
+               var article = new HomeArticle("home.article", "Home")
                root.add_child article
                # Projects list
                var mprojects = doc.model.mprojects.to_a
                var sorter = new MConcernRankSorter
                sorter.sort mprojects
-               var section = new ProjectsSection("projects.section")
+               var section = new ProjectsSection("projects.section", "Projects")
                for mproject in mprojects do
                        section.add_child new DefinitionArticle("{mproject.nitdoc_id}.definition", mproject)
                end
@@ -295,15 +295,14 @@ 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
 
+       redef fun title do return mentity.nitdoc_name
+
        # MEntity documented by this page element.
        var mentity: MEntity
 end
index 031ae01..9de02a9 100644 (file)
@@ -252,7 +252,7 @@ redef class DocComposite
        # Title to display if any.
        #
        # This title can be decorated with HTML.
-       var html_title: nullable Writable is noinit, writable
+       var html_title: nullable Writable is writable, lazy do return title
 
        # Subtitle to display if any.
        var html_subtitle: nullable Writable is noinit, writable
@@ -327,6 +327,12 @@ redef class DocComposite
        end
 end
 
+redef class DocRoot
+       redef fun rendering do
+               for child in children do addn child.write_to_string
+       end
+end
+
 redef class DocSection
        super BSComponent
 
@@ -367,7 +373,7 @@ end
 
 redef class PanelGroup
        redef var html_title = null
-       redef var toc_title is lazy do return group_title
+       redef var toc_title is lazy do return title or else ""
        redef var is_toc_hidden = true
 end
 
@@ -545,7 +551,6 @@ redef class DefinitionArticle
 end
 
 redef class HierarchyListArticle
-       redef var html_title is lazy do return list_title
        redef fun is_empty do return mentities.is_empty
        redef var is_toc_hidden = true
 
@@ -567,7 +572,6 @@ redef class IntrosRedefsSection
 end
 
 redef class IntrosRedefsListArticle
-       redef var html_title is lazy do return list_title
        redef fun is_hidden do return mentities.is_empty
        redef var is_toc_hidden = true
 
@@ -620,7 +624,7 @@ redef class GraphArticle
        redef fun render_body do
                addn "<div class=\"text-center\">"
                addn " <img src='{graph_id}.png' usemap='#{graph_id}' style='margin:auto'"
-               addn "  alt='{graph_title}'/>"
+               addn "  alt='{title or else ""}'/>"
                add map
                addn "</div>"
        end