SlideShare una empresa de Scribd logo
1 de 11
/*
== 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:
* <code>seccion("<i>nombre</i>");</code> âr ” se usa para iniciar una nueva sección
(y entrada en el menú).
* <code>texto("<i>texto</i>");</code> â>” para insertar texto (separadores,
&lt;br>s, lo que sea).
* <code>p();</code> â.” sólo el equivalente a ân œ<code>texto(" · ");</code>âc ,
para ahorrar tecleo.
* <code>caracter("<i>texto a insertar</i>", "<i>title</i>");</code> â; ” genera
código para insertar el texto. Con un signo <code>+</code> 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.
* <code>caracteres("<i>texto_a_insertar texto_a_insertar ...</i>");</code> âa ” como
el &lt;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.

<pre><nowiki> */
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, '&amp;');
txt = txt.replace(/</g, '&lt;');
     txt = txt.replace(/>/g, '&gt;');
     return txt;
  }
  var escapeJS = function(txt)
  {
     txt = escapeHTML(txt);
     txt = txt.replace(/"/g, '"');
     txt = txt.replace(//, '');
     txt = txt.replace(/'/g, "'");
     return txt;
  }
  var 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>";
  };
  var texto      = function(txt) { arr[arr.length] = txt; };
  var p          = function() { arr[arr.length] = " · "; };
  var caracter = function(car, title)
  {
     var pre = ""; var 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, '&quot;') + """;
     arr[arr.length] = ">" + escapeHTML(pre + post) + "</a>n";
  };
  var caracteres = function(cars)
  {
     var a = cars.split(/s+/);
     for (var i=0; i<a.length; i++)
     {
       if (a[i]) caracter(a[i]);
     }
  };
/*
</nowiki></pre>

== Definiciones ==
=== Varios ===
<pre><nowiki> */
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("&nbsp;",           "Espacio irrompible"); p();

texto("<small><b>TipografÃa</b></small>"); p();
caracter("ââ“",   "Menos");
caracter("âl”",    "Raya"); p();
caracter("âlœ+⠝", "Comillas altas");
caracter("âl˜+â ™", "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("∈ → ââ â„• ℤ â„š ℝ");
/* </nowiki></pre>

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

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("Þ þ");

/* </nowiki></pre>

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

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("   ˈ ˌ ː ˑ ");
/* </nowiki></pre>

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

seccion("Alemán");

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

/* </nowiki></pre>

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

seccion("Árabe");
caracteres("ا ب ت Ø« ج Ø Ø® د Ø° ر ز س Ø´ ص ض Ø· ظ ع غ ف Ù‚ Ùƒ Ù„ Ù…
Ù† Ù‡ Ùˆ ÙŠ"); p();
caracteres("ﺍ ﺑ ﺗ ﺛ ﺟ ﺣ ﺧ ﺩ ﺫ ïº ïº¯ ﺳ ﺷ ﺻ ﺿ ﻃ ﻇ ﻋ
ﻏ ﻓ ï»— ï»› ﻟ ﻣ ﻧ ﻫ ï» ï»³"); p();
caracteres("ﺍ ﺒ ﺘ ﺜ ïº ïº¤ ﺨ ﺪ ﺬ ﺮ ﺰ ﺴ ﺸ ﺺ ï» ï»„ ﻈ ﻌ
ﻐ ï»” ﻘ ﻜ ï» ï»¤ ﻨ ﻬ ï»® ï»´"); p();
caracteres("ﺎ ﺐ ﺖ ﺚ ﺞ ﺢ ﺦ ﺪ ﺬ ﺮ ﺰ ﺲ ﺶ ﺺ ﺾ ﻂ ﻆ ﻊ
ﻎ ﻒ ﻖ ﻚ ﻞ ﻢ ﻦ ﻪ ﻮ ﻲ"); p();
caracteres("Ø¡- - - - - Ø¢ Ø£ Ø¥ Ø© ؤ ئ Ùâ"); p();
caracteres("Ù¾ Ú† Ú˜ Ú¯ ïª Û° Û± Û² Û³ Ù¤ Ù¥ Ù¦ Ù§ Û¸ Û¹");


/* </nowiki></pre>

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

seccion("Catalán");

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

/* </nowiki></pre>

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

seccion("Checo");
caracteres("Á ÄŒ ÄŽ Ãâ Äš Í Ň Ó Ř ŠŤ Ú Å® Ý Ž"); p();
caracteres("á č ď é ě à ň ó ř š ť ú ů ý ž");

/* </nowiki></pre>

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

seccion("CirÃlico");
caracteres("А Б Ð’   Г Д Ђ Е Ё Ж З Ð… И Й Ј К Л Ðâ Ðœ Н Њ О П РС
Т Ћ У Ф Х Ц Ч   Џ Ш Щ Ъ Ы Ь РЮ Я"); p();
caracteres("а б в   г д Ñ’ е Ñ‘ ж з Ñ• и й ј к л Ñ™ к н Ñš о п Ñ  с
Ñ‚ Ñ› у Ñ„ Ñ… ц ч   ÑŸ ш Ñâ ÑŠ Ñ‹ ÑŒ э ÑŽ я");
/* </nowiki></pre>

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

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

/* </nowiki></pre>

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

seccion("Escandinavo");
caracteres("Ãn Ãâ Ã… Æ Ä Ø Ö"); p();
caracteres("à é å æ ä ø ö");

/* </nowiki></pre>

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

seccion("Esperanto");
caracteres("Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ"); p();
caracteres("Äâ ĝ Ä¥ ĵ ŝ Å");

/* </nowiki></pre>

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

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

/* </nowiki></pre>

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

seccion("Francés");
caracteres("Ãc Â Ç Ãâ È Ê Ë ÃŽ Ï Ô Å’ Ù Û Ãœ Ÿ"); p();
caracteres("à â ç é è ê ë î ï ô œ ù û ú ÿ");

/* </nowiki></pre>

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

seccion("Galés");
caracteres("Á Ãà Â Ä Ãâ È Ê Ë ÃŒ ÃŽ Ï Ó Ã’ Ô Ö Ù Û Ẻ Å´ Ẅ Ý Ỳ Ŷ
Ÿ"); p();
caracteres("á à â ä é è ê ë ì î ï ó ò ô ö ù û ẁ ŵ ẅ ý ỳ ŷ
ÿ");
/* </nowiki></pre>

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

seccion("Griego");
caracteres("Α Ά Î’ Γ Δ Ε Έ Ζ Η Îâ Θ Ι Ί Κ Λ Îœ Ν Ξ Ο ÎŒ ΠΡ Σ Τ
Υ Ύ Φ Χ Ψ Ω Ώ"); p();
caracteres("α ά β γ δ ε Πζ η ή θ ι ί κ λ κ ν ξ ο ÏŒ ÏÄ Ï σ Ï„
Ï… ύ φ χ ψ Ïâ ÏŽ");

/* </nowiki></pre>

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

seccion("Hawaiano");
caracteres("Äi Ä’ Ī ÅŒ Ū"); p();
caracteres("ā Ä“ Ä« ō Å«"); p(); caracteres(" »");

/* </nowiki></pre>

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

seccion("Hebreo");
caracteres("א ב ×’ ד ×” ו ×– ×— ט ×™ ×› ך ל מ ם ×   ן ס ×¢ פ ×£ צ ×¥ ק
ר ש ת ־ ״ ׳");

/* </nowiki></pre>

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

seccion("Húngaro");
caracteres("Á Ãâ Í Ó Ö Ő Ú Ãœ Å°"); p();
caracteres("á é à ó ö ő ú ú ű");

/* </nowiki></pre>

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

seccion("Inglés antiguo");
caracteres("Äà Æ Ç¢ Ǻ ÄŠ Ð Ä’ Ä Äª ÅŒ Ū Ç· Ȳ Þ Èœ"); p();
caracteres("ā æ ǣ ǽ ċ ð ē ġ ī ō ū ƿ ȳ þ ȝ");

/* </nowiki></pre>

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

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

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

seccion("Italiano");
caracteres("Á Ãà Ãâ È Í ÃŒ Ó Ã’ Ú Ù"); p();
caracteres("á à é è à ì ó ò ú ù");

/* </nowiki></pre>

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

seccion("Japonés");
caracteres("Än Ä’ Ī ÅŒ Ū"); p();
caracteres("ā ē ī ō ū"); p();
caracteres("あ い う え お か き く け こ さ し す せ そ た ち つ
て と な に ぬ だの は ひ ふ へ ほ ま み ã‚· め ã‚‚ ã‚„ ゆ よ ã‚â
ã‚Š ã‚‹ ã‚Œ ろ わ ゐ ã‚‘ ã‚’ ぁ ぃ ぅ ぇ ãâ ゃ ã‚… ょ っ"); p();
caracteres("ア イ ウ エ オ カ ゠ク ケ コ サ シ ス セ ソ タ チ ツ
テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ムメ モ ヤ ユ ヨ ラ
リ ル レ ムワ ヰ ヱ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ヺ");

/* </nowiki></pre>

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

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

/* </nowiki></pre>

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

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

/* </nowiki></pre>

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

seccion("Maltés");
caracteres("ÄŠ Ä Ä¦ Å»"); p();
caracteres("ċ ġ ħ ź");

/* </nowiki></pre>

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

seccion("Pinyin");
caracteres("Á Ãà Ǎ ÄÄ Ãâ È Äš Ä’ Í ÃŒ Ǐ Ī Ãà Ò Ç‘ ÅŒ Ú Ù Ãœ Ç““ Ū Ç— Ç› Ç™
Ç•"); p();
caracteres("á à ǎ ā é è ě ē à ì ǐ ī ó ò ǒ ō ú ù ú ǔ ū ǘ ǜ ǚ
Ç–");
/* </nowiki></pre>

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

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

/* </nowiki></pre>

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

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

/* </nowiki></pre>

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

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

/* </nowiki></pre>

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

seccion("Serbio");
caracteres("А Б Ð’ Г Д Ђ Е Ж З И Ј К Л Ðâ Ðœ Н Њ О П РС Т Ћ У
Ф Х Ц Ч Џ Ш"); p();
caracteres("а б в г д Ñ’ е ж з и ј к л Ñ™ к н Ñš о п ÑÇ Ñ Ñ‚ Ñ› у
ф х ц ч џ ш");

/* </nowiki></pre>

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

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

/* </nowiki></pre>

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

seccion("Vietnamita");
caracteres("Ãn Ả Á ẠÃ Ä‚ Ằ Ẳ Ẵ Ắ    Ặ Â Ầ Ẩ Ẫ Ấ Ậ Đ È
Ẻ Ẻ Ãâ Ẹ Ê á»» Ể Ễ Ế Ệ Ỉ Ĩ Í   Ị ÃŒ Ỏ Ó Ọ Ã’ Õ Ô á»’ á»”
á»– Ố Ộ Æ á»œ Ở ỠỚ Ợ Ù Ủ Ũ Ú     Ụ Ư Ừ Ử á»® Ứ á»° Ỳ Ỷ
Ỹ Ỵ Ý"); p();
caracteres("à ả á ạ ã ă ằ ẳ ẵ ắ    ặ â ầ ẩ ẫ ấ Ạđ è ẻ
ẽ é ẹ ê ề ể á»… ế ệ á»â Ä© à ị ì ỏ ó ọ ò õ ô ồ ổ á»—
ố ộ ơ ờ ở ỡ ớ ợ ù ủ ũ ú ụ ư ừ Ỡữ ứ ự ỳ ỷ ỹ
ỵ ý");

/* </nowiki></pre>

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

seccion("YÃdish");
caracteres("א אַ אָ ב בֿ ג ד ה ו וֺ װ ױ ז זש ח ט י יִ ײ
ײַ ×› ך ×›Öº ל ל+ מ ם × ×Ÿ ס ×¢ ×¢+ פ פֺ פֿ ×£ צ ×¥ ק ר ש שׂ
תֺ ת ׳ ״ ־");

/* </nowiki></pre>

== 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ú.
<pre><nowiki> */
  arr[arr.length] = "</p>";
  menu[menu.length] = "</select> &nbsp; ";
  hito("F GeneraCaracteresEspeciales");
  return menu.concat(arr);
}


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");
}

function CambiaCaracteresEspecialesVisibles(n) {
  var select = document.getElementById("elSelectQueCambia");
  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';
   }
}


function MenuDeCaracteresEspecialesWrp() {
    if (wgAction == "edit" || wgAction == "submit" &&
(typeof(quieroEditToolsSimple) == "undefined" || !quieroEditToolsSimple))
MenuDeCaracteresEspeciales();
}

//addLoadEvent(MenuDeCaracteresEspecialesWrp);

addOnloadHook(MenuDeCaracteresEspecialesWrp);

//if (window.addEventListener)
window.addEventListener("load",MenuDeCaracteresEspecialesWrp,false);
//else if (window.attachEvent)
window.attachEvent("onload",MenuDeCaracteresEspecialesWrp);

hito("F Edittools.js");
//</nowiki></pre>

Más contenido relacionado

Destacado

Pecha%20 Kucha%20 Slide%20 Organizer
Pecha%20 Kucha%20 Slide%20 OrganizerPecha%20 Kucha%20 Slide%20 Organizer
Pecha%20 Kucha%20 Slide%20 Organizershettleraustin
 
Olympic Games Beijing 2008
Olympic Games Beijing 2008Olympic Games Beijing 2008
Olympic Games Beijing 2008Olesia Rogovaya
 
C:\fakepath\instrucciones y ejemplos para crear paginas web
C:\fakepath\instrucciones y ejemplos para crear paginas webC:\fakepath\instrucciones y ejemplos para crear paginas web
C:\fakepath\instrucciones y ejemplos para crear paginas webjacintachavez
 
2011 Getting The Most Out Of Digital Conference April 8 2011
2011 Getting The Most Out Of Digital Conference   April 8 20112011 Getting The Most Out Of Digital Conference   April 8 2011
2011 Getting The Most Out Of Digital Conference April 8 2011Awakino
 
Rational Investing
Rational InvestingRational Investing
Rational Investinglsutter
 

Destacado (12)

Übersicht Monat Mai
Übersicht Monat MaiÜbersicht Monat Mai
Übersicht Monat Mai
 
Pecha%20 Kucha%20 Slide%20 Organizer
Pecha%20 Kucha%20 Slide%20 OrganizerPecha%20 Kucha%20 Slide%20 Organizer
Pecha%20 Kucha%20 Slide%20 Organizer
 
Me and my_finance
Me and my_financeMe and my_finance
Me and my_finance
 
Recognition From Top Brass Of Indus Ind
Recognition From Top Brass Of Indus IndRecognition From Top Brass Of Indus Ind
Recognition From Top Brass Of Indus Ind
 
Olympic Games Beijing 2008
Olympic Games Beijing 2008Olympic Games Beijing 2008
Olympic Games Beijing 2008
 
8b Pasta Salad
8b Pasta Salad8b Pasta Salad
8b Pasta Salad
 
C:\fakepath\instrucciones y ejemplos para crear paginas web
C:\fakepath\instrucciones y ejemplos para crear paginas webC:\fakepath\instrucciones y ejemplos para crear paginas web
C:\fakepath\instrucciones y ejemplos para crear paginas web
 
2011 Getting The Most Out Of Digital Conference April 8 2011
2011 Getting The Most Out Of Digital Conference   April 8 20112011 Getting The Most Out Of Digital Conference   April 8 2011
2011 Getting The Most Out Of Digital Conference April 8 2011
 
Firstpagelet
FirstpageletFirstpagelet
Firstpagelet
 
Rational Investing
Rational InvestingRational Investing
Rational Investing
 
Greek gods
Greek godsGreek gods
Greek gods
 
2310 b 12
2310 b 122310 b 12
2310 b 12
 

Similar a Index

01 introduccion a java script
01 introduccion a java script01 introduccion a java script
01 introduccion a java scriptDon Augusto
 
6... producciones por derecha e izquierda
6... producciones por derecha e izquierda6... producciones por derecha e izquierda
6... producciones por derecha e izquierdaJacqui Venegas
 
Engineering Cost of Building Cloud Apps - Simon Munro
Engineering  Cost of Building Cloud Apps - Simon Munro Engineering  Cost of Building Cloud Apps - Simon Munro
Engineering Cost of Building Cloud Apps - Simon Munro Chris Purrington
 
Julissarodriguezvilca
JulissarodriguezvilcaJulissarodriguezvilca
JulissarodriguezvilcajulissaJRV
 
Etiquetas y teoria html
Etiquetas y teoria htmlEtiquetas y teoria html
Etiquetas y teoria htmlssxdan
 
Curso de Django | Django Course
Curso de Django | Django CourseCurso de Django | Django Course
Curso de Django | Django Coursealeperalta
 
Asegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebAsegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebChema Alonso
 
Coloreo
ColoreoColoreo
ColoreoJorge
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básicocamposer
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquerykaolong
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaRoberto Allende
 
EJERCICIO DE ARCHIVOS EN .CSV
EJERCICIO DE ARCHIVOS EN .CSVEJERCICIO DE ARCHIVOS EN .CSV
EJERCICIO DE ARCHIVOS EN .CSVMarlon Macas
 
Curso php dia2
Curso php dia2Curso php dia2
Curso php dia2cognos_uie
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenashorusblom
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Pythonnqnwebs
 

Similar a Index (20)

01 introduccion a java script
01 introduccion a java script01 introduccion a java script
01 introduccion a java script
 
6... producciones por derecha e izquierda
6... producciones por derecha e izquierda6... producciones por derecha e izquierda
6... producciones por derecha e izquierda
 
Engineering Cost of Building Cloud Apps - Simon Munro
Engineering  Cost of Building Cloud Apps - Simon Munro Engineering  Cost of Building Cloud Apps - Simon Munro
Engineering Cost of Building Cloud Apps - Simon Munro
 
Julissarodriguezvilca
JulissarodriguezvilcaJulissarodriguezvilca
Julissarodriguezvilca
 
Etiquetas y teoria html
Etiquetas y teoria htmlEtiquetas y teoria html
Etiquetas y teoria html
 
Curso de Django | Django Course
Curso de Django | Django CourseCurso de Django | Django Course
Curso de Django | Django Course
 
Asegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebAsegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en Web
 
Php Basico
Php BasicoPhp Basico
Php Basico
 
Clases de php
Clases de phpClases de php
Clases de php
 
Coloreo
ColoreoColoreo
Coloreo
 
Ingeniería web
Ingeniería webIngeniería web
Ingeniería web
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básico
 
Charla Jquery
Charla JqueryCharla Jquery
Charla Jquery
 
Taller II Coreis Python 13112009
Taller II Coreis Python 13112009Taller II Coreis Python 13112009
Taller II Coreis Python 13112009
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo Batista
 
EJERCICIO DE ARCHIVOS EN .CSV
EJERCICIO DE ARCHIVOS EN .CSVEJERCICIO DE ARCHIVOS EN .CSV
EJERCICIO DE ARCHIVOS EN .CSV
 
Curso php dia2
Curso php dia2Curso php dia2
Curso php dia2
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenas
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery
 

Último

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Último (11)

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

Index

  • 1. /* == 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 &lt;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: * <code>seccion("<i>nombre</i>");</code> âr ” se usa para iniciar una nueva sección (y entrada en el menú). * <code>texto("<i>texto</i>");</code> â>” para insertar texto (separadores, &lt;br>s, lo que sea). * <code>p();</code> â.” sólo el equivalente a ân œ<code>texto(" · ");</code>âc , para ahorrar tecleo. * <code>caracter("<i>texto a insertar</i>", "<i>title</i>");</code> â; ” genera código para insertar el texto. Con un signo <code>+</code> 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. * <code>caracteres("<i>texto_a_insertar texto_a_insertar ...</i>");</code> âa ” como el &lt;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. <pre><nowiki> */ 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, '&amp;');
  • 2. txt = txt.replace(/</g, '&lt;'); txt = txt.replace(/>/g, '&gt;'); return txt; } var escapeJS = function(txt) { txt = escapeHTML(txt); txt = txt.replace(/"/g, '"'); txt = txt.replace(//, ''); txt = txt.replace(/'/g, "'"); return txt; } var 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>"; }; var texto = function(txt) { arr[arr.length] = txt; }; var p = function() { arr[arr.length] = " · "; }; var caracter = function(car, title) { var pre = ""; var 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, '&quot;') + """; arr[arr.length] = ">" + escapeHTML(pre + post) + "</a>n"; }; var caracteres = function(cars) { var a = cars.split(/s+/); for (var i=0; i<a.length; i++) { if (a[i]) caracter(a[i]); } }; /* </nowiki></pre> == Definiciones == === Varios === <pre><nowiki> */ 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();
  • 3. 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("&nbsp;", "Espacio irrompible"); p(); texto("<small><b>TipografÃa</b></small>"); p(); caracter("ââ“", "Menos"); caracter("âl”", "Raya"); p(); caracter("âlœ+⠝", "Comillas altas"); caracter("âl˜+â ™", "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("∈ → ââ â„• ℤ â„š ℝ"); /* </nowiki></pre> === Alfabeto latino con diacrÃticos === <pre><nowiki> */ 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();
  • 4. 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("Þ þ"); /* </nowiki></pre> === Alfabeto fonético internacional === <pre><nowiki> */ 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(" ˈ ËŒ ː Ë‘ ");
  • 5. /* </nowiki></pre> === Alemán === <pre><nowiki> */ seccion("Alemán"); caracteres("Ä Ö Ãœ"); p(); caracteres("ä ö ú"); p(); caracteres("ß"); /* </nowiki></pre> === Árabe === <pre><nowiki> */ seccion("Árabe"); caracteres("ا ب ت Ø« ج Ø Ø® د Ø° ر ز س Ø´ ص ض Ø· ظ ع غ ف Ù‚ Ùƒ Ù„ Ù… Ù† Ù‡ Ùˆ ÙŠ"); p(); caracteres("ﺍ ﺑ ﺗ ﺛ ﺟ ﺣ ﺧ ﺩ ﺫ ïº ïº¯ ﺳ ﺷ ﺻ ﺿ ﻃ ﻇ ﻋ ﻏ ﻓ ï»— ï»› ﻟ ﻣ ﻧ ﻫ ï» ï»³"); p(); caracteres("ﺍ ﺒ ﺘ ﺜ ïº ïº¤ ﺨ ﺪ ﺬ ﺮ ﺰ ﺴ ﺸ ﺺ ï» ï»„ ﻈ ﻌ ﻐ ï»” ﻘ ﻜ ï» ï»¤ ﻨ ﻬ ï»® ï»´"); p(); caracteres("ﺎ ﺐ ﺖ ﺚ ﺞ ﺢ ﺦ ﺪ ﺬ ﺮ ﺰ ﺲ ﺶ ﺺ ﺾ ﻂ ﻆ ﻊ ﻎ ï»’ ï»– ﻚ ﻞ ﻢ ﻦ ﻪ ï»® ﻲ"); p(); caracteres("Ø¡- - - - - Ø¢ Ø£ Ø¥ Ø© ؤ ئ Ùâ"); p(); caracteres("Ù¾ Ú† Ú˜ Ú¯ ïª Û° Û± Û² Û³ Ù¤ Ù¥ Ù¦ Ù§ Û¸ Û¹"); /* </nowiki></pre> === Catalán === <pre><nowiki> */ seccion("Catalán"); caracteres("Á Ãà Ç Ãâ È Ë Í Ï Ó Ã’ Ö Ú Ù"); p(); caracteres("á à ç é è ë à ï ó ò ö ú ù"); /* </nowiki></pre> === Checo === <pre><nowiki> */ seccion("Checo"); caracteres("Á ÄŒ ÄŽ Ãâ Äš Í Ň Ó Ř ŠŤ Ú Å® Ý Ž"); p(); caracteres("á č ď é Ä› à ň ó Å™ Å¡ Å¥ ú ů ý ž"); /* </nowiki></pre> === Alfabeto cirÃlico === <pre><nowiki> */ seccion("CirÃlico"); caracteres("А Б Ð’ Г Д Ђ Е Ё Ж З Ð… И Й Ј К Л Ðâ Ðœ Н Њ О П РС Т Ћ У Ф Ð¥ Ц Ч Џ Ш Щ Ъ Ы Ь РЮ Я"); p(); caracteres("а б в г д Ñ’ е Ñ‘ ж з Ñ• и й ј к л Ñ™ к н Ñš о п Ñ Ñ Ñ‚ Ñ› у Ñ„ Ñ… ц ч ÑŸ ш Ñâ ÑŠ Ñ‹ ÑŒ э ÑŽ я");
  • 6. /* </nowiki></pre> === DevanāgarÄ« === <pre><nowiki> */ seccion("DevanāgarÄ«"); caracteres(" ः अ आ इ ई à¤â ऊ ऋ ऌ ऍ ऎ ए ऐ ऑ ऒ ओ औ क कऺ ख खऺ ग गऺ घ ङ च छ ज जऺ झ ञ ट ठ"); caracteres("ड डऺ द ढ ढऺ ण त थ ध न ऩ प फ फऺ ब ठम य यऺ र ऱ ल ळ ऴ व श ष स ह ऺ ऽ ा ि ॊ ो ौ ् । ु ू ृ ॄ ॅ ॆ े ै à¥â "); caracteres("ॐ ॑ ॒ ॓ ॔ ॠॡ ॢ ॣ । ॥ ॰"); /* </nowiki></pre> === Escandinavo === <pre><nowiki> */ seccion("Escandinavo"); caracteres("Ãn Ãâ Ã… Æ Ä Ø Ö"); p(); caracteres("à é Ã¥ æ ä ø ö"); /* </nowiki></pre> === Esperanto === <pre><nowiki> */ seccion("Esperanto"); caracteres("Ĉ Äœ Ĥ Ä´ Åœ Ŭ"); p(); caracteres("Äâ ĝ Ä¥ ĵ ŝ Å"); /* </nowiki></pre> === Estonio === <pre><nowiki> */ seccion("Estonio"); caracteres("ÄŒ ŠŽ Õ Ä Ö Ãœ"); p(); caracteres("č Å¡ ž õ ä ö ú"); /* </nowiki></pre> === Francés === <pre><nowiki> */ seccion("Francés"); caracteres("Ãc Â Ç Ãâ È Ê Ë ÃŽ Ï Ô Å’ Ù Û Ãœ Ÿ"); p(); caracteres("à â ç é è ê ë î ï ô Å“ ù û ú ÿ"); /* </nowiki></pre> === Galés === <pre><nowiki> */ seccion("Galés"); caracteres("Á Ãà Â Ä Ãâ È Ê Ë ÃŒ ÃŽ Ï Ó Ã’ Ô Ö Ù Û Ẻ Å´ Ẅ Ý Ỳ Ŷ Ÿ"); p(); caracteres("á à â ä é è ê ë ì î ï ó ò ô ö ù û ẁ ŵ ẅ ý ỳ Å· ÿ");
  • 7. /* </nowiki></pre> === Griego === <pre><nowiki> */ seccion("Griego"); caracteres("Α Ά Î’ Γ Δ Ε Έ Ζ Η Îâ Θ Ι Ί Κ Λ Îœ Ν Ξ Ο ÎŒ ΠΡ Σ Τ Î¥ ÎŽ Φ Χ Ψ Ω Ώ"); p(); caracteres("α ά β γ δ ε Πζ η ή θ ι ί κ λ κ ν ξ ο ÏŒ ÏÄ Ï σ Ï„ Ï… ύ φ χ ψ Ïâ ÏŽ"); /* </nowiki></pre> === Hawaiano === <pre><nowiki> */ seccion("Hawaiano"); caracteres("Äi Ä’ Ī ÅŒ Ū"); p(); caracteres("ā Ä“ Ä« ō Å«"); p(); caracteres(" »"); /* </nowiki></pre> === Hebreo === <pre><nowiki> */ seccion("Hebreo"); caracteres("א ב ×’ ד ×” ו ×– ×— ט ×™ ×› ך ל מ ם × ×Ÿ ס ×¢ פ ×£ צ ×¥ ק ר ש ת Ö¾ ×´ ׳"); /* </nowiki></pre> === Húngaro === <pre><nowiki> */ seccion("Húngaro"); caracteres("Á Ãâ Í Ó Ö Ő Ú Ãœ Å°"); p(); caracteres("á é à ó ö Å‘ ú ú ű"); /* </nowiki></pre> === Inglés antiguo === <pre><nowiki> */ seccion("Inglés antiguo"); caracteres("Äà Æ Ç¢ Ǻ ÄŠ Ð Ä’ Ä Äª ÅŒ Ū Ç· Ȳ Þ Èœ"); p(); caracteres("ā æ Ç£ ǽ Ä‹ ð Ä“ Ä¡ Ä« ō Å« Æ¿ ȳ þ ȝ"); /* </nowiki></pre> === Islandés === <pre><nowiki> */ seccion("Islandés"); caracteres("Á Ð Ãâ Í Ó Ú Ý Þ Æ Ö"); p(); caracteres("á ð é à ó ú ý þ æ ö"); /* </nowiki></pre>
  • 8. === Italiano === <pre><nowiki> */ seccion("Italiano"); caracteres("Á Ãà Ãâ È Í ÃŒ Ó Ã’ Ú Ù"); p(); caracteres("á à é è à ì ó ò ú ù"); /* </nowiki></pre> === Japonés === <pre><nowiki> */ seccion("Japonés"); caracteres("Än Ä’ Ī ÅŒ Ū"); p(); caracteres("ā Ä“ Ä« ō Å«"); p(); caracteres("あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ だの は ひ ふ へ ほ ま み ã‚· め ã‚‚ ã‚„ ゆ よ ã‚â ã‚Š ã‚‹ ã‚Œ ろ わ ゐ ã‚‘ ã‚’ ぁ ぃ ぅ ぇ ãâ ゃ ã‚… ょ っ"); p(); caracteres("ã‚¢ イ ウ エ オ ã‚« ゠ク ケ コ サ ã‚· ス ã‚» ソ ã‚¿ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ムメ モ ヤ ユ ヨ ラ リ ル レ ムワ ヰ ヱ ヲ ã‚¡ ã‚£ ã‚¥ ェ ã‚© ャ ュ ョ ッ ヺ"); /* </nowiki></pre> === Letón === <pre><nowiki> */ seccion("Letón"); caracteres("ij ÄŒ Ä’ Ä¢ Ī Ķ Ä» Å… ŠŪ Ž"); p(); caracteres("ā č Ä“ Ä£ Ä« Ä· ĺ ņ Å¡ Å« ž"); /* </nowiki></pre> === Lituano === <pre><nowiki> */ seccion("Lituano"); caracteres("Ä„ ÄŒ Ę Ä– Ä® ŠŲ Ū Ž"); p(); caracteres("Ä… č Ä™ Ä— į Å¡ ų Å« ž"); /* </nowiki></pre> === Maltés === <pre><nowiki> */ seccion("Maltés"); caracteres("ÄŠ Ä Ä¦ Å»"); p(); caracteres("Ä‹ Ä¡ ħ ź"); /* </nowiki></pre> === Pinyin === <pre><nowiki> */ seccion("Pinyin"); caracteres("Á Ãà Ǎ ÄÄ Ãâ È Äš Ä’ Í ÃŒ Ǐ Ī Ãà Ò Ç‘ ÅŒ Ú Ù Ãœ Ç““ Ū Ç— Ç› Ç™ Ç•"); p(); caracteres("á à ǎ ā é è Ä› Ä“ à ì ǐ Ä« ó ò Ç’ ō ú ù ú Ç” Å« ǘ Çœ Çš Ç–");
  • 9. /* </nowiki></pre> === Polaco === <pre><nowiki> */ seccion("Polaco"); caracteres("Ä„ Ć Ę Ł Ń Ó Åš Ź Å»"); p(); caracteres("Ä… ć Ä™ Å‚ Å„ ó Å› ź ź"); /* </nowiki></pre> === Portugués === <pre><nowiki> */ seccion("Portugués"); caracteres("Á Ãà Â Ã Ç Ãâ Ê Í Ó Ô Õ Ú Ãœ"); p(); caracteres("á à â ã ç é ê à ó ô õ ú ú"); /* </nowiki></pre> === Rumano === <pre><nowiki> */ seccion("Rumano"); caracteres("Ä‚  Î Åž Å¢"); p(); caracteres("ă â î ÅŸ Å£"); /* </nowiki></pre> === Serbio === <pre><nowiki> */ seccion("Serbio"); caracteres("А Б Ð’ Г Д Ђ Е Ж З И Ј К Л Ðâ Ðœ Н Њ О П РС Т Ћ У Ф Ð¥ Ц Ч Џ Ш"); p(); caracteres("а б в г д Ñ’ е ж з и ј к л Ñ™ к н Ñš о п ÑÇ Ñ Ñ‚ Ñ› у Ñ„ Ñ… ц ч ÑŸ ш"); /* </nowiki></pre> === Turco === <pre><nowiki> */ seccion("Turco"); caracteres("Ç Äž I Ä° Åž"); p(); caracteres("ç ÄŸ ı i ÅŸ"); /* </nowiki></pre> === Vietnamita === <pre><nowiki> */ seccion("Vietnamita"); caracteres("Ãn Ả Á Ạà Ă Ằ Ẳ Ẵ Ắ Ặ  Ầ Ẩ Ẫ Ấ Ậ Đ È Ẻ Ẻ Ãâ Ẹ Ê á»» Ể Ễ Ế Ệ Ỉ Ĩ Í Ị ÃŒ Ỏ Ó Ọ Ã’ Õ Ô á»’ á»” á»– Ố Ộ Æ á»œ Ở ỠỚ Ợ Ù Ủ Ũ Ú Ụ Ư Ừ Ử á»® Ứ á»° Ỳ Ỷ Ỹ á»´ Ý"); p(); caracteres("à ả á ạ ã ă ằ ẳ ẵ ắ ặ â ầ ẩ ẫ ấ Ạđ è ẻ
  • 10. ẽ é ẹ ê ề ể á»… ế ệ á»â Ä© à ị ì ỏ ó ọ ò õ ô ồ ổ á»— ố á»™ Æ¡ ờ ở ỡ á»› ợ ù ủ Å© ú ụ Æ° ừ Ỡữ ứ á»± ỳ á»· ỹ ỵ ý"); /* </nowiki></pre> === YÃdish === <pre><nowiki> */ seccion("YÃdish"); caracteres("א אַ אָ ב בֿ ×’ ד ×” ו וֺ ×° ×± ×– זש ×— ט ×™ ×™Ö´ ײ ײַ ×› ך ×›Öº ל ל+ מ ם × ×Ÿ ס ×¢ ×¢+ פ פֺ פֿ ×£ צ ×¥ ק ר ש שׂ תֺ ת ׳ ×´ Ö¾"); /* </nowiki></pre> == 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ú. <pre><nowiki> */ arr[arr.length] = "</p>"; menu[menu.length] = "</select> &nbsp; "; hito("F GeneraCaracteresEspeciales"); return menu.concat(arr); } 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"); } function CambiaCaracteresEspecialesVisibles(n) { var select = document.getElementById("elSelectQueCambia"); 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'; } } function MenuDeCaracteresEspecialesWrp() { if (wgAction == "edit" || wgAction == "submit" && (typeof(quieroEditToolsSimple) == "undefined" || !quieroEditToolsSimple))