[introspection-doc-generator] Commit changes to top level



commit bd23da659f79148fd4befb53701cdfc0d8766cc0
Author: Alan Knowles <alan akkbhome com>
Date:   Mon Mar 29 22:27:53 2010 +0800

    Commit changes to top level

 JSDOC.js |    1 -
 docs.js  |  192 +++++++++++++++++++++++++++++--------------------------------
 xnew.js  |    3 +-
 3 files changed, 93 insertions(+), 103 deletions(-)
---
diff --git a/JSDOC.js b/JSDOC.js
index c8b6395..bba697b 100644
--- a/JSDOC.js
+++ b/JSDOC.js
@@ -1,5 +1,4 @@
 // <script type="text/javascript">
-GLib = imports.gi.GLib;
 
 xnew =  imports['xnew.js'].xnew; 
 
diff --git a/docs.js b/docs.js
index 43cdc37..2361042 100644
--- a/docs.js
+++ b/docs.js
@@ -4,65 +4,56 @@ Gtk = imports.gi.Gtk;
 Gio = imports.gi.Gio;
 Gdk = imports.gi.Gdk;
 
-imports['Array.js']; 
-JSDOC   = imports['JSDOC.js'].JSDOC; 
-console = imports['console.js'].console; 
-Roo     = imports['Roo.js'].Roo; 
+imports['Object.js'].load(Object); 
 
-Introspect = imports['JSDOC/Introspect.js'].Introspect; 
+File        = imports['File.js'].File; 
+JSDOC       = imports['JSDOC.js'].JSDOC; 
+console     = imports['console.js'].console; 
+Introspect  = imports['JSDOC/Introspect.js'].Introspect; 
 
-   
+var outputdir = Seed.argv[2];
+
+if (!outputdir) {
+    throw {
+        name: "ArgumentError", 
+        message: "No output directory specified on the command line\n" +
+          "Usage seed docs.js /var/www/seed  [Gtk] \n"
+    };
+}
 
-//var outputdir = '/home2/www/devel/seed';
-var outputdir = '/var/www/seed';
+if (!File.isDirectory(outputdir)) {
+    console.log("Creating directory " + outputdir);
+    File.mkdir(outputdir);
+};
 
 // list namespace..
 //var ns_list = [ 'GIRepository' ];
 
-var ns_list = JSDOC.Introspect.namespaces().sort();
-//console.dump(ns_list);
- // ns_list = [ 'Gio' ];
-//ns_list = [ 'Gtk' ];
- /* 'Gdk',
-    'Gtk',  
-    'GLib',
-    'Gio',
-    'GObject',
-    'GIRepository',
-    'Gst',
-    'Pango']
-*/
-var cls_list = [];
 
+
+var ns_list = JSDOC.Introspect.namespaces();
+if (typeof(Seed.argv[3]) == 'string') {
+    console.log(Seed.argv.length);
+    ns_list = Seed.argv[3].split(',');
+}
+ 
+ns_list = ns_list .sort();
+var cls_list = [];
 var cls_template = new JSDOC.Template(__script_path__ + '/docs/class.html');
-var cls_ix_template = new JSDOC.Template(__script_path__ + '/docs/class_ix.tmpl');
+var cls_ix_template = new JSDOC.Template(__script_path__ + '/docs/class_ix.html');
 var reference_template = new JSDOC.Template(__script_path__ + '/docs/references.html');
