X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=JSDOC%2FBuildDocs.js;h=c90bde70b2f3001f6177964364a40fe81748f8af;hb=e1d0589fa0c6ffe627b0c293758c426248d30a23;hp=fd5a5ac4dda1aac68833a18dd5503cbb6740cf23;hpb=4f61719252d32b94e5a51282ccbde59979c94c83;p=gnome.introspection-doc-generator diff --git a/JSDOC/BuildDocs.js b/JSDOC/BuildDocs.js index fd5a5ac..c90bde7 100644 --- a/JSDOC/BuildDocs.js +++ b/JSDOC/BuildDocs.js @@ -10,9 +10,9 @@ File = imports.File.File; Template = imports.JsTemplate.Template.Template; -Options = imports.Options.Options; -Parser = imports.Parser.Parser; +Parser = imports.Parser.Parser; +TextStream = imports.TextStream.TextStream; TokenReader = imports.TokenReader.TokenReader; TokenStream = imports.TokenStream.TokenStream; Symbol = imports.Symbol.Symbol; @@ -21,7 +21,7 @@ Symbol = imports.Symbol.Symbol; // should not realy be here -- or anywhere...?? - +Options = false; // refer to this everywhere! BuildDocs = { @@ -31,20 +31,16 @@ BuildDocs = { srcFiles : [], + build : function (opts) { - - XObject.extend(Options, opts); - + Options = opts; Options.init(); - - - Options.LOG.inform("JsDoc Toolkit main() running at "+new Date()+"."); - Options.LOG.inform("With options: "); + //Options.LOG.inform("With options: "); - if (!File.isDirectory(Options.cacheDirectory)) { + if (Options.cacheDirectory.length && !File.isDirectory(Options.cacheDirectory)) { File.mkdir(Options.cacheDirectory) } @@ -53,7 +49,7 @@ BuildDocs = { this.symbolSet = Parser.symbols; // this currently uses the concept of publish.js... - + this.publish(); @@ -64,25 +60,28 @@ BuildDocs = { _getSrcFiles : function() { this.srcFiles = []; - + var _this = this; var ext = ["js"]; if (Options.ext) { ext = Options.ext.split(",").map(function($) {return $.toLowerCase()}); } for (var i = 0; i < Options.src.length; i++) { - this.srcFiles = this.srcFiles.concat( + // add to sourcefiles.. - File.list(Options.src[i] ).filter( - function($) { - var thisExt = $.split(".").pop().toLowerCase(); - return (ext.indexOf(thisExt) > -1); // || thisExt in JSDOC.handlers); - // we're only interested in files with certain extensions - } - ) - ); + File.list(Options.src[i] ).forEach(function($) { + if (Options['exclude-src'].indexOf($) > -1) { + return; + } + var thisExt = $.split(".").pop().toLowerCase(); + if (ext.indexOf(thisExt) < 0) { + return; + } + _this.srcFiles.push(Options.src[i] + '/' + $); + }); + } - + //Seed.print(JSON.stringify(this.srcFiles, null,4));Seed.quit(); return this.srcFiles; }, @@ -126,16 +125,19 @@ BuildDocs = { var src = '' try { + Options.LOG.inform("reading : " + srcFile); src = File.read(srcFile); } catch(e) { - LOG.warn("Can't read source file '"+srcFile+"': "+e.message); + Options.LOG.warn("Can't read source file '"+srcFile+"': "+e.message); continue; } - - var tr = new TokenReader(); - var ts = new TokenStream(tr.tokenize(src)); + var txs = new TextStream(src); + + var tr = new TokenReader({ keepComments : true, keepWhite : true }); + + var ts = new TokenStream(tr.tokenize(txs)); Parser.parse(ts, srcFile); @@ -151,12 +153,12 @@ BuildDocs = { Parser.finish(); - } + }, publish : function() { - + Options.LOG.inform("Publishing"); // link!!! @@ -218,8 +220,8 @@ BuildDocs = { for (var i = 0, l = files.length; i < l; i++) { var file = files[i]; - var srcDir = Options.target + "/symbols/src/"; - this.makeSrcFile(file, srcDir); + var targetDir = Options.target + "/symbols/src/"; + this.makeSrcFile(file, targetDir); } var classes = symbols.filter(isaClass).sort(makeSortby("alias")); @@ -279,9 +281,9 @@ BuildDocs = { fileindexTemplate.process(allFiles) ); - } + }, - publishJSON = function(file, data) + publishJSON : function(file, data) { // what we need to output to be usefull... // a) props.. @@ -341,27 +343,23 @@ BuildDocs = { }, - makeSrcFile: function(path, srcDir, name) { - if (Options.outputSource) return; + makeSrcFile: function(sourceFile) + { - return; // not done? - if (!name) { - name = path.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_"); - name = name.replace(/\:/g, "_"); - } + name = sourceFile.substring(Options.baseDir.length); + name = name.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_"); + name = name.replace(/\:/g, "_"); //?? - var src = { - path: path, - name:name, - charset: IO.encoding, - hilited: "" - }; - - if (src.hilited) { - IO.saveFile(srcDir, name+publish.conf.ext, src.hilited); - } + var pretty = imports.PrettyPrint.toPretty(File.read(sourceFile)); + File.write(Options.target+"/symbols/src/" + name, + '' + + '' + sourceFile + '' + + '' + + '' + + pretty + + ''); }