nitdoc: add --shareurl to link external share files
authorAlexandre Terrasa <alexandre@moz-code.org>
Wed, 19 Feb 2014 20:32:57 +0000 (15:32 -0500)
committerAlexandre Terrasa <alexandre@moz-code.org>
Thu, 20 Feb 2014 19:11:52 +0000 (14:11 -0500)
Make it easy for share development

Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/nitdoc.nit
tests/sav/nitdoc.res

index 0c2aaad..354aee2 100644 (file)
@@ -42,6 +42,7 @@ class NitdocContext
        private var opt_dir = new OptionString("Directory where doc is generated", "-d", "--dir")
        private var opt_source = new OptionString("What link for source (%f for filename, %l for first line, %L for last line)", "--source")
        private var opt_sharedir = new OptionString("Directory containing the nitdoc files", "--sharedir")
+       private var opt_shareurl = new OptionString("Do not copy shared files, link JS and CSS file to share url instead", "--shareurl")
        private var opt_nodot = new OptionBool("Do not generate graphes with graphviz", "--no-dot")
        private var opt_private: OptionBool = new OptionBool("Generate the private API", "--private")
 
@@ -60,7 +61,7 @@ class NitdocContext
        init do
                toolcontext.option_context.add_option(opt_dir)
                toolcontext.option_context.add_option(opt_source)
-               toolcontext.option_context.add_option(opt_sharedir)
+               toolcontext.option_context.add_option(opt_sharedir, opt_shareurl)
                toolcontext.option_context.add_option(opt_nodot)
                toolcontext.option_context.add_option(opt_private)
                toolcontext.option_context.add_option(opt_custom_title)
@@ -119,17 +120,11 @@ class NitdocContext
                                print "Error: Cannot locate nitdoc share files. Uses --sharedir or envvar NIT_DIR"
                                abort
                        end
-                       dir = "{share_dir.to_s}/scripts/js-facilities.js"
-                       if share_dir == null then
-                               print "Error: Invalid nitdoc share files. Check --sharedir or envvar NIT_DIR"
-                               abort
-                       end
-
-                       if opt_private.value then
-                               min_visibility = none_visibility
-                       else
-                               min_visibility = protected_visibility
-                       end
+               end
+               if opt_private.value then
+                       min_visibility = none_visibility
+               else
+                       min_visibility = protected_visibility
                end
                var gh_upstream = opt_github_upstream.value
                var gh_base_sha = opt_github_base_sha1.value
@@ -150,7 +145,12 @@ class NitdocContext
        fun generate_nitdoc do
                # Create destination dir if it's necessary
                if not output_dir.file_exists then output_dir.mkdir
-               sys.system("cp -r {share_dir.to_s}/* {output_dir.to_s}/")
+               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
                if not opt_nodot.value then self.dot_dir = output_dir.to_s
                overview
@@ -226,25 +226,27 @@ abstract class NitdocPage
        var dot_dir: nullable String
        var source: nullable String
        var ctx: NitdocContext
+       var shareurl = "."
 
        init(ctx: NitdocContext) do
                self.ctx = ctx
+               if ctx.opt_shareurl.value != null then shareurl = ctx.opt_shareurl.value.as(not null)
        end
 
        protected fun head do
                append("<meta charset='utf-8'/>")
-               append("<script type='text/javascript' src='scripts/jquery-1.7.1.min.js'></script>")
-               append("<script type='text/javascript' src='scripts/ZeroClipboard.min.js'></script>")
-               append("<script type='text/javascript' src='scripts/Nitdoc.UI.js'></script>")
-               append("<script type='text/javascript' src='scripts/Markdown.Converter.js'></script>")
-               append("<script type='text/javascript' src='scripts/base64.js'></script>")
-               append("<script type='text/javascript' src='scripts/Nitdoc.GitHub.js'></script>")
+               append("<script type='text/javascript' src='{shareurl}/scripts/jquery-1.7.1.min.js'></script>")
+               append("<script type='text/javascript' src='{shareurl}/scripts/ZeroClipboard.min.js'></script>")
+               append("<script type='text/javascript' src='{shareurl}/scripts/Nitdoc.UI.js'></script>")
+               append("<script type='text/javascript' src='{shareurl}/scripts/Markdown.Converter.js'></script>")
+               append("<script type='text/javascript' src='{shareurl}/scripts/base64.js'></script>")
+               append("<script type='text/javascript' src='{shareurl}/scripts/Nitdoc.GitHub.js'></script>")
                append("<script type='text/javascript' src='quicksearch-list.js'></script>")
-               append("<script type='text/javascript' src='scripts/Nitdoc.QuickSearch.js'></script>")
-               append("<link rel='stylesheet' href='styles/main.css' type='text/css' media='screen'/>")
-               append("<link rel='stylesheet' href='styles/Nitdoc.UI.css' type='text/css' media='screen'/>")
-               append("<link rel='stylesheet' href='styles/Nitdoc.QuickSearch.css' type='text/css' media='screen'/>")
-               append("<link rel='stylesheet' href='styles/Nitdoc.GitHub.css' type='text/css' media='screen'/>")
+               append("<script type='text/javascript' src='{shareurl}/scripts/Nitdoc.QuickSearch.js'></script>")
+               append("<link rel='stylesheet' href='{shareurl}/styles/main.css' type='text/css' media='screen'/>")
+               append("<link rel='stylesheet' href='{shareurl}/styles/Nitdoc.UI.css' type='text/css' media='screen'/>")
+               append("<link rel='stylesheet' href='{shareurl}/styles/Nitdoc.QuickSearch.css' type='text/css' media='screen'/>")
+               append("<link rel='stylesheet' href='{shareurl}/styles/Nitdoc.GitHub.css' type='text/css' media='screen'/>")
                var title = ""
                if ctx.opt_custom_title.value != null then
                        title = " | {ctx.opt_custom_title.value.to_s}"
index 243fc46..61f2d87 100644 (file)
@@ -14,6 +14,7 @@ usage: nitdoc [options] file...
   -d, --dir                Directory where doc is generated
   --source                 What link for source (%f for filename, %l for first line, %L for last line)
   --sharedir               Directory containing the nitdoc files
+  --shareurl               Do not copy shared files, link JS and CSS file to share url instead
   --no-dot                 Do not generate graphes with graphviz
   --private                Generate the private API
   --custom-title           Title displayed in the top of the Overview page and as suffix of all page names