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;
// should not realy be here -- or anywhere...??
-
+Options = false; // refer to this everywhere!
BuildDocs = {
srcFiles : [],
- build : function ()
+
+ build : function (opts)
{
-
+ Options = opts;
Options.init();
Options.LOG.inform("JsDoc Toolkit main() running at "+new Date()+".");
//Options.LOG.inform("With options: ");
- if (!File.isDirectory(Options.cacheDirectory)) {
+ if (Options.cacheDirectory.length && !File.isDirectory(Options.cacheDirectory)) {
File.mkdir(Options.cacheDirectory)
}
this.symbolSet = Parser.symbols;
// this currently uses the concept of publish.js...
-
+
this.publish();
_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;
},
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);
publish : function() {
-
+ Options.LOG.inform("Publishing");
// link!!!
-
- if (!File.exists(Options.target))
+ Options.LOG.inform("Making directories");
+ if (!File.isDirectory(Options.target))
File.mkdir(Options.target);
- if (!File.exists(Options.target+"/symbols"))
+ if (!File.isDirectory(Options.target+"/symbols"))
File.mkdir(Options.target+"/symbols");
- if (!File.exists(Options.target+"/symbols/src"))
+ if (!File.isDirectory(Options.target+"/symbols/src"))
File.mkdir(Options.target+"/symbols/src");
+ if (!File.isDirectory(Options.target +"/json")) {
+ File.makeDir(Options.target +"/json");
+ }
+
+ Options.LOG.inform("Copying files from static");
// copy everything in 'static' into
File.list(Options.templatesDir + '/static').forEach(function (f) {
File.copy(Options.templatesDir + '/static/' + f, Options.target + '/' + f);
});
- if (!File.isDirectory(Options.target +"/json")) {
- File.makeDir(Options.target +"/json");
- }
+
+ Options.LOG.inform("Setting up templates");
// used to check the details of things being linked to
Link.symbolSet = symbolSet;
Link.base = "../";