X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=docs.js;h=c0b6f267cec145375c37b805515713ba9a7314ff;hb=fd04ff39427341348498b0cfd68d9b633e92ec44;hp=cc826868eca7bd3f5c31074b9cd0fd17d5d9fa40;hpb=12ad9db7e21ea83f39ce2affdba602de3e88ce30;p=gnome.introspection-doc-generator diff --git a/docs.js b/docs.js index cc82686..c0b6f26 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,77 @@ 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); + + // gir goes in top level... + 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 + '/'+ lang.name+ '/' +ns_name + '.html', lang.cls_template.process(ns)); + + // left bar index of elements in namespace... + Gio.simple_write(outputdir + '/'+ lang.name + '/_ix_'+ ns_name + '.shtml', lang.cls_ix_template.process(ns)); + + }); var actions = { @@ -69,21 +107,22 @@ ns_list.map(function(ns_name) for (var i in actions) { // we flag GLib as a GObject lib... idx[i]= ns_name == 'GLib' ? 1 : ns[i].length ; - ns[i].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'] } - ) + ns[i].forEach( function(n) { + var odata = XObject.extend( + Introspect.factory(actions[i], ns_name, n), + { 'left_bar' :ns['left_bar'] } ) - ) - + langs.forEach(function(lang) { + + Gio.simple_write(outputdir + '/'+ lang.name + '/' + ns_name + '.' + n + '.html', + lang.cls_template.process(odata) + ) + }); console.log(ns_name + '.' +n); }); } ns_idx.push(idx); - + }); var refs = ''; @@ -116,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);