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 (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)
}
_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.warn("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);
Parser.finish();
- }
+ },
},
- publishJSON = function(file, data)
+ publishJSON : function(file, data)
{
// what we need to output to be usefull...
// a) props..
{
- if (!name) {
- name = sourceFile.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 pretty = imports.PrettyPrint.toPretty(File.read(sourceFile));
- File.write(Options.target+"/symbols/src" + prettyfile,
+ File.write(Options.target+"/symbols/src/" + name,
'<html><head>' +
'<title>' + sourceFile + '</title>' +
'<link rel="stylesheet" type="text/css" href="../../../highlight-js.css"/>' +