SandBox: Difference between revisions
(Each Wiki should have such a place for helping new users to test out Wiki features.) |
(<a href="javascript:ai()">testWikfyWeb4</a>) |
||
Line 2: | Line 2: | ||
Each Wiki should have such a place for helping new users to test out Wiki features. | Each Wiki should have such a place for helping new users to test out Wiki features. | ||
<html> | |||
javascript: | |||
function ai() { | |||
var WikiMap = ['http://google.com/search?q=','https://aipedia.eu/wiki/','https://etherpad.wikimedia.org/p/','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(); | |||
} | |||
<a href="javascript:ai()">testWikfyWeb4</a> | |||
</html> |
Revision as of 17:44, 4 March 2018
This is a WikiPage, where users can test out features of a Wiki.
Each Wiki should have such a place for helping new users to test out Wiki features.
javascript: function ai() { var WikiMap = ['http://google.com/search?q=','https://aipedia.eu/wiki/','https://etherpad.wikimedia.org/p/','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(); } testWikfyWeb4