lib: intro `prompt`, basic Apache 2.0 service to display a prompt
[nit.git] / src / nitdoc.nit
index 7c1dd33..159c771 100644 (file)
@@ -23,6 +23,17 @@ import doc
 redef class ToolContext
        # Nitdoc generation phase.
        var docphase: Phase = new Nitdoc(self, null)
 redef class ToolContext
        # Nitdoc generation phase.
        var docphase: Phase = new Nitdoc(self, null)
+
+       # Do not generate documentation for attributes.
+       var opt_no_attributes = new OptionBool("Ignore the attributes", "--no-attributes")
+
+       # Do not generate documentation for private properties.
+       var opt_private = new OptionBool("Also generate private API", "--private")
+
+       redef init do
+               super
+               option_context.add_option(opt_no_attributes, opt_private)
+       end
 end
 
 # Nitdoc phase explores the model and generate pages for each mentities found
 end
 
 # Nitdoc phase explores the model and generate pages for each mentities found
@@ -30,17 +41,30 @@ private class Nitdoc
        super Phase
        redef fun process_mainmodule(mainmodule, mmodules)
        do
        super Phase
        redef fun process_mainmodule(mainmodule, mmodules)
        do
-               var doc = new DocModel(mainmodule.model, mainmodule)
+               var min_visibility = private_visibility
+               if not toolcontext.opt_private.value then min_visibility = protected_visibility
+               var accept_attribute = true
+               if toolcontext.opt_no_attributes.value then accept_attribute = false
+
+               var filters = new ModelFilter(
+                       min_visibility,
+                       accept_attribute = accept_attribute,
+                       accept_fictive = false)
+               var doc = new DocModel(mainmodule.model, mainmodule, filters)
 
                var phases = [
 
                var phases = [
-                       new ExtractionPhase(toolcontext, doc),
+                       new IndexingPhase(toolcontext, doc),
                        new MakePagePhase(toolcontext, doc),
                        new POSetPhase(toolcontext, doc),
                        new ConcernsPhase(toolcontext, doc),
                        new StructurePhase(toolcontext, doc),
                        new InheritanceListsPhase(toolcontext, doc),
                        new IntroRedefListPhase(toolcontext, doc),
                        new MakePagePhase(toolcontext, doc),
                        new POSetPhase(toolcontext, doc),
                        new ConcernsPhase(toolcontext, doc),
                        new StructurePhase(toolcontext, doc),
                        new InheritanceListsPhase(toolcontext, doc),
                        new IntroRedefListPhase(toolcontext, doc),
-                       new GraphPhase(toolcontext, doc): DocPhase]
+                       new LinListPhase(toolcontext, doc),
+                       new GraphPhase(toolcontext, doc),
+                       new ReadmePhase(toolcontext, doc),
+                       new RenderHTMLPhase(toolcontext, doc),
+                       new DocTestPhase(toolcontext, doc): DocPhase]
 
                for phase in phases do
                        toolcontext.info("# {phase.class_name}", 1)
 
                for phase in phases do
                        toolcontext.info("# {phase.class_name}", 1)