WikifyWeb: Difference between revisions

From fridemar.ai
Jump to navigation Jump to search
mNo edit summary
(test hdmd)
Line 51: Line 51:
;span.appendChild(document.createTextNode(txt.substring(lastLastIndex,myArray.index)));lastLastIndex=linkpatt.lastIndex;linkText=myArray[1];link=myArray[0];llen=link.length;if(link.substring(0,2)===%27%27&&link.substring(llen-2,llen)===%27%27){link=link.substring(2,llen-2);}for(j=0;j%3CMath.min(WikiMap.length,linkTextArray.length);j++){href=WikiMap[j]+link;a=document.createElement(%27a%27);a.setAttribute(%27href%27,href);a.appendChild(document.createTextNode(linkTextArray[j]));span.appendChild(a);}}span.appendChild(document.createTextNode(txt.substring(lastLastIndex)));node.parentNode.replaceChild(span,node);}catch(e){alert(e);}}}};ai()">WikifyWeb</a>
;span.appendChild(document.createTextNode(txt.substring(lastLastIndex,myArray.index)));lastLastIndex=linkpatt.lastIndex;linkText=myArray[1];link=myArray[0];llen=link.length;if(link.substring(0,2)===%27%27&&link.substring(llen-2,llen)===%27%27){link=link.substring(2,llen-2);}for(j=0;j%3CMath.min(WikiMap.length,linkTextArray.length);j++){href=WikiMap[j]+link;a=document.createElement(%27a%27);a.setAttribute(%27href%27,href);a.appendChild(document.createTextNode(linkTextArray[j]));span.appendChild(a);}}span.appendChild(document.createTextNode(txt.substring(lastLastIndex)));node.parentNode.replaceChild(span,node);}catch(e){alert(e);}}}};ai()">WikifyWeb</a>
  </html>
  </html>
<html>
<a href="javascript:function ai() {
    var WikiMap = ['http://google.com/search?q=','https://everipedia.eu/wiki/','https://wikipedia.org/wiki/','https://twitter.com/search?q=','https://twitter.com/hashtag/'],
        i, j, k, len, llen, link, linkpatt,
        linkText, linkTextArray = [], msg, myArray, node, txt, href, a, reg, span,
        lastLastIndex, textNodeXpath, textNodes;
    textNodeXpath = './/text()[not(ancestor::a) and not(ancestor::head)and not(ancestor::option) and not(ancestor::textarea)]';
    textNodes = document.evaluate(textNodeXpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
    len = textNodes.snapshotLength;
    reg = /^\s+$/g;
    linkpatt = /\b(?:([a-z0-9äöü]*(?:[A-ZÄÖÜ_]|_)[a-z0-9äöü_]*){2,})\b/g;
    for (i = 0; i < len; i++) {
        node = textNodes.snapshotItem(i);
        txt = node.nodeValue; txt = txt.replace(reg, '');
        if (linkpatt.test(txt)) {
            span = document.createElement('span');
            lastLastIndex = 0;
            linkpatt.lastIndex = 0;
            try {
                while (true) {
                    myArray = linkpatt.exec(txt);
                    if (!myArray) break;
                    link = myArray[0];
                    linkTextArray = [link, ' (e', ' w', ' t', ' h)'];
                    span.appendChild(document.createTextNode(txt.substring(lastLastIndex, myArray.index)));
                    lastLastIndex = linkpatt.lastIndex;
                    linkText = myArray[1];
                    link = myArray[0];
                    llen = link.length;
                    if (link.substring(0, 2) === '' && link.substring(llen - 2, llen) === '') {
                        link = link.substring(2, llen - 2);
                    }
                    for (j = 0; j < Math.min(WikiMap.length, linkTextArray.length); j++) {
                        href = WikiMap[j] + link;
                        a = document.createElement('a');
                        a.setAttribute('href', href);
                        a.appendChild(document.createTextNode(linkTextArray[j]));
                        span.appendChild(a);
                    }
                }
                span.appendChild(document.createTextNode(txt.substring(lastLastIndex)));
                node.parentNode.replaceChild(span, node);
            } catch (e) {
                alert(e);
            }
        }
    }
}
ai();">test hdmd</a>
</html>

Revision as of 00:55, 5 March 2018

Intro

What if we could create links everywhere in the Web, by just writing CamelCase words like the inventor of Wikis WardCunningham introduced them in WardsWiki.

Currently the author fridemar offers this as a free OpenSource BookMarklet to empower work and collaboration on the EveriPedia.

About

This BookMarklet WikifyWeb turns WikiWords into UserDefinable MultiLinks. On this page you get the actual bookmarklet.

Versions

v1.1: with number subscripts

v1.2: made it mnemonic friendly with letters

Use of the Bookmarklet

Clicking on the link WikifyWeb (at the end of this page) enriches each WikiWord with the following 5 links:

1. Mainlink: GoogleSearch

2. letter e: EveriPediaSearch

3. letter w: WikiPediaSearch

4. letter t: TwitterSearch

5. letter h: TwitterHashSearch


Drag and drop the below link WikifyWeb into your (Chrome Browser) BookmarksList of your browser and you can apply Wikify (nearly) everywhere in the Web.

To get rid of the MultiLinks simply refresh the page of the browser.

Disclaimer

The author fridemar did his best to make this a useful contribution to the CreativeCommons, but cannot guarantee that each WikiWord has SearchResults nor can he take responsibility

1. for the user chosen link targets

2. for modifications of the source, which is under CcBySa

Enjoy


WikifyWeb

test hdmd