X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=docs.js;h=57d0a693cf6063c84bf1e56e1f32995cc875295c;hb=dd3a4a211a4177eb986e1c9855c26e208ada9a42;hp=9755ebe76869bd791206f21af5d597792894dd74;hpb=8a6ce52283c2e5f8e5a44e247a2063641c7091f9;p=gnome.introspection-doc-generator diff --git a/docs.js b/docs.js index 9755ebe..57d0a69 100644 --- a/docs.js +++ b/docs.js @@ -3,13 +3,15 @@ Gtk = imports.gi.Gtk; Gio = imports.gi.Gio; Gdk = imports.gi.Gdk; +XObject = imports.XObject.XObject; -imports['Object.js'].load(Object); -File = imports['File.js'].File; -JSDOC = imports['JSDOC.js'].JSDOC; -console = imports['console.js'].console; + +File = imports.File.File; +console = imports.console.console; Introspect = imports['JSDOC/Introspect.js'].Introspect; +Template = imports['JSDOC/Template.js'].Template; + var outputdir = Seed.argv[2]; @@ -21,41 +23,76 @@ if (!outputdir) { }; } + if (!File.isDirectory(outputdir)) { console.log("Creating directory " + outputdir); File.mkdir(outputdir); }; -// list namespace.. -//var ns_list = [ 'GIRepository' ]; - - + +// Which libraries to build. -var ns_list = JSDOC.Introspect.namespaces(); +var ns_list = 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_template = new JSDOC.Template(__script_path__ + '/docs/class.html'); -var cls_ix_template = new JSDOC.Template(__script_path__ + '/docs/class_ix.html'); -var reference_template = new JSDOC.Template(__script_path__ + '/docs/references.html'); + +// which languages do we want to output for. +langs=[]; +File.list(__script_path__ + '/templates/').forEach(function(f) { + if (!File.isDirectory(__script_path__ + '/templates/' + f)) { + continue; + } + if (f == 'resources') { + continue; + } + langs.push({ + name : f, + cls_template : new Template(__script_path__ + '/templates/' + f + '/class.html'), + cls_ix_template : new Template(__script_path__ + '/templates/' + f + '/class_ix.html'), + reference_template : new Template(__script_path__ + '/templates/' + f + '/references.html'), + }); +}); + + +/* +var cls_template = new Template(__script_path__ + '/templates/class.html'); +var cls_ix_template = new Template(__script_path__ + '/templates/class_ix.html'); +var reference_template = new Template(__script_path__ + '/templates/references.html'); +*/ + + var ns_idx = []; -ns_list.map(function(ns_name) +ns_list.forEach(function(ns_name) { + + //if (ns_idx.length) { return ;/* do one - for testing */ } + var core = imports.gi[ns_name]; var idx = { name: ns_name}; console.log("START:" + ns_name); var ns = Introspect.ns(ns_name); + + if (File.exists(ns.gir_file)) { + File.copyFile(ns.gir_file, outputdir + '/'+ ns.gir_filename, Gio.FileCopyFlags.OVERWRITE); + } + + ns['left_bar'] = cls_ix_template.process(ns); - Gio.simple_write(outputdir + '/'+ ns_name + '.html', cls_template.process(ns)); - - // left bar index of elements in namespace... - Gio.simple_write(outputdir + '/_ix_'+ ns_name + '.shtml', cls_ix_template.process(ns)); + langs.forEach(function(lang) { + // namespace template + Gio.simple_write(outputdir + '/'+ ns_name + '.html', lang.cls_template.process(ns)); + + // left bar index of elements in namespace... + Gio.simple_write(outputdir + '/_ix_'+ ns_name + '.shtml', lang.cls_ix_template.process(ns)); + + }); var actions = { @@ -67,11 +104,14 @@ ns_list.map(function(ns_name) }; for (var i in actions) { - idx[i]= ns[i].length; - ns[i].map( function(n) { + // we flag GLib as a GObject lib... + idx[i]= ns_name == 'GLib' ? 1 : ns[i].length ; + ns[i].forEach( function(n) { + + Gio.simple_write(outputdir + '/'+ ns_name + '.' + n + '.html', cls_template.process( - Object.extend( + XObject.extend( Introspect.factory(actions[i], ns_name, n), { 'left_bar' :ns['left_bar'] } ) @@ -82,7 +122,7 @@ ns_list.map(function(ns_name) }); } ns_idx.push(idx); - + }); var refs = ''; @@ -115,9 +155,6 @@ for (var i in Introspect.references) { } -var ix_template = new JSDOC.Template(__script_path__ + '/docs/index.html'); +var ix_template = new Template(__script_path__ + '/templates/index.html'); Gio.simple_write(outputdir + '/index.html', ix_template.process(ns_idx)); -File.silentRecursiveCopy(__script_path__ + '/docs/resources/', outputdir); - - - +File.silentRecursiveCopy(__script_path__ + '/templates/resources/', outputdir, Gio.FileCopyFlags.OVERWRITE);