nitdoc: update ModelView
[nit.git] / src / doc / doc_base.nit
index 95ad145..6794d9d 100644 (file)
@@ -16,8 +16,8 @@
 module doc_base
 
 import toolcontext
-import model_utils
 import model_ext
+import model::model_views
 
 # The model of a Nitdoc documentation.
 #
@@ -26,6 +26,7 @@ import model_ext
 # The model is populated through `DocPhase` to be constructed.
 # It is a placeholder to share data between each phase.
 class DocModel
+       super ModelView
 
        # `DocPage` composing the documentation associated to their ids.
        #
@@ -34,12 +35,6 @@ class DocModel
        # See `add_page`.
        var pages: Map[String, DocPage] = new HashMap[String, DocPage]
 
-       # Nit `Model` from which we extract the documentation.
-       var model: Model is writable
-
-       # The entry point of the `model`.
-       var mainmodule: MModule is writable
-
        # Add a `page` to this documentation.
        fun add_page(page: DocPage) do
                if pages.has_key(page.id) then
@@ -79,9 +74,10 @@ class DocPage
        # Pretty prints the content of this page.
        fun pretty_print: Writable do
                var res = new Template
-               res.addn "page: {title}"
-               res.addn ""
-               root.pretty_print_in(res)
+               res.addn "{class_name} {title}"
+               for child in root.children do
+                       child.pretty_print_in(res)
+               end
                return res
        end
 end
@@ -111,7 +107,7 @@ abstract class DocComposite
        var id: String is writable
 
        # Item title if any.
-       var title: nullable String
+       var title: nullable String is writable
 
        # Does `self` have a `parent`?
        fun is_root: Bool do return parent == null
@@ -129,6 +125,11 @@ abstract class DocComposite
        # Title used in table of content if any.
        var toc_title: nullable String is writable, lazy do return title
 
+       # Is `self` hidden in the table of content?
+       var is_toc_hidden: Bool is writable, lazy do
+               return toc_title == null or is_hidden
+       end
+
        # Add a `child` to `self`.
        #
        # Shortcut for `children.add`.
@@ -139,6 +140,7 @@ abstract class DocComposite
 
        # Depth of `self` in the composite tree.
        fun depth: Int do
+               var parent = self.parent
                if parent == null then return 0
                return parent.depth + 1
        end
@@ -152,6 +154,7 @@ abstract class DocComposite
 
        # Appends the Pretty print of this composite in `res`.
        private fun pretty_print_in(res: Template) do
+               res.add "\t" * depth
                res.add "#" * depth
                res.addn " {id}"
                for child in children do child.pretty_print_in(res)
@@ -215,7 +218,7 @@ end
 redef class ToolContext
 
        # Directory where the Nitdoc is rendered.
-       var opt_dir = new OptionString("output directory", "-d", "--dir")
+       var opt_dir = new OptionString("Output directory", "-d", "--dir")
 
        # Shortcut for `opt_dir.value` with default "doc".
        var output_dir: String is lazy do return opt_dir.value or else "doc"
@@ -314,6 +317,7 @@ redef class MModule
 
        # Avoid id conflict with group
        redef fun nitdoc_id do
+               var mgroup = self.mgroup
                if mgroup == null then return super
                return "{mgroup.full_name}::{full_name}".to_cmangle
        end