X-Git-Url: http://nitlanguage.org diff --git a/src/nitdoc.nit b/src/nitdoc.nit index 1e6059b..94132ff 100644 --- a/src/nitdoc.nit +++ b/src/nitdoc.nit @@ -19,18 +19,20 @@ module nitdoc import modelbuilder import doc -import counter redef class ToolContext # Nitdoc generation phase. var docphase: Phase = new Nitdoc(self, null) - # File pattern used to link documentation to source code. - var opt_test = new OptionBool("print test data", "--test") + # 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_test) + option_context.add_option(opt_no_attributes, opt_private) end end @@ -39,10 +41,18 @@ private class Nitdoc 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(toolcontext.modelbuilder.model, mainmodule, filters) var phases = [ - new ExtractionPhase(toolcontext, doc), new IndexingPhase(toolcontext, doc), new MakePagePhase(toolcontext, doc), new POSetPhase(toolcontext, doc), @@ -53,33 +63,13 @@ private class Nitdoc new LinListPhase(toolcontext, doc), new GraphPhase(toolcontext, doc), new ReadmePhase(toolcontext, doc), - new RenderHTMLPhase(toolcontext, doc): DocPhase] + new RenderHTMLPhase(toolcontext, doc), + new DocTestPhase(toolcontext, doc): DocPhase] for phase in phases do toolcontext.info("# {phase.class_name}", 1) phase.apply end - - if toolcontext.opt_test.value then - # Pages metrics - var page_counter = new Counter[String] - var pages = doc.pages.keys.to_a - default_comparator.sort(pages) - for title in pages do - var page = doc.pages[title] - page_counter.inc page.class_name - print page.pretty_print.write_to_string - end - print "Generated {doc.pages.length} pages" - page_counter.print_elements(100) - # Model metrics - var model_counter = new Counter[String] - for mentity in doc.mentities do - model_counter.inc mentity.class_name - end - print "Found {doc.mentities.length} mentities" - model_counter.print_elements(100) - end end end