1 //<Script type="text/javascript">
7 imports['Object.js'].load(Object);
9 File = imports['File.js'].File;
10 JSDOC = imports['JSDOC.js'].JSDOC;
11 console = imports['console.js'].console;
12 Introspect = imports['JSDOC/Introspect.js'].Introspect;
14 var outputdir = Seed.argv[2];
18 name: "ArgumentError",
19 message: "No output directory specified on the command line\n" +
20 "Usage seed docs.js /var/www/seed [Gtk] \n"
24 if (!File.isDirectory(outputdir)) {
25 console.log("Creating directory " + outputdir);
26 File.mkdir(outputdir);
30 //var ns_list = [ 'GIRepository' ];
34 var ns_list = JSDOC.Introspect.namespaces();
35 if (typeof(Seed.argv[3]) == 'string') {
36 console.log(Seed.argv.length);
37 ns_list = Seed.argv[3].split(',');
40 ns_list = ns_list.sort();
42 var cls_template = new JSDOC.Template(__script_path__ + '/docs/class.html');
43 var cls_ix_template = new JSDOC.Template(__script_path__ + '/docs/class_ix.html');
44 var reference_template = new JSDOC.Template(__script_path__ + '/docs/references.html');
46 ns_list.map(function(ns_name)
48 var core = imports.gi[ns_name];
49 var idx = { name: ns_name};
50 console.log("START:" + ns_name);
52 var ns = Introspect.ns(ns_name);
53 ns['left_bar'] = cls_ix_template.process(ns);
55 Gio.simple_write(outputdir + '/'+ ns_name + '.html', cls_template.process(ns));
57 // left bar index of elements in namespace...
58 Gio.simple_write(outputdir + '/_ix_'+ ns_name + '.shtml', cls_ix_template.process(ns));
63 'interfaces' : 'Interface',
69 for (var i in actions) {
71 ns[i].map( function(n) {
72 Gio.simple_write(outputdir + '/'+ ns_name + '.' + n + '.html',
75 Introspect.factory(actions[i], ns_name, n),
76 { 'left_bar' :ns['left_bar'] }
81 console.log(ns_name + '.' +n);
89 var html_file_path = '';
93 for (var i in Introspect.references) {
94 html_file_path = File.join(outputdir, i + '.html');
96 if (i == 'undefined') {
97 console.log("Undefined name space - ignored");
100 if (!File.isFile(html_file_path)) {
101 console.log("No HTML file " + html_file_path + " to insert references into - ignored");
105 refs = reference_template.process(Introspect.references[i]);
107 // HTML to put refs into
108 html = File.read(html_file_path);
110 // do the replacement
111 html = html.replace(/\<!--references--\>/, refs);
113 // write back to file
114 Gio.simple_write(html_file_path, html);
118 var ix_template = new JSDOC.Template(__script_path__ + '/docs/index.html');
119 Gio.simple_write(outputdir + '/index.html', ix_template.process(ns_idx));
120 File.silentRecursiveCopy(__script_path__ + '/docs/resources/', outputdir);