WikifyWeb: Difference between revisions
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