compiler: handle multi-iterators
[nit.git] / src / doc / doc_base.nit
index 75d225f..29efa62 100644 (file)
@@ -78,9 +78,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
@@ -110,7 +111,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
@@ -120,8 +121,18 @@ abstract class DocComposite
        # Children are ordered, this order can be changed by the `DocPhase`.
        var children = new Array[DocComposite]
 
-       # Does `self` have `children`?
-       fun is_empty: Bool do return children.is_empty
+       # Is `self` not displayed in the page.
+       #
+       # By default, empty elements are hidden.
+       fun is_hidden: Bool do return children.is_empty
+
+       # 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`.
        #
@@ -146,6 +157,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)