X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=JSDOC%2FBuildDocs.js;h=296513263c601af80b13d4d15f79815694b98baa;hb=8df59eced62ae527428010b84fde9979e3a4b737;hp=4d07bb1fca9fac19a89995850d86d2bfa731b540;hpb=da1bfcccb7016e7686d09abd205a50707b506799;p=gnome.introspection-doc-generator diff --git a/JSDOC/BuildDocs.js b/JSDOC/BuildDocs.js index 4d07bb1..2965132 100644 --- a/JSDOC/BuildDocs.js +++ b/JSDOC/BuildDocs.js @@ -10,7 +10,7 @@ File = imports.File.File; Template = imports.JsTemplate.Template.Template; -Options = imports.Options.Options; + Parser = imports.Parser.Parser; TokenReader = imports.TokenReader.TokenReader; @@ -31,18 +31,15 @@ BuildDocs = { srcFiles : [], - build : function (opts) + Options : false, // + + build : function (Options) { - - XObject.extend(Options, opts); - + this.Options = Options; 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)) { File.mkdir(Options.cacheDirectory) @@ -151,7 +148,7 @@ BuildDocs = { Parser.finish(); - } + }, @@ -173,20 +170,31 @@ BuildDocs = { 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"); + } // used to check the details of things being linked to Link.symbolSet = symbolSet; - + Link.base = "../"; var classTemplate = new Template({ templateFile : Options.templatesDir + "/class.tmpl", Link : Link }); - var classesTemplate = new Template( - templateFile : Options.templatesDir +"allclasses.tmpl", + var classesTemplate = new Template({ + templateFile : Options.templatesDir +"/allclasses.tmpl", Link : Link - ); + }); + var classesindexTemplate = new Template({ + templateFile : Options.templatesDir +"/index.tmpl", + Link : Link + }); + var fileindexTemplate = new Template({ + templateFile : Options.templatesDir +"/allfiles.tmpl", + Link: Link + }); + classTemplate.symbolSet = symbolSet; @@ -207,16 +215,15 @@ 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")); + + var classesIndex = classesTemplate.process(classes); // kept in memory - Link.base = "../"; - publish.classesIndex = classesTemplate.process(classes); // kept in memory - IO.makeDir(publish.conf.outDir+"json"); for (var i = 0, l = classes.length; i < l; i++) { var symbol = classes[i]; @@ -228,34 +235,35 @@ BuildDocs = { print("write " + Options.target+"/symbols/" +symbol.alias+'.' + Options.publishExt); // dump out a - IO.saveFile(publish.conf.outDir+"json/", symbol.alias+'.json' , publish.jsonRender(symbol)); + + this.publishJSON(Options.target+"/json/", symbol.alias+'.json', symbol) + } // regenrate the index with different relative links Link.base = ""; - publish.classesIndex = classesTemplate.process(classes); + var classesIndex = classesTemplate.process(classes); - try { - var classesindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"index.tmpl"); - } - catch(e) { print(e.message); quit(); } + + + File.write(Options.target + "/index."+ Options.publishExt, + classesindexTemplate.process(classes) + ); - var classesIndex = classesindexTemplate.process(classes); - IO.saveFile(publish.conf.outDir, "index"+publish.conf.ext, classesIndex); - classesindexTemplate = classesIndex = classes = null; + // blank everything???? classesindexTemplate = classesIndex = classes = null; - try { - var fileindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"allfiles.tmpl"); - } - catch(e) { print(e.message); quit(); } + + + var documentedFiles = symbols.filter(function ($) { + return ($.is("FILE")) + }); - var documentedFiles = symbols.filter(isaFile); var allFiles = []; for (var i = 0; i < files.length; i++) { - allFiles.push(new JSDOC.Symbol(files[i], [], "FILE", new JSDOC.DocComment("/** */"))); + allFiles.push(new Symbol(files[i], [], "FILE", new JSDOC.DocComment("/** */"))); } for (var i = 0; i < documentedFiles.length; i++) { @@ -264,13 +272,13 @@ BuildDocs = { } allFiles = allFiles.sort(makeSortby("name")); + File.write(Options.target , "/files."+Options.publishExt, + fileindexTemplate.process(allFiles) + ); + + }, - var filesIndex = fileindexTemplate.process(allFiles); - IO.saveFile(publish.conf.outDir, "files"+publish.conf.ext, filesIndex); - fileindexTemplate = filesIndex = files = null; - } - - publishJSON = function(data) + publishJSON : function(file, data) { // what we need to output to be usefull... // a) props.. @@ -322,35 +330,31 @@ BuildDocs = { props : props, events: events }; - return JSON.encode(ret); + File.write(file, JSON.stringify(ret, null, 2 )); // b) methods // c) events - } - 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 + + ''); }