src/doc/api: add links to renderer code
[nit.git] / src / doc / doc_base.nit
index 4338eee..98362ce 100644 (file)
@@ -16,8 +16,8 @@
 module doc_base
 
 import toolcontext
-import model_utils
 import model_ext
+import model::model_collect
 
 # The model of a Nitdoc documentation.
 #
@@ -27,6 +27,15 @@ import model_ext
 # It is a placeholder to share data between each phase.
 class DocModel
 
+       # Model to generate the documentation for
+       var model: Model
+
+       # Main module of the sources behing documented
+       var mainmodule: MModule
+
+       # Model filters to apply
+       var filter: ModelFilter
+
        # `DocPage` composing the documentation associated to their ids.
        #
        # This is where `DocPhase` store and access pages to produce documentation.
@@ -34,12 +43,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 +82,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 +115,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
@@ -144,6 +148,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
@@ -157,6 +162,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)
@@ -220,7 +226,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"
@@ -319,6 +325,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