-
-Roo.each(ns_list, function(ns_name) {
-    var core;
-    //if (ns_name == 'Epiphany') {
-     //   return;
-    //} 
-    if (ns_name == 'GnomeGamesSupport') { // on gnome dev cd stuff.
-        return;
-    }
-    
-    //try {
-        core = imports.gi[ns_name];
-    //} catch (e) {
-    //    Seed.print("SKIP (no import): "+ ns_name + ": " +  e);
-        
-    //    return;
-    //}
-    Seed.print("START:" + ns_name);
-    // ones that cause problems.
-    
-    
-    
-    // Namespace file..
+ 
+ns_list.map(function(ns_name) 
+{
+    var  core = imports.gi[ns_name];
+   
+    console.log("START:" + ns_name);
+   
     var ns = Introspect.ns(ns_name);
+    ns['left_bar'] = cls_ix_template.process(ns);
 
-    Gio.simple_write(outputdir + '/'+ ns_name +  '.shtml', cls_template.process(ns));
+    Gio.simple_write(outputdir + '/'+ ns_name +  '.html', cls_template.process(ns));
+    
     cls_list.push({
         alias : ns_name 
     });
@@ -70,67 +61,66 @@ Roo.each(ns_list, function(ns_name) {
     // left bar index of elements in namespace...
     Gio.simple_write(outputdir + '/_ix_'+ ns_name +  '.shtml', cls_ix_template.process(ns));
      
-    // index...
-    
-    
-    Roo.each(ns.objects, function(n) {
-        
-        
-        Gio.simple_write(outputdir + '/'+ ns_name + '.' + n + '.shtml', 
-            cls_template.process( Introspect.factory('Class', ns_name, n)));
- 
-        Seed.print(ns_name + '.' +n);
-    });
-     Roo.each(ns.interfaces, function(n) {
-        
-        
-        Gio.simple_write(outputdir + '/'+ ns_name + '.' + n + '.shtml', 
-            cls_template.process( Introspect.factory('Interface', ns_name, n)));
- 
-        Seed.print(ns_name + '.' +n);
-    });
-    Roo.each(ns.structs, function(n) {
-        
-        
-        Gio.simple_write(outputdir + '/'+ ns_name + '.' + n + '.shtml', 
-            cls_template.process( Introspect.factory('Struct', ns_name, n)));
-        
-        
-        Seed.print(ns_name + '.' +n);
-    });
     
-    Roo.each(ns.unions, function(n) {
-        
-        
-        Gio.simple_write(outputdir + '/'+ ns_name + '.' + n + '.shtml', 
-            cls_template.process( Introspect.factory('Union', ns_name, n)));
-        
-        
-        Seed.print(ns_name + '.' +n);
-    });
-    
-    Roo.each(ns.enums, function(n) {
-        
-        
-        Gio.simple_write(outputdir + '/'+ ns_name + '.' + n + '.shtml', 
-            cls_template.process( Introspect.factory('Enum', ns_name, n)));
-        
-        
-        Seed.print(ns_name + '.' +n);
-    });
+    var actions = {
+        'objects' : 'Class',
+        'interfaces' : 'Interface',
+        'structs' : 'Struct',
+        'unions' : 'Union',
+        'enums' : 'Enum'
+        
+    };
+    for (var i in actions) {
+        ns.objects.map( function(n) {
+            Gio.simple_write(outputdir + '/'+ ns_name + '.' + n + '.html', 
+                cls_template.process(
+                    Object.extend(
+                        Introspect.factory(actions[i], ns_name, n),
+                        { 'left_bar' :ns['left_bar'] }
+                    )
+                )
+            )
+                       
+            console.log(ns_name + '.' +n);
+        }); 
+    }
     
-})
+      
+});
+
+var refs = '';
+var html_file_path = '';
+var html = ''
+
 
 for (var i in Introspect.references) {
+    html_file_path = File.join(outputdir, i + '.html');
+  
+    if (i == 'undefined') {
+      console.log("Undefined name space - ignored");
+      continue;
+    }
+    if (!File.isFile(html_file_path)) {
+      console.log("No HTML file " + html_file_path + " to insert references into - ignored");
+      continue;
+    }
     
-    console.log("REFERENCE: " + i + ' : ' + Introspect.references[i].length);
-    Gio.simple_write(outputdir + '/references.'+ i + '.html', 
-            reference_template.process( Introspect.references[i] ));
-       
+    refs = reference_template.process(Introspect.references[i]);
+
+      // HTML to put refs into
+    html =  File.read(html_file_path);
+
+      // do the replacement
+    html = html.replace(/\<!--references--\>/, refs);
+
+      // write back to file
+    Gio.simple_write(html_file_path, html);
+
 }
 
-var ix_template = new JSDOC.Template(__script_path__ + '/docs/index.tmpl');
-Gio.simple_write(outputdir + '/index.shtml', ix_template.process(ns_list));
+var ix_template = new JSDOC.Template(__script_path__ + '/docs/index.html');
+Gio.simple_write(outputdir + '/index.html', ix_template.process(ns_list));
+File.silentRecursiveCopy(__script_path__ + '/docs/resources/', outputdir);
 
 
 
diff --git a/xnew.js b/xnew.js
index ec3e7ef..1d87d33 100644
--- a/xnew.js
+++ b/xnew.js
@@ -118,10 +118,11 @@ var xnew = {
                 continue;
             }
             var v = fn.replace(/.js$/, '');
+            imports[path + '/' + fn];
             var assign = imports[path + '/' + fn][v];
             //console.log('loaded : ' + path + '/'+v);
             if (!obj[v]) {
-                Seed.print("using file as object for " + path + ':' +v);
+                Seed.print("using file as object for " + path + ':' + typeof(assign) + ':' + v);
             }
             obj[v] = obj[v] || assign;
             



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]