Index

download Index

If you can't read please download the document

Transcript of Index

/*== Insercin de caracteres especiales en la caja de edicin ==Aqu se definen las listas de caracteres especiales que aparecen bajo la caja de edicin. Anteriormente se definan en [[MediaWiki:Edittools]] y [[MediaWiki:Monobook.js]] les agregaba un men. Esto tena varias desventajas:* Los que no usaban ''monobook'' o no usaban javascript slo vean el primer recuadro. El resto quedaba oculto por el CSS, y no podan acceder a ellos ya que el men no les apareca.* A los que no usaban CSS les aparecan '''todos''' los recuadros bajo la caja de edicin. Varias pginas de caracteres especiales, la mayora redundantes o innecesarios.* El cdigo generado eran unos '''90 KB''' que se agregaba al HTML de todas las pginas de edicin, sin posibilidad de ''cachearlo'' a pesar de ser invariable.La solucin es dejar en [[MediaWiki:Edittools]] un conjunto mnimo de caracteres especiales indispensables y generar los distintos recuadros y el men directamente mediante javascript. Esto trae los siguiente beneficios:* La pgina queda aligerada para los que usen y los que no usen esta funcionalidad.* Los datos y el cdigo generador (este archivo) quedan en la ''cach'' del navegador del usuario.* Al usar una sintaxis distinta al 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 seccin (y entrada en el men).* texto("texto"); para insertar texto (separadores,
s, lo que sea).* p(); slo el equivalente a texto(" ");, para ahorrar tecleo.* caracter("texto a insertar", "title"); genera cdigo para insertar el texto. Con un signo + se marca dnde debe quedar el cursor tras la insercin. Se le puede poner (el segundo parmetro 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 : se separa el parmetro por los espacios y se genera cdigo para insertar cada una de las partes.

A continuacin se definen las funciones.

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

function GeneraCaracteresEspeciales(){ hito("C GeneraCaracteresEspeciales"); var arr = []; var menu = [""]; var escapeHTML = function(txt) { txt = txt.replace(/&/g, '&'); txt = txt.replace(//g, '>'); 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] = "" arr[arr.length] = ""; menu[menu.length] = "" + nombre + ""; }; 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] = "