JsTemplate/Link.js
[gnome.introspection-doc-generator] / JsTemplate / Link.js
index 888f3a2..e70c3f2 100644 (file)
@@ -23,10 +23,26 @@ Link = XObject.define(
     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 : "",
@@ -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;
         },
         
         
@@ -186,7 +204,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>";
         }
+        
 });