JsTemplate/Link.js
[gnome.introspection-doc-generator] / JsTemplate / Link.js
index 9782aab..b404302 100644 (file)
@@ -16,16 +16,33 @@ Link = XObject.define(
     /*
     * constructor
     */ 
-    function () {
+    function (opts) {
+        XObject.extend(this,opts);
         
     }, 
     Object,
     {
         
+         /**
+         * url {String} url for link..
+         */
+        url: "",
+        /**
+         * text {String} text to show on link.
+         */
+        
+        text : "",
+        
+        /**
+         * alias {String} not sure?
+         */
         alias : "",
+        /**
+         * src {String} not sure?
+         */
         src : "",
         file : "",
-        text : "",
+        
         innerName : "",
         classLink : false,
         targetName : "",
@@ -47,7 +64,6 @@ Link = XObject.define(
         toSrc : function(filename) {
             if (typeof(filename) != 'undefined') this.src = filename;
             
-            
             return this;
         },
         toSymbol : function(alias) {
@@ -66,11 +82,11 @@ Link = XObject.define(
         },
         
         toString : function() {
-            var linkString;
+    
             var thisLink = this;
 
             if (this.alias) {
-                linkString = this.alias.replace(/(^|[^a-z$0-9_#.:-])([|a-z$0-9_#.:-]+)($|[^a-z$0-9_#.:-])/i,
+                return  this.alias.replace(/(^|[^a-z$0-9_#.:-])([|a-z$0-9_#.:-]+)($|[^a-z$0-9_#.:-])/i,
                     function(match, prematch, symbolName, postmatch) {
                         var symbolNames = symbolName.split("|");
                         var links = [];
@@ -82,14 +98,16 @@ Link = XObject.define(
                     }
                 );
             }
-            else if (this.src) {
-                linkString = thisLink._makeSrcLink(this.src);
+            if (this.url) {
+                return thisLink._makeLink(this.url);
             }
-            else if (this.file) {
-                linkString = thisLink._makeFileLink(this.file);
+            if (this.src) {
+                return thisLink._makeSrcLink(this.src);
+            }
+            if (this.file) {
+                return thisLink._makeFileLink(this.file);
             }
 
-            return linkString;
         },
         
         
@@ -99,8 +117,9 @@ Link = XObject.define(
         
         
         /** Create a link to a snother symbol. */
-        _makeSymbolLink : function(alias) {
-            
+        _makeSymbolLink : function(alias) 
+        {
+            print(JSON.stringify(alias));
             // look for '/' in alias..
             if (/\//.test(alias)) {
                 var bits = alias.split('/');
@@ -117,8 +136,9 @@ Link = XObject.define(
             
             
             
-            var linkBase = Link.base+  imports.JSDOC.BuildDocs.BuildDocs.symbolsDir;
+            var linkBase = './';
             var linkTo = Link.symbolSet.getSymbol(alias);
+            
             var linkPath;
             var target = (this.targetName)? " target=\""+this.targetName+"\"" : "";
             
@@ -186,7 +206,16 @@ Link = XObject.define(
 
             if (!this.text) this.text = filePath;
             return "<a href=\""+outFilePath+"\""+target+">"+this.text+"</a>";
+        },
+        
+          /** very basic link... */
+        _makeLink : function(url) {
+            var target = (this.targetName)? " target=\""+this.targetName+"\"" : "";
+             
+            if (!this.text) this.text = url;
+            return "<a href=\""+url+"\""+target+">"+this.text+"</a>";
         }
+        
 });