X-Git-Url: http://nitlanguage.org diff --git a/src/nitdoc.nit b/src/nitdoc.nit index ff254b5..57af655 100644 --- a/src/nitdoc.nit +++ b/src/nitdoc.nit @@ -73,14 +73,10 @@ class NitdocContext toolcontext.option_context.add_option(opt_github_gitdir) toolcontext.option_context.add_option(opt_piwik_tracker) toolcontext.option_context.add_option(opt_piwik_site_id) - toolcontext.process_options + toolcontext.tooldescription = "Usage: nitdoc [OPTION]... ...\nGenerates HTML pages of API documentation from Nit source files." + toolcontext.process_options(args) self.arguments = toolcontext.option_context.rest - if arguments.length < 1 then - print "usage: nitdoc [options] file..." - toolcontext.option_context.usage - exit(1) - end self.process_options model = new Model @@ -148,7 +144,6 @@ class NitdocContext if opt_shareurl.value == null then sys.system("cp -r {share_dir.to_s}/* {output_dir.to_s}/") else - sys.system("cp -r {share_dir.to_s}/ZeroClipboard.swf {output_dir.to_s}/") sys.system("cp -r {share_dir.to_s}/resources/ {output_dir.to_s}/resources/") end self.dot_dir = null @@ -161,7 +156,7 @@ class NitdocContext end private fun overview do - var overviewpage = new NitdocOverview(self, dot_dir) + var overviewpage = new NitdocOverview(self) overviewpage.save("{output_dir.to_s}/index.html") end @@ -173,14 +168,14 @@ class NitdocContext private fun modules do for mmodule in model.mmodules do if mmodule.name == "
" then continue - var modulepage = new NitdocModule(mmodule, self, dot_dir) + var modulepage = new NitdocModule(mmodule, self) modulepage.save("{output_dir.to_s}/{mmodule.url}") end end private fun classes do for mclass in mbuilder.model.mclasses do - var classpage = new NitdocClass(mclass, self, dot_dir, source) + var classpage = new NitdocClass(mclass, self) classpage.save("{output_dir.to_s}/{mclass.url}") end end @@ -223,8 +218,6 @@ end # Nitdoc base page abstract class NitdocPage - var dot_dir: nullable String - var source: nullable String var ctx: NitdocContext var shareurl = "." @@ -235,10 +228,11 @@ abstract class NitdocPage protected fun head do append("") - append("") - append("") - append("") - append("") + append("") + append("") + append("") + append("") + append("") var title = "" if ctx.opt_custom_title.value != null then title = " | {ctx.opt_custom_title.value.to_s}" @@ -274,7 +268,7 @@ abstract class NitdocPage # Generate a clickable graphviz image using a dot content protected fun generate_dot(dot: String, name: String, alt: String) do - var output_dir = dot_dir + var output_dir = ctx.dot_dir if output_dir == null then return var file = new OFStream.open("{output_dir}/{name}.dot") file.write(dot) @@ -291,6 +285,7 @@ abstract class NitdocPage # Add a (source) link for a given location protected fun show_source(l: Location): String do + var source = ctx.source if source == null then return "({l.file.filename.simplify_path})" else @@ -301,6 +296,7 @@ abstract class NitdocPage source = x.join(l.line_start.to_s) x = source.split_with("%L") source = x.join(l.line_end.to_s) + source = source.simplify_path return " (source)" end end @@ -367,10 +363,9 @@ class NitdocOverview private var mbuilder: ModelBuilder private var mmodules = new Array[MModule] - init(ctx: NitdocContext, dot_dir: nullable String) do + init(ctx: NitdocContext) do super(ctx) self.mbuilder = ctx.mbuilder - self.dot_dir = dot_dir # get modules var mmodules = new HashSet[MModule] for mmodule in mbuilder.model.mmodule_importation_hierarchy do @@ -460,7 +455,6 @@ class NitdocSearch init(ctx: NitdocContext) do super(ctx) - self.dot_dir = null end redef fun title do return "Search" @@ -549,11 +543,10 @@ class NitdocModule private var intro_mclasses = new HashSet[MClass] private var redef_mclasses = new HashSet[MClass] - init(mmodule: MModule, ctx: NitdocContext, dot_dir: nullable String) do + init(mmodule: MModule, ctx: NitdocContext) do super(ctx) self.mmodule = mmodule self.mbuilder = ctx.mbuilder - self.dot_dir = dot_dir # get local mclasses for m in mmodule.in_nesting.greaters do for mclassdef in m.mclassdefs do @@ -742,11 +735,9 @@ class NitdocClass private var meths = new HashSet[MMethodDef] private var inherited = new HashSet[MPropDef] - init(mclass: MClass, ctx: NitdocContext, dot_dir: nullable String, source: nullable String) do + init(mclass: MClass, ctx: NitdocContext) do super(ctx) self.mclass = mclass - self.dot_dir = dot_dir - self.source = source # load properties var locals = new HashSet[MProperty] for mclassdef in mclass.mclassdefs do @@ -1819,16 +1810,18 @@ redef class AModule private fun full_markdown: String do if n_moduledecl != null and n_moduledecl.n_doc != null then - return n_moduledecl.n_doc.full_markdown.html + return n_moduledecl.n_doc.to_mdoc.full_markdown.write_to_string end return "" end + # The doc location or the first line of the block if doc node is null private fun doc_location: Location do if n_moduledecl != null and n_moduledecl.n_doc != null then return n_moduledecl.n_doc.location end - return location + var l = location + return new Location(l.file, l.line_start, l.line_start, l.column_start, l.column_start) end end @@ -1844,13 +1837,15 @@ redef class AStdClassdef end private fun full_markdown: String do - if n_doc != null then return n_doc.full_markdown.html + if n_doc != null then return n_doc.to_mdoc.full_markdown.write_to_string return "" end + # The doc location or the first line of the block if doc node is null private fun doc_location: Location do if n_doc != null then return n_doc.location - return location + var l = location + return new Location(l.file, l.line_start, l.line_start, l.column_start, l.column_start) end end @@ -1866,13 +1861,15 @@ redef class APropdef end private fun full_markdown: String do - if n_doc != null then return n_doc.full_markdown.html + if n_doc != null then return n_doc.to_mdoc.full_markdown.write_to_string return "" end private fun doc_location: Location do if n_doc != null then return n_doc.location - return location + var l = location + return new Location(l.file, l.line_start, l.line_start, l.column_start, l.column_start) + end end