Linkify

Turn plain-text URLs into hyperlinks

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==

// @name		  Linkify
// @version        0.1
// @namespace	  http://youngpup.net/userscripts

// @description   Turn plain-text URLs into hyperlinks

// @include *

// ==/UserScript==



// based on code by Aaron Boodman

// and included here with his gracious permission



var urlRegex = /\b(https?:\/\/[^\s+\"\<\>]+)/ig;

var snapTextElements = document.evaluate("//text()[not(ancestor::a) " + 

                                         "and not(ancestor::script) and not(ancestor::style) and " + 

                                         "contains(translate(., 'HTTP', 'http'), 'http')]", 

                                         document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = snapTextElements.snapshotLength - 1; i >= 0; i--) {

    var elmText = snapTextElements.snapshotItem(i);

    if (urlRegex.test(elmText.nodeValue)) {

        var elmSpan = document.createElement("span");

        var sURLText = elmText.nodeValue;

        elmText.parentNode.replaceChild(elmSpan, elmText);

        urlRegex.lastIndex = 0;

        for (var match = null, lastLastIndex = 0;

             (match = urlRegex.exec(sURLText)); ) { 

            elmSpan.appendChild(document.createTextNode(

                sURLText.substring(lastLastIndex, match.index))); 

            var elmLink = document.createElement("a"); 

            elmLink.setAttribute("href", match[0]); 

            elmLink.appendChild(document.createTextNode(match[0])); 

            elmSpan.appendChild(elmLink); 

            lastLastIndex = urlRegex.lastIndex;

        }

        elmSpan.appendChild(document.createTextNode(

            sURLText.substring(lastLastIndex)));

        elmSpan.normalize();

    }

}