User:Mps/vector.js

// :de:Benutzer:Dapete/∂s Entity-Skript, entschärfte Fassung /** adds a button to the editform to convert entities to unicode */ window.addEventListener("DOMContentLoaded", function {

/** converts html-entities into unicode characters */ function entitiesToUnicode(s) { return s.replace(           // hex entities            /&#x([0-9a-f]{1,4});/gi,                function(dollar0, dollar1) {                var v = parseInt(dollar1, 16);                return (v > 127) ? String.fromCharCode(v) : dollar0;             }        ).replace(            // decimal entities            /&#([0-9]{1,5});/g,                 function(dollar0, dollar1) {                var v = parseInt(dollar1, 10);                return (v > 127 && v < 65536) ? String.fromCharCode(v) : dollar0;             }        ).replace(            // named entities            /&([a-z]+);/gi,                     function(dollar0, dollar1) {                var c = html4Entities[dollar1];                return (c && c > 127) ? String.fromCharCode(c) : dollar0;             }        ); }   /** maps entity names to character codes */ var html4Entities = { iexcl: 161, cent:  162, pound: 163, curren: 164, yen:   165, brvbar: 166, sect:  167, uml:   168, copy:  169, ordf:  170, laquo: 171, not:   172, shy:   173, reg:   174, macr:  175, deg:   176, plusmn: 177, sup2:  178, sup3:  179, acute: 180, micro: 181, para:  182, middot: 183, cedil: 184, sup1:  185, ordm:  186, raquo: 187, frac14: 188, frac12: 189, frac34: 190, iquest: 191, Agrave: 192, Aacute: 193, Acirc: 194, Atilde: 195, Auml:  196, Aring: 197, AElig: 198, Ccedil: 199, Egrave: 200, Eacute: 201, Ecirc: 202, Euml:  203, Igrave: 204, Iacute: 205, Icirc: 206, Iuml:  207, ETH:   208, Ntilde: 209, Ograve: 210, Oacute: 211, Ocirc: 212, Otilde: 213, Ouml:  214, times: 215, Oslash: 216, Ugrave: 217, Uacute: 218, Ucirc: 219, Uuml:  220, Yacute: 221, THORN: 222, szlig: 223, agrave: 224, aacute: 225, acirc: 226, atilde: 227, auml:  228, aring: 229, aelig: 230, ccedil: 231, egrave: 232, eacute: 233, ecirc: 234, euml:  235, igrave: 236, iacute: 237, icirc: 238, iuml:  239, eth:   240, ntilde: 241, ograve: 242, oacute: 243, ocirc: 244, otilde: 245, ouml:  246, divide: 247, oslash: 248, ugrave: 249, uacute: 250, ucirc: 251, uuml:  252, yacute: 253, thorn: 254, yuml:  255, OElig: 338, oelig: 339, Scaron: 352, scaron: 353, Yuml:  376, fnof:  402, circ:  710, tilde: 732, Alpha: 913, Beta:  914, Gamma: 915, Delta: 916, Epsilon:   917, Zeta:  918, Eta:   919, Theta: 920, Iota:  921, Kappa: 922, Lambda: 923, Mu: 924, Nu: 925, Xi: 926, Omicron:   927, Pi: 928, Rho:   929, Sigma: 931, Tau:   932, Upsilon:   933, Phi:   934, Chi:   935, Psi:   936, Omega: 937, alpha: 945, beta:  946, gamma: 947, delta: 948, epsilon:   949, zeta:  950, eta:   951, theta: 952, iota:  953, kappa: 954, lambda: 955, mu: 956, nu: 957, xi: 958, omicron:   959, pi: 960, rho:   961, sigmaf: 962, sigma: 963, tau:   964, upsilon:   965, phi:   966, chi:   967, psi:   968, omega: 969, thetasym:  977, upsih: 978, piv:   982, zwnj:  8204, zwj:   8205, lrm:   8206, rlm:   8207, ndash: 8211, mdash: 8212, lsquo: 8216, rsquo: 8217, sbquo: 8218, ldquo: 8220, rdquo: 8221, bdquo: 8222, dagger: 8224, Dagger: 8225, bull:  8226, hellip: 8230, permil: 8240, prime: 8242, Prime: 8243, lsaquo: 8249, rsaquo: 8250, oline: 8254, frasl: 8260, euro:  8364, image: 8465, weierp: 8472, real:  8476, trade: 8482, alefsym:   8501, larr:  8592, uarr:  8593, rarr:  8594, darr:  8595, harr:  8596, crarr: 8629, lArr:  8656, uArr:  8657, rArr:  8658, dArr:  8659, hArr:  8660, forall: 8704, part:  8706, exist: 8707, empty: 8709, nabla: 8711, isin:  8712, notin: 8713, ni: 8715, prod:  8719, sum:   8721, minus: 8722, lowast: 8727, radic: 8730, prop:  8733, infin: 8734, ang:   8736, and:   8743, or: 8744, cap:   8745, cup:   8746, int:   8747, there4: 8756, sim:   8764, cong:  8773, asymp: 8776, ne: 8800, equiv: 8801, le: 8804, ge: 8805, sub:   8834, sup:   8835, nsub:  8836, sube:  8838, supe:  8839, oplus: 8853, otimes: 8855, perp:  8869, sdot:  8901, lceil: 8968, rceil: 8969, lfloor: 8970, rfloor: 8971, lang:  9001, rang:  9002, loz:   9674, spades: 9824, clubs: 9827, hearts: 9829, diams: 9830 };   // find editor var form   = document.forms['editform']; if (!form) return; var tb     = form.elements['wpTextbox1']; if (!tb)   return; tb.value   = tb.value // create button var a  = document.createElement("a"); a.textContent  = "Entities auflösen"; a.title        = "wandelt HTML- und numerische Entities in Unicode um"; a.style.cursor = "pointer"; a.onclick  = function { tb.value = entitiesToUnicode(tb.value); } // add button form.parentNode.insertBefore(a, form); }, false);