// 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!
Link.symbolSet = this.symbolSet;
Link.base = "../";
+ Link.srcFileFlatName = this.srcFileFlatName;
+ Link.srcFileRelName = this.srcFileRelName;
+
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
});
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;
- }
- }
- }
+
Options.LOG.inform("iterate classes");
+ var jsonAll = {};
+
for (var i = 0, l = classes.length; i < l; i++) {
var symbol = classes[i];
var output = "";
Options.LOG.inform("classTemplate Process : " + symbol.alias);
- File.write(Options.target+"/symbols/" +symbol.alias+'.' + Options.publishExt ,
- classTemplate.process(symbol));
- // dump out a
+ File.write(Options.target+"/symbols/" +symbol.alias+'.' + Options.publishExt ,
+ classTemplate.process(symbol));
- this.publishJSON(Options.target+"/json/" + symbol.alias+'.json', symbol)
+ jsonAll[symbol.alias] = this.publishJSON(symbol);
}
+ File.write(Options.target+"/symbols/json/roodata.json",
+ JSON.stringify({
+ success : true,
+ data : jsonAll
+ }, null, 1);
+ );
+
+
// regenrate the index with different relative links
Link.base = "";
//var classesIndex = classesTemplate.process(classes);
fileindexTemplate.process(allFiles)
);
+
+
+
},
/**
* JSON files are lookup files for the documentation
m = ownEvents[i];
events.push( {
name : m.name.substring(1),
- sig : makeFuncSkel(m.params),
+ sig : this.makeFuncSkel(m.params),
type : 'function',
desc : m.desc
});
props : props,
events: events
};
- File.write(file, JSON.stringify(ret, null, 2 ));
+ return ret;
+
// b) methods
},
+ srcFileRelName : function(sourceFile)
+ {
+ return sourceFile.substring(Options.baseDir.length+1);
+ },
+ srcFileFlatName: function(sourceFile)
+ {
+ var name = this.srcFileRelName(sourceFile);
+ name = name.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_");
+ return name.replace(/\:/g, "_") + '.html'; //??;
+
+ },
+
makeSrcFile: function(sourceFile)
{
// this stuff works...
- return;
-
-
- name = sourceFile.substring(Options.baseDir.length+1);
- name = name.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_");
+
- name = name.replace(/\:/g, "_"); //??
+ var name = this.srcFileFlatName(sourceFile);
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( sourceFile));
File.write(Options.target+"/symbols/src/" + name,
'<html><head>' +
'<title>' + sourceFile + '</title>' +
- '<link rel="stylesheet" type="text/css" href="../../../highlight-js.css"/>' +
+ '<link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/>' +
'</head><body class="highlightpage">' +
pretty +
'</body></html>');
+ },
+ /**
+ * 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}";
}
-
+
+
};