Diferencia entre revisiones de «MediaWiki:Edittools.javascript»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Locos epraix (discusión · contribs.)
Sin resumen de edición
(No se muestran 3 ediciones intermedias del mismo usuario)
Línea 27: Línea 27:
hito("C Edittools.js");
hito("C Edittools.js");


function GeneraCaracteresEspeciales()
function generaCaracteresEspeciales() {
hito("C GeneraCaracteresEspeciales");
{
var arr = [];
hito("C GeneraCaracteresEspeciales");
var menu = ["<select style=\"display:inline\" ",
var arr = [];
var menu = ["<select style=\"display:inline\" ",
"id=\"elSelectQueCambia\" ",
"id=\"elSelectQueCambia\" ",
"onChange=\"cambiaCaracteresEspecialesVisibles(selectedIndex)\">"];
var escapeHTML = function (txt) {
"onChange=\"CambiaCaracteresEspecialesVisibles(selectedIndex)\">"];
txt = txt.replace(/&/g, '&amp;');
var escapeHTML = function(txt)
txt = txt.replace(/</g, '&lt;');
{
txt = txt.replace(/&/g, '&amp;');
txt = txt.replace(/>/g, '&gt;');
txt = txt.replace(/</g, '&lt;');
return txt;
txt = txt.replace(/>/g, '&gt;');
},
return txt;
escapeJS = function (txt) {
txt = escapeHTML(txt);
}
txt = txt.replace(/"/g, '\\"');
var escapeJS = function(txt)
txt = txt.replace(/\\/, '\\\\');
{
txt = escapeHTML(txt);
txt = txt.replace(/'/g, "\\'");
return txt;
txt = txt.replace(/"/g, '\\"');
},
txt = txt.replace(/\\/, '\\\\');
seccion = function (nombre) {
txt = txt.replace(/'/g, "\\'");
if (arr.length > 0) {
return txt;
arr[arr.length] = "</p>";
}
}
var seccion = function(nombre)
arr[arr.length] = "<p class=\"specialbasic\" title=\"" + nombre + "\">";
{
if (arr.length > 0) arr[arr.length] = "</p>"
menu[menu.length] = "<option>" + nombre + "</option>";
},
arr[arr.length] = "<p class=\"specialbasic\" title=\"" + nombre + "\">";
texto = function (txt) {
menu[menu.length] = "<option>" + nombre + "</option>";
arr[arr.length] = txt;
};
},
var texto = function(txt) { arr[arr.length] = txt; };
var p = function() { arr[arr.length] = " · "; };
p = function () {
arr[arr.length] = " <b>·</b> ";
var caracter = function(car, title)
},
caracter = function (car, title) {
var pre = "",
{
var pre = ""; var post = "";
post = "";
if (car == "+") pre = car;
if (car == "+") {
pre = car;
else
{
} else {
var partes = car.split("+");
var partes = car.split("+");
pre = partes.shift();
pre = partes.shift();
post = partes.join("+");
post = partes.join("+");
}
}
arr[arr.length] = "<a href=\"#\" onclick=\"insertTags('" +
arr[arr.length] = "<a href=\"#\" onclick=\"insertTags('" +
escapeJS(pre) + "', '" +
escapeJS(pre) + "', '" +
escapeJS(post) + "', '');return false\"";
escapeJS(post) + "', '');return false\"";
if (title) arr[arr.length] = " title=\"" +
if (title) {
escapeHTML(title).replace(/"/g, '&quot;') + "\"";
arr[arr.length] = " title=\"" + escapeHTML(title).replace(/"/g, '&quot;') + "\"";
arr[arr.length] = ">" + escapeHTML(pre + post) + "</a>\n";
}
arr[arr.length] = ">" + escapeHTML(pre + post) + "</a>\n";
};
},
var caracteres = function(cars)
caracteres = function (cars) {
var a = cars.split(/\s+/);
{
var a = cars.split(/\s+/);
for (var i = 0; i < a.length; i++) {
if (a[i]) {
for (var i=0; i<a.length; i++)
caracter(a[i]);
{
if (a[i]) caracter(a[i]);
}
}
}
};
};
/*
/*
</nowiki></pre>
</nowiki></pre>


Línea 88: Línea 91:
=== Varios ===
=== Varios ===
<pre><nowiki> */
<pre><nowiki> */
seccion("Varios");
seccion("Varios");


texto("<small><b>Sintaxis wiki</b></small>"); p();
texto("<small><b>Sintaxis wiki</b></small>"); p();
caracter("[[+]]", "Enlace interno"); p();
caracter("[[+]]", "Enlace interno"); p();
caracter("[+]", "Enlace externo"); p();
caracter("[+]", "Enlace externo"); p();
caracter("{{+}}", "Plantilla"); p();
caracter("{{+}}", "Plantilla"); p();
caracter("{{{+}}}", "Parámetro"); p();
caracter("{{{+}}}", "Parámetro"); p();
caracter("[[Categoría:+]]","Categorización"); p();
caracter("[[Categoría:+]]", "Categorización"); p();
caracter("{{ORDENAR:+}}", "Ordenamiento"); p();
caracter("{{ORDENAR:+}}", "Ordenamiento"); p();
caracter("#REDIRECCIÓN [[+]]", "Redirección"); p();
caracter("#REDIRECCIÓN [[+]]", "Redirección"); p();
caracter("[[:Archivo:+]]", "Enlace a imagen");p();
caracter("[[:Archivo:+]]", "Enlace a imagen"); p();
caracter("[[Media:+]]", "Inserción de contenido multimedia"); p();
caracter("[[Media:+]]", "Inserción de contenido multimedia"); p();
caracter("<gallery>+</gallery>", "Galería de imágenes"); p();
caracter("<gallery>+</gallery>", "Galería de imágenes"); p();
caracter("<ref>+</ref>", "Inserción de referencias"); p();
caracter("<ref>+</ref>", "Inserción de referencias"); p();
caracter("<ref group='nota'>+</ref>", "Inserción de nota al pie"); p();
caracter("<ref group='nota'>+</ref>", "Inserción de nota al pie"); p();
caracter("<!-- + -->", "Comentario HTML"); p();
caracter("<!-- + -->", "Comentario HTML"); p();
caracter("<nowiki"+">+<"+"/nowiki>", "Ignorar sintaxis wiki"); p();
caracter("<nowiki" + ">+<" + "/nowiki>", "Ignorar sintaxis wiki"); p();
caracter("&nbsp;", "Espacio irrompible"); p();
caracter("&nbsp;", "Espacio irrompible"); p();


texto("<small><b>Tipografía</b></small>"); p();
texto("<small><b>Tipografía</b></small>"); p();
caracter("–", "Menos");
caracter("–", "Menos");
caracter("—", "Raya"); p();
caracter("—", "Raya"); p();
caracter("“+”", "Comillas altas");
caracter("“+”", "Comillas altas");
caracter("‘+’", "Comillas simples"); p();
caracter("‘+’", "Comillas simples"); p();
caracter("«+»", "Comillas latinas");
caracter("«+»", "Comillas latinas");
caracter("‹+›", "Comillas latinas simples"); p();
caracter("‹+›", "Comillas latinas simples"); p();
caracter("„+“", "Comillas alemanas");
caracter("„+“", "Comillas alemanas");
caracter("‚+‘", "Comillas alemanas simples"); p();
caracter("‚+‘", "Comillas alemanas simples"); p();
caracter("¿+?", "Interrogación"); p();
caracter("¿+?", "Interrogación"); p();
caracter("¡+!", "Exclamación"); p();
caracter("¡+!", "Exclamación"); p();
caracteres("~ | °"); p();
caracteres("~ | °"); p();
caracteres("· × ² ³ ½ € †"); p();
caracteres("· × ² ³ ½ € †"); p();


texto("<small><b>Ordinales</b></small>"); p();
texto("<small><b>Ordinales</b></small>"); p();
caracteres("ª º"); p();
caracteres("ª º"); p();


texto("<small><b>Letras c/diacríticos</b></small>"); p();
texto("<small><b>Letras c/diacríticos</b></small>"); p();
caracteres("Á É Í Ñ Ó Ú Ü"); p();
caracteres("Á É Í Ñ Ó Ú Ü"); p();
caracteres("á é í ñ ó ú ü"); p();
caracteres("á é í ñ ó ú ü"); p();


texto("<small><b>Matemática</b></small>"); p();
texto("<small><b>Matemática</b></small>"); p();
caracteres("∈ → ≠ ℕ ℤ ℚ ℝ");
caracteres("∈ → ≠ ℕ ℤ ℚ ℝ");
/* </nowiki></pre>
/* </nowiki></pre>


=== Alfabeto latino con diacríticos ===
=== Alfabeto latino con diacríticos ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Latino c/diacr.");
seccion("Latino c/diacr.");


texto("<b>á</b>"); p();
texto("<b>á</b>"); p();
caracteres("Á Ć É Í Ĺ Ń Ó Ŕ Ś Ú Ý Ź"); p();
caracteres("Á Ć É Í Ĺ Ń Ó Ŕ Ś Ú Ý Ź"); p();
caracteres("á ć é í ĺ ń ó ŕ ś ú ý ź"); p();
caracteres("á ć é í ĺ ń ó ŕ ś ú ý ź"); p();


texto("<b>à</b>"); p();
texto("<b>à</b>"); p();
caracteres("À È Ì Ò Ù"); p(); caracteres("à è ì ò ù"); p();
caracteres("À È Ì Ò Ù"); p();
caracteres("à è ì ò ù"); p();


texto("<b>â</b>"); p();
texto("<b>â</b>"); p();
caracteres("Â Ĉ Ê Ĝ Ĥ Î Ĵ Ô Ŝ Û Ŵ Ŷ Ẑ"); p();
caracteres("Â Ĉ Ê Ĝ Ĥ Î Ĵ Ô Ŝ Û Ŵ Ŷ Ẑ"); p();
caracteres("â ĉ ê ĝ ĥ î ĵ ô ŝ û ŵ ŷ ẑ"); p();
caracteres("â ĉ ê ĝ ĥ î ĵ ô ŝ û ŵ ŷ ẑ"); p();


texto("<b>ä</b>"); p();
texto("<b>ä</b>"); p();
caracteres("Ä Ë Ḧ Ï Ö Ü Ẅ Ẍ Ÿ"); p();
caracteres("Ä Ë Ḧ Ï Ö Ü Ẅ Ẍ Ÿ"); p();
caracteres("ä ë ḧ ï ö ü ẅ ẍ ÿ"); p();
caracteres("ä ë ḧ ï ö ü ẅ ẍ ÿ"); p();


texto("<b>ã</b>"); p();
texto("<b>ã</b>"); p();
caracteres("Ã Ẽ Ĩ Ñ Õ Ũ Ṽ Ỹ"); p();
caracteres("Ã Ẽ Ĩ Ñ Õ Ũ Ṽ Ỹ"); p();
caracteres("ã ẽ ĩ ñ õ ũ ṽ ỹ"); p();
caracteres("ã ẽ ĩ ñ õ ũ ṽ ỹ"); p();


texto("<b>č</b>"); p();
texto("<b>č</b>"); p();
caracteres("Č Ď Ě Ľ Ň Ř Š Ť Ž"); p();
caracteres("Č Ď Ě Ľ Ň Ř Š Ť Ž"); p();
caracteres("č ď ě ľ ň ř š ť ž"); p();
caracteres("č ď ě ľ ň ř š ť ž"); p();


texto("<b>ā</b>"); p();
texto("<b>ā</b>"); p();
caracteres("Ā Ē Ḡ Ī Ō Ū"); p();
caracteres("Ā Ē Ḡ Ī Ō Ū"); p();
caracteres("ā ē ḡ ī ō ū"); p();
caracteres("ā ē ḡ ī ō ū"); p();


texto("<b>ă</b>"); p();
texto("<b>ă</b>"); p();
caracteres("Ă Ĕ Ğ Ĭ Ŏ Ŭ"); p();
caracteres("Ă Ĕ Ğ Ĭ Ŏ Ŭ"); p();
caracteres("ă ĕ ğ ĭ ŏ ŭ"); p();
caracteres("ă ĕ ğ ĭ ŏ ŭ"); p();


texto("<b>ç</b>"); p();
texto("<b>ç</b>"); p();
caracteres("Ç Ḑ Ģ Ḩ Ķ Ļ Ņ Ŗ Ş Ţ"); p();
caracteres("Ç Ḑ Ģ Ḩ Ķ Ļ Ņ Ŗ Ş Ţ"); p();
caracteres("ç ḑ ģ ḩ ķ ļ ņ ŗ ş ţ"); p();
caracteres("ç ḑ ģ ḩ ķ ļ ņ ŗ ş ţ"); p();


texto("<b>å</b>"); p();
texto("<b>å</b>"); p();
caracteres("Å Ů"); p();
caracteres("Å Ů"); p();
caracteres("å ů"); p();
caracteres("å ů"); p();


texto("<b>ą</b>"); p();
texto("<b>ą</b>"); p();
caracteres("Ą Ę Į Ǫ Ų"); p();
caracteres("Ą Ę Į Ǫ Ų"); p();
caracteres("ą ę į ǫ ų"); p();
caracteres("ą ę į ǫ ų"); p();


texto("<b>ő</b>"); p();
texto("<b>ő</b>"); p();
caracteres("Ő Ű"); p();
caracteres("Ő Ű"); p();
caracteres("ő ű"); p();
caracteres("ő ű"); p();


texto("<b>ø</b>"); p();
texto("<b>ø</b>"); p();
caracteres("Đ Ǥ Ħ Ł Ø Ŧ Ƶ"); p();
caracteres("Đ Ǥ Ħ Ł Ø Ŧ Ƶ"); p();
caracteres("đ ð ǥ ħ ł ø ŧ ƶ"); p();
caracteres("đ ð ǥ ħ ł ø ŧ ƶ"); p();


caracteres("ß"); p(); caracteres("Æ æ Œ œ"); p(); caracteres("Þ þ");
caracteres("ß"); p();
caracteres("Æ æ Œ œ"); p();

caracteres("Þ þ");
/* </nowiki></pre>
/* </nowiki></pre>


=== Alfabeto fonético internacional ===
=== Alfabeto fonético internacional ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Alfabeto fonético");
seccion("Alfabeto fonético");

caracteres(" ʈ ɖ ɟ ɡ ɢ ʡ ʔ "); p();
caracteres(" ɸ ʃ ʒ ɕ ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ "); p();
caracteres(" ɱ ɳ ɲ ŋ ɴ "); p();
caracteres(" ʋ ɹ ɻ ɰ "); p();
caracteres(" ʙ ʀ ɾ ɽ "); p();
caracteres(" ɫ ɬ ɮ ɺ ɭ ʎ ʟ "); p();
caracteres(" ɥ ʍ ɧ "); p();
caracteres(" ɓ ɗ ʄ ɠ ʛ "); p();
caracteres(" ʘ ǀ ǃ ǂ ǁ "); p();
caracteres(" ɨ ʉ ɯ "); p();
caracteres(" ɪ ʏ ʊ "); p();
caracteres(" ɘ ɵ ɤ "); p();
caracteres(" ɚ "); p();
caracteres(" ɛ ɜ ɝ ɞ ʌ ɔ "); p();
caracteres(" ɐ ɶ ɑ ɒ "); p();
caracteres(" ʰ ʷ ʲ ˠ ˤ ⁿ ˡ "); p();
caracteres(" ˈ ˌ ː ˑ ");


caracteres(" ʈ ɖ ɟ ɡ ɢ ʡ ʔ "); p();
/* </nowiki></pre>
caracteres(" ɸ ʃ ʒ ɕ ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ "); p();
caracteres(" ɱ ɳ ɲ ŋ ɴ "); p();
caracteres(" ʋ ɹ ɻ ɰ "); p();
caracteres(" ʙ ʀ ɾ ɽ "); p();
caracteres(" ɫ ɬ ɮ ɺ ɭ ʎ ʟ "); p();
caracteres(" ɥ ʍ ɧ "); p();
caracteres(" ɓ ɗ ʄ ɠ ʛ "); p();
caracteres(" ʘ ǀ ǃ ǂ ǁ "); p();
caracteres(" ɨ ʉ ɯ "); p();
caracteres(" ɪ ʏ ʊ "); p();
caracteres(" ɘ ɵ ɤ "); p();
caracteres(" ɚ "); p();
caracteres(" ɛ ɜ ɝ ɞ ʌ ɔ "); p();
caracteres(" ɐ ɶ ɑ ɒ "); p();
caracteres(" ʰ ʷ ʲ ˠ ˤ ⁿ ˡ "); p();
caracteres(" ˈ ˌ ː ˑ ");
/* </nowiki></pre>


=== Alemán ===
=== Alemán ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Alemán");
seccion("Alemán");


caracteres("Ä Ö Ü"); p();
caracteres("Ä Ö Ü"); p();
caracteres("ä ö ü"); p(); caracteres("ß");
caracteres("ä ö ü"); p();
caracteres("ß");


/* </nowiki></pre>
/* </nowiki></pre>


=== Árabe ===
=== Árabe ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Árabe");
seccion("Árabe");
caracteres("ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي"); p();
caracteres("ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي"); p();
caracteres("ﺍ ﺑ ﺗ ﺛ ﺟ ﺣ ﺧ ﺩ ﺫ ﺭ ﺯ ﺳ ﺷ ﺻ ﺿ ﻃ ﻇ ﻋ ﻏ ﻓ ﻗ ﻛ ﻟ ﻣ ﻧ ﻫ ﻭ ﻳ"); p();
caracteres("ﺍ ﺑ ﺗ ﺛ ﺟ ﺣ ﺧ ﺩ ﺫ ﺭ ﺯ ﺳ ﺷ ﺻ ﺿ ﻃ ﻇ ﻋ ﻏ ﻓ ﻗ ﻛ ﻟ ﻣ ﻧ ﻫ ﻭ ﻳ"); p();
caracteres("ﺍ ﺒ ﺘ ﺜ ﺠ ﺤ ﺨ ﺪ ﺬ ﺮ ﺰ ﺴ ﺸ ﺼ ﻀ ﻄ ﻈ ﻌ ﻐ ﻔ ﻘ ﻜ ﻠ ﻤ ﻨ ﻬ ﻮ ﻴ"); p();
caracteres("ﺍ ﺒ ﺘ ﺜ ﺠ ﺤ ﺨ ﺪ ﺬ ﺮ ﺰ ﺴ ﺸ ﺼ ﻀ ﻄ ﻈ ﻌ ﻐ ﻔ ﻘ ﻜ ﻠ ﻤ ﻨ ﻬ ﻮ ﻴ"); p();
caracteres("ﺎ ﺐ ﺖ ﺚ ﺞ ﺢ ﺦ ﺪ ﺬ ﺮ ﺰ ﺲ ﺶ ﺺ ﺾ ﻂ ﻆ ﻊ ﻎ ﻒ ﻖ ﻚ ﻞ ﻢ ﻦ ﻪ ﻮ ﻲ"); p();
caracteres("ﺎ ﺐ ﺖ ﺚ ﺞ ﺢ ﺦ ﺪ ﺬ ﺮ ﺰ ﺲ ﺶ ﺺ ﺾ ﻂ ﻆ ﻊ ﻎ ﻒ ﻖ ﻚ ﻞ ﻢ ﻦ ﻪ ﻮ ﻲ"); p();
caracteres("ء- - - - - آ أ إ ة ؤ ئ ى"); p();
caracteres("ء- - - - - آ أ إ ة ؤ ئ ى"); p();
caracteres("پ چ ژ گ ﭪ ۰ ۱ ۲ ۳ ٤ ٥ ٦ ٧ ۸ ۹");
caracteres("پ چ ژ گ ﭪ ۰ ۱ ۲ ۳ ٤ ٥ ٦ ٧ ۸ ۹");




/* </nowiki></pre>
/* </nowiki></pre>


=== Catalán ===
=== Catalán ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Catalán");
seccion("Catalán");


caracteres("Á À Ç É È Ë Í Ï Ó Ò Ö Ú Ù"); p();
caracteres("Á À Ç É È Ë Í Ï Ó Ò Ö Ú Ù"); p();
caracteres("á à ç é è ë í ï ó ò ö ú ù");
caracteres("á à ç é è ë í ï ó ò ö ú ù");


/* </nowiki></pre>
/* </nowiki></pre>


=== Checo ===
=== Checo ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Checo");
seccion("Checo");
caracteres("Á Č Ď É Ě Í Ň Ó Ř Š Ť Ú Ů Ý Ž"); p();
caracteres("Á Č Ď É Ě Í Ň Ó Ř Š Ť Ú Ů Ý Ž"); p();
caracteres("á č ď é ě í ň ó ř š ť ú ů ý ž");
caracteres("á č ď é ě í ň ó ř š ť ú ů ý ž");


/* </nowiki></pre>
/* </nowiki></pre>


=== Alfabeto cirílico ===
=== Alfabeto cirílico ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Cirílico");
seccion("Cirílico");
caracteres("А Б В Г Д Ђ Е Ё Ж З Ѕ И Й Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш Щ Ъ Ы Ь Э Ю Я"); p();
caracteres("А Б В Г Д Ђ Е Ё Ж З Ѕ И Й Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш Щ Ъ Ы Ь Э Ю Я"); p();
caracteres("а б в г д ђ е ё ж з ѕ и й ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш щ ъ ы ь э ю я");
caracteres("а б в г д ђ е ё ж з ѕ и й ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш щ ъ ы ь э ю я");


/* </nowiki></pre>
/* </nowiki></pre>


=== Devanāgarī ===
=== Devanāgarī ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Devanāgarī");
seccion("Devanāgarī");
caracteres(" ः अ आ इ ई उ ऊ ऋ ऌ ऍ ऎ ए ऐ ऑ ऒ ओ औ क क़ ख ख़ ग ग़ घ ङ च छ ज ज़ झ ञ ट ठ");
caracteres(" ः अ आ इ ई उ ऊ ऋ ऌ ऍ ऎ ए ऐ ऑ ऒ ओ औ क क़ ख ख़ ग ग़ घ ङ च छ ज ज़ झ ञ ट ठ");
caracteres("ड ड़ द ढ ढ़ ण त थ ध न ऩ प फ फ़ ब भ म य य़ र ऱ ल ळ ऴ व श ष स ह ़ ऽ ा ि ॊ ो ौ ् ी ु ू ृ ॄ ॅ ॆ े ै ॉ ");
caracteres("ड ड़ द ढ ढ़ ण त थ ध न ऩ प फ फ़ ब भ म य य़ र ऱ ल ळ ऴ व श ष स ह ़ ऽ ा ि ॊ ो ौ ् ी ु ू ृ ॄ ॅ ॆ े ै ॉ ");
caracteres("ॐ ॑ ॒ ॓ ॔ ॠ ॡ ॢ ॣ । ॥ ॰");
caracteres("ॐ ॑ ॒ ॓ ॔ ॠ ॡ ॢ ॣ । ॥ ॰");


/* </nowiki></pre>
/* </nowiki></pre>


=== Escandinavo ===
=== Escandinavo ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Escandinavo");
seccion("Escandinavo");
caracteres("À É Å Æ Ä Ø Ö"); p();
caracteres("À É Å Æ Ä Ø Ö"); p();
caracteres("à é å æ ä ø ö");
caracteres("à é å æ ä ø ö");


/* </nowiki></pre>
/* </nowiki></pre>


=== Esperanto ===
=== Esperanto ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Esperanto");
seccion("Esperanto");
caracteres("Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ"); p();
caracteres("Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ"); p();
caracteres("ĉ ĝ ĥ ĵ ŝ ŭ");
caracteres("ĉ ĝ ĥ ĵ ŝ ŭ");


/* </nowiki></pre>
/* </nowiki></pre>


=== Estonio ===
=== Estonio ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Estonio");
seccion("Estonio");
caracteres("Č Š Ž Õ Ä Ö Ü"); p();
caracteres("Č Š Ž Õ Ä Ö Ü"); p();
caracteres("č š ž õ ä ö ü");
caracteres("č š ž õ ä ö ü");


/* </nowiki></pre>
/* </nowiki></pre>


=== Francés ===
=== Francés ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Francés");
seccion("Francés");
caracteres("À Â Ç É È Ê Ë Î Ï Ô Œ Ù Û Ü Ÿ"); p();
caracteres("À Â Ç É È Ê Ë Î Ï Ô Œ Ù Û Ü Ÿ"); p();
caracteres("à â ç é è ê ë î ï ô œ ù û ü ÿ");
caracteres("à â ç é è ê ë î ï ô œ ù û ü ÿ");


/* </nowiki></pre>
/* </nowiki></pre>


=== Galés ===
=== Galés ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Galés");
seccion("Galés");
caracteres("Á À Â Ä É È Ê Ë Ì Î Ï Ó Ò Ô Ö Ù Û Ẁ Ŵ Ẅ Ý Ỳ Ŷ Ÿ"); p();
caracteres("Á À Â Ä É È Ê Ë Ì Î Ï Ó Ò Ô Ö Ù Û Ẁ Ŵ Ẅ Ý Ỳ Ŷ Ÿ"); p();
caracteres("á à â ä é è ê ë ì î ï ó ò ô ö ù û ẁ ŵ ẅ ý ỳ ŷ ÿ");
caracteres("á à â ä é è ê ë ì î ï ó ò ô ö ù û ẁ ŵ ẅ ý ỳ ŷ ÿ");


/* </nowiki></pre>
/* </nowiki></pre>


=== Griego ===
=== Griego ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Griego");
seccion("Griego");
caracteres("Α Ά Β Γ Δ Ε Έ Ζ Η Ή Θ Ι Ί Κ Λ Μ Ν Ξ Ο Ό Π Ρ Σ Τ Υ Ύ Φ Χ Ψ Ω Ώ"); p();
caracteres("α ά β γ δ ε έ ζ η ή θ ι ί κ λ μ ν ξ ο ό π ρ σ τ υ ύ φ χ ψ ω ώ");


texto("Alfabeto"); p();
/* </nowiki></pre>
caracteres("Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω"); p();
caracteres("Ϝ Ϻ ϟ Ϡ Ϛ Ϸ Ῥ"); p();
caracteres("α β ϐ γ δ ε ζ η θ ϑ ι κ ϰ λ μ ν ξ ο π ϖ ρ ϱ σ ς τ υ φ ϕ χ ψ ω"); p();
caracteres("ϝ ϻ ϟ ϡ ϛ ϸ ῤ ῥ"); p();
texto("Acentuado"); p();
caracteres("Ά Έ Ή Ί Ό Ύ Ώ"); p();
caracteres("ά έ ή ί ό ύ ώ");

/* </nowiki></pre>


=== Hawaiano ===
=== Hawaiano ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Hawaiano");
seccion("Hawaiano");
caracteres("Ā Ē Ī Ō Ū"); p();
caracteres("Ā Ē Ī Ō Ū"); p();
caracteres("ā ē ī ō ū"); p(); caracteres("ʻ");
caracteres("ā ē ī ō ū"); p();
caracteres("ʻ");


/* </nowiki></pre>
/* </nowiki></pre>


=== Hebreo ===
=== Hebreo ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Hebreo");
seccion("Hebreo");
caracteres("א ב ג ד ה ו ז ח ט י כ ך ל מ ם נ ן ס ע פ ף צ ץ ק ר ש ת ־ ״ ׳");
caracteres("א ב ג ד ה ו ז ח ט י כ ך ל מ ם נ ן ס ע פ ף צ ץ ק ר ש ת ־ ״ ׳");


/* </nowiki></pre>
/* </nowiki></pre>


=== Húngaro ===
=== Húngaro ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Húngaro");
seccion("Húngaro");
caracteres("Á É Í Ó Ö Ő Ú Ü Ű"); p();
caracteres("Á É Í Ó Ö Ő Ú Ü Ű"); p();
caracteres("á é í ó ö ő ú ü ű");
caracteres("á é í ó ö ő ú ü ű");


/* </nowiki></pre>
/* </nowiki></pre>


=== Inglés antiguo ===
=== Inglés antiguo ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Inglés antiguo");
seccion("Inglés antiguo");
caracteres("Ā Æ Ǣ Ǽ Ċ Ð Ē Ġ Ī Ō Ū Ƿ Ȳ Þ Ȝ"); p();
caracteres("Ā Æ Ǣ Ǽ Ċ Ð Ē Ġ Ī Ō Ū Ƿ Ȳ Þ Ȝ"); p();
caracteres("ā æ ǣ ǽ ċ ð ē ġ ī ō ū ƿ ȳ þ ȝ");
caracteres("ā æ ǣ ǽ ċ ð ē ġ ī ō ū ƿ ȳ þ ȝ");


/* </nowiki></pre>
/* </nowiki></pre>


=== Islandés ===
=== Islandés ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Islandés");
seccion("Islandés");
caracteres("Á Ð É Í Ó Ú Ý Þ Æ Ö"); p();
caracteres("Á Ð É Í Ó Ú Ý Þ Æ Ö"); p();
caracteres("á ð é í ó ú ý þ æ ö");
caracteres("á ð é í ó ú ý þ æ ö");


/* </nowiki></pre>
/* </nowiki></pre>


=== Italiano ===
=== Italiano ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Italiano");
seccion("Italiano");
caracteres("Á À É È Í Ì Ó Ò Ú Ù"); p();
caracteres("Á À É È Í Ì Ó Ò Ú Ù"); p();
caracteres("á à é è í ì ó ò ú ù");
caracteres("á à é è í ì ó ò ú ù");


/* </nowiki></pre>
/* </nowiki></pre>


=== Japonés ===
=== Japonés ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Japonés");
seccion("Japonés");
caracteres("Ā Ē Ī Ō Ū"); p();
caracteres("Ā Ē Ī Ō Ū"); p();
caracteres("ā ē ī ō ū"); p();
caracteres("ā ē ī ō ū"); p();
caracteres("あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ ゐ ゑ を ぁ ぃ ぅ ぇ ぉ ゃ ゅ ょ っ"); p();
caracteres("あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ ゐ ゑ を ぁ ぃ ぅ ぇ ぉ ゃ ゅ ょ っ"); p();
caracteres("ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヰ ヱ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー");
caracteres("ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヰ ヱ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー");


/* </nowiki></pre>
/* </nowiki></pre>


=== Letón ===
=== Letón ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Letón");
seccion("Letón");
caracteres("Ā Č Ē Ģ Ī Ķ Ļ Ņ Š Ū Ž"); p();
caracteres("Ā Č Ē Ģ Ī Ķ Ļ Ņ Š Ū Ž"); p();
caracteres("ā č ē ģ ī ķ ļ ņ š ū ž");
caracteres("ā č ē ģ ī ķ ļ ņ š ū ž");


/* </nowiki></pre>
/* </nowiki></pre>


=== Lituano ===
=== Lituano ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Lituano");
seccion("Lituano");
caracteres("Ą Č Ę Ė Į Š Ų Ū Ž"); p();
caracteres("Ą Č Ę Ė Į Š Ų Ū Ž"); p();
caracteres("ą č ę ė į š ų ū ž");
caracteres("ą č ę ė į š ų ū ž");


/* </nowiki></pre>
/* </nowiki></pre>


=== Maltés ===
=== Maltés ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Maltés");
seccion("Maltés");
caracteres("Ċ Ġ Ħ Ż"); p();
caracteres("Ċ Ġ Ħ Ż"); p();
caracteres("ċ ġ ħ ż");
caracteres("ċ ġ ħ ż");


/* </nowiki></pre>
/* </nowiki></pre>


=== Pinyin ===
=== Pinyin ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Pinyin");
seccion("Pinyin");
caracteres("Á À Ǎ Ā É È Ě Ē Í Ì Ǐ Ī Ó Ò Ǒ Ō Ú Ù Ü Ǔ Ū Ǘ Ǜ Ǚ Ǖ"); p();
caracteres("Á À Ǎ Ā É È Ě Ē Í Ì Ǐ Ī Ó Ò Ǒ Ō Ú Ù Ü Ǔ Ū Ǘ Ǜ Ǚ Ǖ"); p();
caracteres("á à ǎ ā é è ě ē í ì ǐ ī ó ò ǒ ō ú ù ü ǔ ū ǘ ǜ ǚ ǖ");
caracteres("á à ǎ ā é è ě ē í ì ǐ ī ó ò ǒ ō ú ù ü ǔ ū ǘ ǜ ǚ ǖ");


/* </nowiki></pre>
/* </nowiki></pre>


=== Polaco ===
=== Polaco ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Polaco");
seccion("Polaco");
caracteres("Ą Ć Ę Ł Ń Ó Ś Ź Ż"); p();
caracteres("Ą Ć Ę Ł Ń Ó Ś Ź Ż"); p();
caracteres("ą ć ę ł ń ó ś ź ż");
caracteres("ą ć ę ł ń ó ś ź ż");


/* </nowiki></pre>
/* </nowiki></pre>


=== Portugués ===
=== Portugués ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Portugués");
seccion("Portugués");
caracteres("Á À Â Ã Ç É Ê Í Ó Ô Õ Ú Ü"); p();
caracteres("Á À Â Ã Ç É Ê Í Ó Ô Õ Ú Ü"); p();
caracteres("á à â ã ç é ê í ó ô õ ú ü");
caracteres("á à â ã ç é ê í ó ô õ ú ü");


/* </nowiki></pre>
/* </nowiki></pre>


=== Rumano ===
=== Rumano ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Rumano");
seccion("Rumano");
caracteres("Ă Â Î Ş Ţ"); p();
caracteres("Ă Â Î Ş Ţ"); p();
caracteres("ă â î ş ţ");
caracteres("ă â î ş ţ");


/* </nowiki></pre>
/* </nowiki></pre>


=== Serbio ===
=== Serbio ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Serbio");
seccion("Serbio");
caracteres("А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш"); p();
caracteres("А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш"); p();
caracteres("а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш");
caracteres("а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш");


/* </nowiki></pre>
/* </nowiki></pre>


=== Turco ===
=== Turco ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Turco");
seccion("Turco");
caracteres("Ç Ğ I İ Ş"); p();
caracteres("Ç Ğ I İ Ş"); p();
caracteres("ç ğ ı i ş");
caracteres("ç ğ ı i ş");


/* </nowiki></pre>
/* </nowiki></pre>


=== Vietnamita ===
=== Vietnamita ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Vietnamita");
seccion("Vietnamita");
caracteres("À Ả Á Ạ Ã Ă Ằ Ẳ Ẵ Ắ Ặ Â Ầ Ẩ Ẫ Ấ Ậ Đ È Ẻ Ẽ É Ẹ Ê Ề Ể Ễ Ế Ệ Ỉ Ĩ Í Ị Ì Ỏ Ó Ọ Ò Õ Ô Ồ Ổ Ỗ Ố Ộ Ơ Ờ Ở Ỡ Ớ Ợ Ù Ủ Ũ Ú Ụ Ư Ừ Ử Ữ Ứ Ự Ỳ Ỷ Ỹ Ỵ Ý"); p();
caracteres("À Ả Á Ạ Ã Ă Ằ Ẳ Ẵ Ắ Ặ Â Ầ Ẩ Ẫ Ấ Ậ Đ È Ẻ Ẽ É Ẹ Ê Ề Ể Ễ Ế Ệ Ỉ Ĩ Í Ị Ì Ỏ Ó Ọ Ò Õ Ô Ồ Ổ Ỗ Ố Ộ Ơ Ờ Ở Ỡ Ớ Ợ Ù Ủ Ũ Ú Ụ Ư Ừ Ử Ữ Ứ Ự Ỳ Ỷ Ỹ Ỵ Ý"); p();
caracteres("à ả á ạ ã ă ằ ẳ ẵ ắ ặ â ầ ẩ ẫ ấ ậ đ è ẻ ẽ é ẹ ê ề ể ễ ế ệ ỉ ĩ í ị ì ỏ ó ọ ò õ ô ồ ổ ỗ ố ộ ơ ờ ở ỡ ớ ợ ù ủ ũ ú ụ ư ừ ử ữ ứ ự ỳ ỷ ỹ ỵ ý");
caracteres("à ả á ạ ã ă ằ ẳ ẵ ắ ặ â ầ ẩ ẫ ấ ậ đ è ẻ ẽ é ẹ ê ề ể ễ ế ệ ỉ ĩ í ị ì ỏ ó ọ ò õ ô ồ ổ ỗ ố ộ ơ ờ ở ỡ ớ ợ ù ủ ũ ú ụ ư ừ ử ữ ứ ự ỳ ỷ ỹ ỵ ý");


/* </nowiki></pre>
/* </nowiki></pre>


=== Yídish ===
=== Yídish ===
<pre><nowiki> */
<pre><nowiki> */


seccion("Yídish");
seccion("Yídish");
caracteres("א אַ אָ ב בֿ ג ד ה ו וּ װ ױ ז זש ח ט י יִ ײ ײַ כ ך כּ ל ל+ מ ם נ ן ס ע ע+ פ פּ פֿ ף צ ץ ק ר ש שׂ תּ ת ׳ ״ ־");
caracteres("א אַ אָ ב בֿ ג ד ה ו וּ װ ױ ז זש ח ט י יִ ײ ײַ כ ך כּ ל ל+ מ ם נ ן ס ע ע+ פ פּ פֿ ף צ ץ ק ר ש שׂ תּ ת ׳ ״ ־");


/* </nowiki></pre>
/* </nowiki></pre>


== Final ==
== Final ==
Línea 500: Línea 514:
Finalmente, se adosa al evento de carga de página la función generatriz del menú.
Finalmente, se adosa al evento de carga de página la función generatriz del menú.
<pre><nowiki> */
<pre><nowiki> */
arr[arr.length] = "</p>";
arr[arr.length] = "</p>";
menu[menu.length] = "</select> &nbsp; ";
menu[menu.length] = "</select> &nbsp; ";
hito("F GeneraCaracteresEspeciales");
hito("F GeneraCaracteresEspeciales");
return menu.concat(arr);
return menu.concat(arr);
}
}


function cambiaCaracteresEspecialesVisibles(n) {

var select = document.getElementById("elSelectQueCambia");
function MenuDeCaracteresEspeciales() {
if (!select) {
hito("C MenuDeCaracteresEspeciales");
return;
var specialchars = document.getElementById('specialchars');
}
var cual = select.options[n].text,
if (specialchars) {
l = document.getElementById('specialchars').getElementsByTagName('p');
hito("C inserción HTML (1)");
for (var i = 0; i < l.length; i++) {
specialchars.innerHTML = GeneraCaracteresEspeciales().join("");
l[i].style.display = l[i].title == cual ? 'inline' : 'none';
hito("F inserción HTML (1)");
}
CambiaCaracteresEspecialesVisibles(0);
}
hito("F MenuDeCaracteresEspeciales");
}
}


function CambiaCaracteresEspecialesVisibles(n) {
function menuDeCaracteresEspeciales() {
hito("C MenuDeCaracteresEspeciales");
var select = document.getElementById("elSelectQueCambia");
var specialchars = document.getElementById('specialchars');
if (!select) return;
var cual = select.options[n].text;
var l = document.getElementById('specialchars').getElementsByTagName('p');
for (var i = 0; i < l.length ; i++) {
l[i].style.display = l[i].title == cual ? 'inline' : 'none';
}
}


if (specialchars) {
hito("C inserción HTML (1)");
specialchars.innerHTML = generaCaracteresEspeciales().join("");
hito("F inserción HTML (1)");


cambiaCaracteresEspecialesVisibles(0);
function MenuDeCaracteresEspecialesWrp() {
}
if (wgAction == "edit" || wgAction == "submit" && (typeof(quieroEditToolsSimple) == "undefined" || !quieroEditToolsSimple))
MenuDeCaracteresEspeciales();
hito("F MenuDeCaracteresEspeciales");
}
}
//addLoadEvent(MenuDeCaracteresEspecialesWrp);


if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) > -1 &&
addOnloadHook(MenuDeCaracteresEspecialesWrp);
( window.quieroEditToolsSimple === undefined || !window.quieroEditToolsSimple ) ) {
$( menuDeCaracteresEspeciales );
}


//if (window.addEventListener) window.addEventListener("load",MenuDeCaracteresEspecialesWrp,false);
//else if (window.attachEvent) window.attachEvent("onload",MenuDeCaracteresEspecialesWrp);
hito("F Edittools.js");
hito("F Edittools.js");
//</nowiki></pre>
//</nowiki></pre>

Revisión del 18:53 11 mar 2012

/*

Inserción de caracteres especiales en la caja de edición

Aquí se definen las listas de caracteres especiales que aparecen bajo la caja de edición. Anteriormente se definían en MediaWiki:Edittools y MediaWiki:Monobook.js les agregaba un menú. Esto tenía varias desventajas:

  • Los que no usaban monobook o no usaban javascript sólo veían el primer recuadro. El resto quedaba oculto por el CSS, y no podían acceder a ellos ya que el menú no les aparecía.
  • A los que no usaban CSS les aparecían todos los recuadros bajo la caja de edición. Varias páginas de caracteres especiales, la mayoría redundantes o innecesarios.
  • El código generado eran unos 90 KB que se agregaba al HTML de todas las páginas de edición, sin posibilidad de cachearlo a pesar de ser invariable.

La solución es dejar en MediaWiki:Edittools un conjunto mínimo de caracteres especiales indispensables y generar los distintos recuadros y el menú directamente mediante javascript. Esto trae los siguiente beneficios:

  • La página queda aligerada para los que usen y los que no usen esta funcionalidad.
  • Los datos y el código generador (este archivo) quedan en la caché del navegador del usuario.
  • Al usar una sintaxis distinta al <charinsert> se pueden poner espacios y titles en los caracteres a insertar.

A su vez, tiene algunas desventajas:

  • Hay que usar la sintaxis de javascript y no se pueden cometer errores.
  • No se reconoce la sintaxis wiki.
  • Requiere procesamiento del lado del usuario.

Instrucciones

Se definen cuatro (cinco) funciones:

  • seccion("nombre"); — se usa para iniciar una nueva sección (y entrada en el menú).
  • texto("texto"); — para insertar texto (separadores, <br>s, lo que sea).
  • p(); — sólo el equivalente a “texto(" · ");”, para ahorrar tecleo.
  • caracter("texto a insertar", "title"); — genera código para insertar el texto. Con un signo + se marca dónde debe quedar el cursor tras la inserción. Se le puede poner (el segundo parámetro es opcional) un title que se mostrará cuando el cursor del mouse pase por arriba del caracter.
  • caracteres("texto_a_insertar texto_a_insertar ..."); — como el <charinsert>: se separa el parámetro por los espacios y se genera código para insertar cada una de las partes.

A continuación se definen las funciones.

 */
hito("C Edittools.js");

function generaCaracteresEspeciales() {
    hito("C GeneraCaracteresEspeciales");
    var arr = [];
    var menu = ["<select style=\"display:inline\" ",
                "id=\"elSelectQueCambia\" ",
                "onChange=\"cambiaCaracteresEspecialesVisibles(selectedIndex)\">"];
    var escapeHTML = function (txt) {
            txt = txt.replace(/&/g, '&');
            txt = txt.replace(/</g, '<');
            txt = txt.replace(/>/g, '>');
            return txt;
        },
        escapeJS = function (txt) {
            txt = escapeHTML(txt);
            txt = txt.replace(/"/g, '\\"');
            txt = txt.replace(/\\/, '\\\\');
            txt = txt.replace(/'/g, "\\'");
            return txt;
        },
        seccion = function (nombre) {
            if (arr.length > 0) {
                arr[arr.length] = "</p>";
            }
            arr[arr.length] = "<p class=\"specialbasic\" title=\"" + nombre + "\">";
            menu[menu.length] = "<option>" + nombre + "</option>";
        },
        texto = function (txt) {
            arr[arr.length] = txt;
        },
        p = function () {
            arr[arr.length] = " <b>·</b> ";
        },
        caracter = function (car, title) {
            var pre = "",
                post = "";
            if (car == "+") {
                pre = car;
            } else {
                var partes = car.split("+");
                pre = partes.shift();
                post = partes.join("+");
            }
            arr[arr.length] = "<a href=\"#\" onclick=\"insertTags('" +
                              escapeJS(pre) + "', '" +
                              escapeJS(post) + "', '');return false\"";
            if (title) {
                arr[arr.length] = " title=\"" + escapeHTML(title).replace(/"/g, '"') + "\"";
            }
            arr[arr.length] = ">" + escapeHTML(pre + post) + "</a>\n";
        },
        caracteres = function (cars) {
            var a = cars.split(/\s+/);
            for (var i = 0; i < a.length; i++) {
                if (a[i]) {
                    caracter(a[i]);
                }
            }
        };
    /*

Definiciones

Varios

 */
    seccion("Varios");

    texto("<small><b>Sintaxis wiki</b></small>");  p();
    caracter("[[+]]", "Enlace interno");           p();
    caracter("[+]", "Enlace externo");             p();
    caracter("{{+}}", "Plantilla");                p();
    caracter("{{{+}}}", "Parámetro");              p();
    caracter("[[Categoría:+]]", "Categorización"); p();
    caracter("{{ORDENAR:+}}", "Ordenamiento");     p();
    caracter("#REDIRECCIÓN [[+]]", "Redirección"); p();
    caracter("[[:Archivo:+]]", "Enlace a imagen"); p();
    caracter("[[Media:+]]", "Inserción de contenido multimedia");      p();
    caracter("<gallery>+</gallery>", "Galería de imágenes");           p();
    caracter("<ref>+</ref>", "Inserción de referencias");              p();
    caracter("<ref group='nota'>+</ref>", "Inserción de nota al pie"); p();
    caracter("<!-- + -->", "Comentario HTML");                         p();
    caracter("<nowiki" + ">+<" + "/nowiki>", "Ignorar sintaxis wiki"); p();
    caracter(" ", "Espacio irrompible");      p();

    texto("<small><b>Tipografía</b></small>");    p();
    caracter("–", "Menos");
    caracter("—", "Raya");                        p();
    caracter("“+”", "Comillas altas");
    caracter("‘+’", "Comillas simples");          p();
    caracter("«+»", "Comillas latinas");
    caracter("‹+›", "Comillas latinas simples");  p();
    caracter("„+“", "Comillas alemanas");
    caracter("‚+‘", "Comillas alemanas simples"); p();
    caracter("¿+?", "Interrogación");             p();
    caracter("¡+!", "Exclamación");               p();
    caracteres("~ | °");                          p();
    caracteres("· × ² ³ ½ € †");                  p();

    texto("<small><b>Ordinales</b></small>");     p();
    caracteres("ª º");                            p();

    texto("<small><b>Letras c/diacríticos</b></small>"); p();
    caracteres("Á É Í Ñ Ó Ú Ü");                  p();
    caracteres("á é í ñ ó ú ü");                  p();

    texto("<small><b>Matemática</b></small>");    p();
    caracteres("∈ → ≠ ℕ ℤ ℚ ℝ");
    /* 

Alfabeto latino con diacríticos

 */

    seccion("Latino c/diacr.");

    texto("<b>á</b>");                       p();
    caracteres("Á Ć É Í Ĺ Ń Ó Ŕ Ś Ú Ý Ź");   p();
    caracteres("á ć é í ĺ ń ó ŕ ś ú ý ź");   p();

    texto("<b>à</b>");                       p();
    caracteres("À È Ì Ò Ù");                 p();
    caracteres("à è ì ò ù");                 p();

    texto("<b>â</b>");                       p();
    caracteres("Â Ĉ Ê Ĝ Ĥ Î Ĵ Ô Ŝ Û Ŵ Ŷ Ẑ"); p();
    caracteres("â ĉ ê ĝ ĥ î ĵ ô ŝ û ŵ ŷ ẑ"); p();

    texto("<b>ä</b>");                       p();
    caracteres("Ä Ë Ḧ Ï Ö Ü Ẅ Ẍ Ÿ");         p();
    caracteres("ä ë ḧ ï ö ü ẅ ẍ ÿ");         p();

    texto("<b>ã</b>");                       p();
    caracteres("Ã Ẽ Ĩ Ñ Õ Ũ Ṽ Ỹ");           p();
    caracteres("ã ẽ ĩ ñ õ ũ ṽ ỹ");           p();

    texto("<b>č</b>");                       p();
    caracteres("Č Ď Ě Ľ Ň Ř Š Ť Ž");         p();
    caracteres("č ď ě ľ ň ř š ť ž");         p();

    texto("<b>ā</b>");                       p();
    caracteres("Ā Ē Ḡ Ī Ō Ū");               p();
    caracteres("ā ē ḡ ī ō ū");               p();

    texto("<b>ă</b>");                       p();
    caracteres("Ă Ĕ Ğ Ĭ Ŏ Ŭ");               p();
    caracteres("ă ĕ ğ ĭ ŏ ŭ");               p();

    texto("<b>ç</b>");                       p();
    caracteres("Ç Ḑ Ģ Ḩ Ķ Ļ Ņ Ŗ Ş Ţ");       p();
    caracteres("ç ḑ ģ ḩ ķ ļ ņ ŗ ş ţ");        p();

    texto("<b>å</b>");                       p();
    caracteres("Å Ů");                       p();
    caracteres("å ů");                       p();

    texto("<b>ą</b>");                       p();
    caracteres("Ą Ę Į Ǫ Ų");                 p();
    caracteres("ą ę į ǫ ų");                 p();

    texto("<b>ő</b>");                       p();
    caracteres("Ő Ű");                       p();
    caracteres("ő ű");                       p();

    texto("<b>ø</b>");                       p();
    caracteres("Đ Ǥ Ħ Ł Ø Ŧ Ƶ");             p();
    caracteres("đ ð ǥ ħ ł ø ŧ ƶ");           p();

    caracteres("ß");                         p();
    caracteres("Æ æ Œ œ");                   p();
    caracteres("Þ þ");
    /* 

Alfabeto fonético internacional

 */

    seccion("Alfabeto fonético");

    caracteres(" ʈ ɖ ɟ ɡ ɢ ʡ ʔ ");             p();
    caracteres(" ɸ ʃ ʒ ɕ ʑ ʂ ʐ ʝ ɣ ʁ ʕ ʜ ʢ ɦ "); p();
    caracteres(" ɱ ɳ ɲ ŋ ɴ ");               p();
    caracteres(" ʋ ɹ ɻ ɰ ");                  p();
    caracteres(" ʙ ʀ ɾ ɽ ");                  p();
    caracteres(" ɫ ɬ ɮ ɺ ɭ ʎ ʟ ");              p();
    caracteres(" ɥ ʍ ɧ ");                   p();
    caracteres(" ɓ ɗ ʄ ɠ ʛ ");                p();
    caracteres(" ʘ ǀ ǃ ǂ ǁ ");                p();
    caracteres(" ɨ ʉ ɯ ");                    p();
    caracteres(" ɪ ʏ ʊ ");                    p();
    caracteres(" ɘ ɵ ɤ ");                    p();
    caracteres(" ɚ ");                       p();
    caracteres(" ɛ ɜ ɝ ɞ ʌ ɔ ");              p();
    caracteres(" ɐ ɶ ɑ ɒ ");                 p();
    caracteres(" ʰ ʷ ʲ ˠ ˤ ⁿ ˡ ");               p();
    caracteres(" ˈ ˌ ː ˑ ");
    /* 

Alemán

 */

    seccion("Alemán");

    caracteres("Ä Ö Ü"); p();
    caracteres("ä ö ü"); p();
    caracteres("ß");

    /* 

Árabe

 */

    seccion("Árabe");
    caracteres("ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي");  p();
    caracteres("ﺍ ﺑ ﺗ ﺛ ﺟ ﺣ ﺧ ﺩ ﺫ ﺭ ﺯ ﺳ ﺷ ﺻ ﺿ ﻃ ﻇ ﻋ ﻏ ﻓ ﻗ ﻛ ﻟ ﻣ ﻧ ﻫ ﻭ ﻳ");              p();
    caracteres("ﺍ ﺒ ﺘ ﺜ ﺠ ﺤ ﺨ ﺪ ﺬ ﺮ ﺰ ﺴ ﺸ ﺼ ﻀ ﻄ ﻈ ﻌ ﻐ ﻔ ﻘ ﻜ ﻠ ﻤ ﻨ ﻬ ﻮ ﻴ");             p();
    caracteres("ﺎ ﺐ ﺖ ﺚ ﺞ ﺢ ﺦ ﺪ ﺬ ﺮ ﺰ ﺲ ﺶ ﺺ ﺾ ﻂ ﻆ ﻊ ﻎ ﻒ ﻖ ﻚ ﻞ ﻢ ﻦ ﻪ ﻮ ﻲ"); p();
    caracteres("ء- - - - - آ أ إ ة ؤ ئ ى");                                        p();
    caracteres("پ چ ژ گ ﭪ ۰ ۱ ۲ ۳ ٤ ٥ ٦ ٧ ۸ ۹");


    /* 

Catalán

 */

    seccion("Catalán");

    caracteres("Á À Ç É È Ë Í Ï Ó Ò Ö Ú Ù"); p();
    caracteres("á à ç é è ë í ï ó ò ö ú ù");

    /* 

Checo

 */

    seccion("Checo");
    caracteres("Á Č Ď É Ě Í Ň Ó Ř Š Ť Ú Ů Ý Ž"); p();
    caracteres("á č ď é ě í ň ó ř š ť ú ů ý ž");

    /* 

Alfabeto cirílico

 */

    seccion("Cirílico");
    caracteres("А Б В Г Д Ђ Е Ё Ж З Ѕ И Й Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш Щ Ъ Ы Ь Э Ю Я"); p();
    caracteres("а б в г д ђ е ё ж з ѕ и й ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш щ ъ ы ь э ю я");

    /* 

Devanāgarī

 */

    seccion("Devanāgarī");
    caracteres(" ः अ आ इ ई उ ऊ ऋ ऌ ऍ ऎ ए ऐ ऑ ऒ ओ औ क क़ ख ख़ ग ग़ घ ङ च छ ज ज़ झ ञ ट ठ");
    caracteres("ड ड़ द ढ ढ़ ण त थ ध न ऩ प फ फ़ ब भ म य य़ र ऱ ल ळ ऴ व श ष स ह ़ ऽ ा ि ॊ ो ौ ् ी ु ू ृ ॄ ॅ ॆ े ै ॉ ");
    caracteres("ॐ ॑ ॒ ॓ ॔ ॠ ॡ ॢ ॣ । ॥ ॰");

    /* 

Escandinavo

 */

    seccion("Escandinavo");
    caracteres("À É Å Æ Ä Ø Ö"); p();
    caracteres("à é å æ ä ø ö");

    /* 

Esperanto

 */

    seccion("Esperanto");
    caracteres("Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ"); p();
    caracteres("ĉ ĝ ĥ ĵ ŝ ŭ");

    /* 

Estonio

 */

    seccion("Estonio");
    caracteres("Č Š Ž Õ Ä Ö Ü"); p();
    caracteres("č š ž õ ä ö ü");

    /* 

Francés

 */

    seccion("Francés");
    caracteres("À Â Ç É È Ê Ë Î Ï Ô Œ Ù Û Ü Ÿ"); p();
    caracteres("à â ç é è ê ë î ï ô œ ù û ü ÿ");

    /* 

Galés

 */

    seccion("Galés");
    caracteres("Á À Â Ä É È Ê Ë Ì Î Ï Ó Ò Ô Ö Ù Û Ẁ Ŵ Ẅ Ý Ỳ Ŷ Ÿ"); p();
    caracteres("á à â ä é è ê ë ì î ï ó ò ô ö ù û ẁ ŵ ẅ ý ỳ ŷ ÿ");

    /* 

Griego

 */

    seccion("Griego");

    texto("Alfabeto"); p();
    caracteres("Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω"); p();
    caracteres("Ϝ Ϻ ϟ Ϡ Ϛ Ϸ Ῥ"); p();
    caracteres("α β ϐ γ δ ε ζ η θ ϑ ι κ ϰ λ μ ν ξ ο π ϖ ρ ϱ σ ς τ υ φ ϕ χ ψ ω"); p();
    caracteres("ϝ ϻ ϟ ϡ ϛ ϸ ῤ ῥ"); p();
    
    texto("Acentuado"); p();    
    caracteres("Ά Έ Ή Ί Ό Ύ Ώ"); p();
    caracteres("ά έ ή ί ό ύ ώ");

    /* 

Hawaiano

 */

    seccion("Hawaiano");
    caracteres("Ā Ē Ī Ō Ū"); p();
    caracteres("ā ē ī ō ū"); p();
    caracteres("ʻ");

    /* 

Hebreo

 */

    seccion("Hebreo");
    caracteres("א ב ג ד ה ו ז ח ט י כ ך ל מ ם נ ן ס ע פ ף צ ץ ק ר ש ת ־ ״ ׳");

    /* 

Húngaro

 */

    seccion("Húngaro");
    caracteres("Á É Í Ó Ö Ő Ú Ü Ű"); p();
    caracteres("á é í ó ö ő ú ü ű");

    /* 

Inglés antiguo

 */

    seccion("Inglés antiguo");
    caracteres("Ā Æ Ǣ Ǽ Ċ Ð Ē Ġ Ī Ō Ū Ƿ Ȳ Þ Ȝ"); p();
    caracteres("ā æ ǣ ǽ ċ ð ē ġ ī ō ū ƿ ȳ þ ȝ");

    /* 

Islandés

 */

    seccion("Islandés");
    caracteres("Á Ð É Í Ó Ú Ý Þ Æ Ö"); p();
    caracteres("á ð é í ó ú ý þ æ ö");

    /* 

Italiano

 */

    seccion("Italiano");
    caracteres("Á À É È Í Ì Ó Ò Ú Ù"); p();
    caracteres("á à é è í ì ó ò ú ù");

    /* 

Japonés

 */

    seccion("Japonés");
    caracteres("Ā Ē Ī Ō Ū"); p();
    caracteres("ā ē ī ō ū"); p();
    caracteres("あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ ゐ ゑ を ぁ ぃ ぅ ぇ ぉ ゃ ゅ ょ っ"); p();
    caracteres("ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヰ ヱ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー");

    /* 

Letón

 */

    seccion("Letón");
    caracteres("Ā Č Ē Ģ Ī Ķ Ļ Ņ Š Ū Ž"); p();
    caracteres("ā č ē ģ ī ķ ļ ņ š ū ž");

    /* 

Lituano

 */

    seccion("Lituano");
    caracteres("Ą Č Ę Ė Į Š Ų Ū Ž"); p();
    caracteres("ą č ę ė į š ų ū ž");

    /* 

Maltés

 */

    seccion("Maltés");
    caracteres("Ċ Ġ Ħ Ż"); p();
    caracteres("ċ ġ ħ ż");

    /* 

Pinyin

 */

    seccion("Pinyin");
    caracteres("Á À Ǎ Ā É È Ě Ē Í Ì Ǐ Ī Ó Ò Ǒ Ō Ú Ù Ü Ǔ Ū Ǘ Ǜ Ǚ Ǖ"); p();
    caracteres("á à ǎ ā é è ě ē í ì ǐ ī ó ò ǒ ō ú ù ü ǔ ū ǘ ǜ ǚ ǖ");

    /* 

Polaco

 */

    seccion("Polaco");
    caracteres("Ą Ć Ę Ł Ń Ó Ś Ź Ż"); p();
    caracteres("ą ć ę ł ń ó ś ź ż");

    /* 

Portugués

 */

    seccion("Portugués");
    caracteres("Á À Â Ã Ç É Ê Í Ó Ô Õ Ú Ü"); p();
    caracteres("á à â ã ç é ê í ó ô õ ú ü");

    /* 

Rumano

 */

    seccion("Rumano");
    caracteres("Ă Â Î Ş Ţ"); p();
    caracteres("ă â î ş ţ");

    /* 

Serbio

 */

    seccion("Serbio");
    caracteres("А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш"); p();
    caracteres("а б в г д ђ е ж з и ј к л љ м н њ о п р с т ћ у ф х ц ч џ ш");

    /* 

Turco

 */

    seccion("Turco");
    caracteres("Ç Ğ I İ Ş"); p();
    caracteres("ç ğ ı i ş");

    /* 

Vietnamita

 */

    seccion("Vietnamita");
    caracteres("À Ả Á Ạ Ã Ă Ằ Ẳ Ẵ Ắ Ặ Â Ầ Ẩ Ẫ Ấ Ậ Đ È Ẻ Ẽ É Ẹ Ê Ề Ể Ễ Ế Ệ Ỉ Ĩ Í Ị Ì Ỏ Ó Ọ Ò Õ Ô Ồ Ổ Ỗ Ố Ộ Ơ Ờ Ở Ỡ Ớ Ợ Ù Ủ Ũ Ú Ụ Ư Ừ Ử Ữ Ứ Ự Ỳ Ỷ Ỹ Ỵ Ý"); p();
    caracteres("à ả á ạ ã ă ằ ẳ ẵ ắ ặ â ầ ẩ ẫ ấ ậ đ è ẻ ẽ é ẹ ê ề ể ễ ế ệ ỉ ĩ í ị ì ỏ ó ọ ò õ ô ồ ổ ỗ ố ộ ơ ờ ở ỡ ớ ợ ù ủ ũ ú ụ ư ừ ử ữ ứ ự ỳ ỷ ỹ ỵ ý");

    /* 

Yídish

 */

    seccion("Yídish");
    caracteres("א אַ אָ ב בֿ ג ד ה ו וּ װ ױ ז זש ח ט י יִ ײ ײַ כ ך כּ ל ל+ מ ם נ ן ס ע ע+ פ פּ פֿ ף צ ץ ק ר ש שׂ תּ ת ׳ ״ ־");

    /* 

Final

Aquí se cierran las funciones y se devuelve el código generado, para insertar en la página. A continuación se definen las funciones para manejar el menú de selección.

Finalmente, se adosa al evento de carga de página la función generatriz del menú.

 */
    arr[arr.length] = "</p>";
    menu[menu.length] = "</select>   ";
    hito("F GeneraCaracteresEspeciales");
    return menu.concat(arr);
}

function cambiaCaracteresEspecialesVisibles(n) {
    var select = document.getElementById("elSelectQueCambia");
    if (!select) {
        return;
    }
    var cual = select.options[n].text,
        l = document.getElementById('specialchars').getElementsByTagName('p');
    for (var i = 0; i < l.length; i++) {
        l[i].style.display = l[i].title == cual ? 'inline' : 'none';
    }
}

function menuDeCaracteresEspeciales() {
    hito("C MenuDeCaracteresEspeciales");
    var specialchars = document.getElementById('specialchars');

    if (specialchars) {
        hito("C inserción HTML (1)");
        specialchars.innerHTML = generaCaracteresEspeciales().join("");
        hito("F inserción HTML (1)");

        cambiaCaracteresEspecialesVisibles(0);
    }
    hito("F MenuDeCaracteresEspeciales");
}

if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) > -1 &&
     ( window.quieroEditToolsSimple === undefined || !window.quieroEditToolsSimple ) ) {
    $( menuDeCaracteresEspeciales );
}

hito("F Edittools.js");
//