X-Git-Url: http://git.roojs.org/?p=gnome.introspection-doc-generator;a=blobdiff_plain;f=JSDOC%2FBuildDocs.js;h=b4c96b4a5ed0779ece587436230a64050664f35d;hp=a0e7e957680b56c69b2096322db670c073cd1a14;hb=f89f08b7494ad72724abd3435a9880c1d1e1e3bd;hpb=c161b04e3f6f28e1cf7c22d04757704f257bd957 diff --git a/JSDOC/BuildDocs.js b/JSDOC/BuildDocs.js index a0e7e95..b4c96b4 100644 --- a/JSDOC/BuildDocs.js +++ b/JSDOC/BuildDocs.js @@ -22,6 +22,17 @@ DocComment = imports.DocComment.DocComment; // should not realy be here -- or anywhere...?? +function makeSortby(attribute) { + return function(a, b) { + if (a[attribute] != undefined && b[attribute] != undefined) { + a = a[attribute]; //.toLowerCase(); + b = b[attribute];//.toLowerCase(); + if (a < b) return -1; + if (a > b) return 1; + return 0; + } + } +} Options = false; // refer to this everywhere! @@ -137,7 +148,7 @@ BuildDocs = { var txs = new TextStream(src); - var tr = new TokenReader({ keepComments : true, keepWhite : true }); + var tr = new TokenReader({ keepComments : true, keepWhite : true , sepIdents: false }); var ts = new TokenStream(tr.tokenize(txs)); @@ -191,19 +202,19 @@ BuildDocs = { Link.base = "../"; var classTemplate = new Template({ - templateFile : Options.templateDir + "/class.tmpl", + templateFile : Options.templateDir + "/class.html", Link : Link }); var classesTemplate = new Template({ - templateFile : Options.templateDir +"/allclasses.tmpl", + templateFile : Options.templateDir +"/allclasses.html", Link : Link }); var classesindexTemplate = new Template({ - templateFile : Options.templateDir +"/index.tmpl", + templateFile : Options.templateDir +"/index.html", Link : Link }); var fileindexTemplate = new Template({ - templateFile : Options.templateDir +"/allfiles.tmpl", + templateFile : Options.templateDir +"/allfiles.html", Link: Link }); @@ -220,17 +231,7 @@ BuildDocs = { function isaClass($) { return ($.is("CONSTRUCTOR") || $.isNamespace); } - function makeSortby(attribute) { - return function(a, b) { - if (a[attribute] != undefined && b[attribute] != undefined) { - a = a[attribute]; //.toLowerCase(); - b = b[attribute];//.toLowerCase(); - if (a < b) return -1; - if (a > b) return 1; - return 0; - } - } - } + @@ -256,7 +257,7 @@ BuildDocs = { // var classesIndex = classesTemplate.process(classes); // kept in memory - + Options.LOG.inform("iterate classes"); for (var i = 0, l = classes.length; i < l; i++) { var symbol = classes[i]; @@ -271,7 +272,7 @@ BuildDocs = { // dump out a - this.publishJSON(Options.target+"/json/", symbol.alias+'.json', symbol) + this.publishJSON(Options.target+"/json/" + symbol.alias+'.json', symbol) @@ -279,9 +280,9 @@ BuildDocs = { // regenrate the index with different relative links Link.base = ""; - var classesIndex = classesTemplate.process(classes); + //var classesIndex = classesTemplate.process(classes); - + Options.LOG.inform("build index"); File.write(Options.target + "/index."+ Options.publishExt, classesindexTemplate.process(classes) @@ -307,12 +308,19 @@ BuildDocs = { } allFiles = allFiles.sort(makeSortby("name")); - File.write(Options.target , "/files."+Options.publishExt, + Options.LOG.inform("write files index"); + + File.write(Options.target + "/files."+Options.publishExt, fileindexTemplate.process(allFiles) ); }, - + /** + * JSON files are lookup files for the documentation + * - can be used by IDE's or AJAX based doc tools + * + * + */ publishJSON : function(file, data) { // what we need to output to be usefull... @@ -348,7 +356,7 @@ BuildDocs = { m = ownEvents[i]; events.push( { name : m.name.substring(1), - sig : makeFuncSkel(m.params), + sig : this.makeFuncSkel(m.params), type : 'function', desc : m.desc }); @@ -376,16 +384,17 @@ BuildDocs = { makeSrcFile: function(sourceFile) { // this stuff works... - return; - + - name = sourceFile.substring(Options.baseDir.length+1); + //print(sourceFile); + var name = sourceFile; //.substring(Options.baseDir.length+1); + //print(name); name = name.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_"); name = name.replace(/\:/g, "_"); //?? Options.LOG.inform("Write Source file : " + Options.target+"/symbols/src/" + name); - var pretty = imports.PrettyPrint.toPretty(File.read(sourceFile)); + var pretty = imports.PrettyPrint.toPretty(File.read(Options.baseDir.length + sourceFile)); File.write(Options.target+"/symbols/src/" + name, '' + '' + sourceFile + '' + @@ -393,8 +402,22 @@ BuildDocs = { '' + pretty + ''); + }, + /** + * used by JSON output to generate a function skeleton + */ + makeFuncSkel :function(params) { + if (!params) return "function ()\n{\n\n}"; + return "function (" + + params.filter( + function($) { + return $.name.indexOf(".") == -1; // don't show config params in signature + } + ).map( function($) { return $.name == 'this' ? '_self' : $.name; } ).join(", ") + + ")\n{\n\n}"; } - + + };