JSDOC/BuildDocs.js
[gnome.introspection-doc-generator] / JSDOC / BuildDocs.js
index 0c9f9eb..dda68aa 100644 (file)
@@ -173,7 +173,9 @@ 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;
@@ -183,10 +185,19 @@ BuildDocs = {
              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;
         
@@ -208,15 +219,16 @@ BuildDocs = {
         for (var i = 0, l = files.length; i < l; i++) {
             var file = files[i];
             var srcDir = Options.target + "/symbols/src/";
-            makeSrcFile(file, srcDir);
+            this.makeSrcFile(file, srcDir);
         }
         
         var classes = symbols.filter(isaClass).sort(makeSortby("alias"));
         
         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,7 +240,9 @@ 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)
+            
             
             
         }
@@ -237,11 +251,7 @@ BuildDocs = {
         Link.base = "";
         publish.classesIndex = classesTemplate.process(classes);
         
-        try {
-            var classesindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"index.tmpl");
-        }
-        catch(e) { print(e.message); quit(); }
-        
+          
         var classesIndex = classesindexTemplate.process(classes);
         IO.saveFile(publish.conf.outDir, "index"+publish.conf.ext, classesIndex);
         classesindexTemplate = classesIndex = classes = null;
@@ -270,7 +280,7 @@ BuildDocs = {
         fileindexTemplate = filesIndex = files = null;
     }
 
-    publishJSON = function(data)
+    publishJSON = function(file, data)
     {
         // what we need to output to be usefull...
         // a) props..
@@ -322,28 +332,32 @@ 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 (JSDOC.opt.s) return;
+        if (Options.outputSource) return;
+        
+        return; // not done?
         
         if (!name) {
             name = path.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_");
             name = name.replace(/\:/g, "_");
         }
         
-        var src = {path: path, name:name, charset: IO.encoding, hilited: ""};
+        var src = {
+                path: path, 
+                name:name, 
+                charset: IO.encoding, 
+                hilited: ""
+        };
         
-        if (JSDOC.hasOwnProperty('PluginManager')) {
-            JSDOC.PluginManager.run("onPublishSrc", src);
-        }
-
+         
         if (src.hilited) {
             IO.saveFile(srcDir, name+publish.conf.ext, src.hilited);
         }