xookiLinks: function()

in xooki.js [739:776]


        xookiLinks: function (input) {
            // handle xooki links like this:
            //    [[page/id]]
            //    [[page/id My Title]]
            return input.replace(new RegExp("\\[\\[([^\\]]+)\\]\\]", "g"), function (str, code, offset, s) {
                var index = code.indexOf(' ');
                var id = (index>0?code.substring(0,index):code);
                
                var title;
                var url;
                var invalid = false;
                
                if (typeof xooki.toc.pages[xooki.toc.importRoot + id] != "undefined") {
               	    title = xooki.toc.pages[xooki.toc.importRoot + id].title;
                    url = pu(xooki.toc.importRoot + id);
               	} else if (xooki.toc.importRoot.length > 0 && typeof xooki.toc.pages[id] != "undefined") {
               	    title = xooki.toc.pages[id].title;
                    url = pu(id);
               	} else {
                    invalid = true;
               		title = code;
               		url = u(id);
               	}
                if (index>0) {
                	title = code.substring(index+1);
                }
                if (invalid) {
                    if (batchMode) {
                        // do not output invalid links as links in batch mode
                        return title;
                    } else {
                        return title+'<a href="'+url+'">?</a>';
                    }
                } else {
                    return '<a href="'+url+'">'+title+'</a>';
                }
            });
        },