User:Remember the dot/Syntax highlighter/es

He creado un script que hace que la sintaxis resalte coloridamente en la caja de edición. A diferencia de otros scripts de resalto de sintaxis como wikEd, AceWikiEditor y CodeMirror, este:

  • Actualiza el resalto automáticamente mientras tecleas.
  • No estropea los botones Deshacer y Rehacer.
  • No estropea el corrector ortográfico.
  • Es compatible con la mayoría de scripts que afecten la caja de edición.

Instalación

edit

Asegúrate de leer la sección "Problemas conocidos" abajo antes de instalar el script.

Para el usuario si está instalado en la wiki

edit

Si el resaltador de sintaxis está disponible como accesorio en tu wiki, ve a tus preferencias y habilítalo.

Para el usuario si no está instalado en la wiki

edit

Si instalación como accesorio no está disponible, añade estas líneas a tu página de common.js:

//resalto de sintaxis
mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

Por ejemplo, si la Wikipedia en español no proveyera el resaltador de sintaxis como accesorio, lo añadirías a

https://es.wikipedia.org/wiki/Usuario:Tu_Nombre_de_Usuario/common.js

Para administradores de sitios de Wikimedia

edit

En tu wiki, crea la página MediaWiki:Gadget-DotsSyntaxHighlighter.js‎ con el código

mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

Entonces añade a la página MediaWiki:Gadgets-definition‎ una nueva línea

*DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js

y crea la página MediaWiki:Gadget-DotsSyntaxHighlighter‎ con el texto

[[mw:User:Remember the dot/Syntax highlighter/es|Resalto de sintaxis]]: Hace que la sintaxis resalte coloridamente en la caja de edición.

Para administradores de sitios no de Wikimedia

edit

En tu wiki, crea la página MediaWiki:Gadget-DotsSyntaxHighlighter.js‎ y copia a ella el código fuente de User:Remember the dot/Syntax highlighter.js. Entonces añade a la página MediaWiki:Gadgets-definition‎ una nueva línea

*DotsSyntaxHighlighter[ResourceLoader]|DotsSyntaxHighlighter.js

y crea la página MediaWiki:Gadget-DotsSyntaxHighlighter‎ con el texto

[https://www.mediawiki.org/wiki/User:Remember_the_dot/Syntax_highlighter/es Resalto de sintaxis]: Hace que la sintaxis resalte coloridamente en la caja de edición.

Se requiere MediaWiki 1.22 o más nuevo.

Problemas conocidos

edit

Compatibilidad

edit
  1. El resaltador funciona mejor en la versión actual de Firefox.
  2. El resaltador funciona casi siempre en las versiones actuales de Chrome, Microsoft Edge, Safari y Opera, pero no funciona correctamente con texto en ciertos alfabetos, notablemente tailandés y tibetano.
  3. El resaltador no funciona en Internet Explorer (sus fallos son demasiado graves). El resaltador ni intenta ejecutar si se detecta uno de estos navegadores web.
  4. El resaltador no es compatible con algunos accesorios, extensiones de navegador y otras personalizaciones.

Sintaxis

edit
  1. Por motivos de rendimiento, el resaltador exige que todas las etiquetas sean etiquetas XML válidas. Por ejemplo, asegúrate que si empiezas una etiqueta <p> la termines con </p>, y usa <br/> en vez de <br>.
  2. Por motivos de rendimiento, el resaltador no puede manejar '''apóstrofo cursiva'' o ''cursiva apóstrofo'''; los considera sintáxis inválida. Sugiero usar '<i>apóstrofo cursiva</i> y <i>cursiva apóstrofo'</i> en su lugar.
  3. Una etiqueta <pre> creada por colocar un espacio al principio de una línea no se resaltará. Esto se debe a que el resaltador no es bastante inteligente para saber si el espacio cuenta como espacio blanco dentro de una plantilla o no.
  4. Opciones de comportamiento como __NOTOC__ no se resaltan.
  5. Los enlaces externos creados con {{fullurl:}} o plantillas no se resaltan. Verás [{{fullurl:Mi página}} enlace externa] en vez de [{{fullurl:Mi página}} enlace externa].

Misceláneos

edit
  1. El resaltador no funciona rápidamente al editar artículos largos y se deshabilitará automáticamente si tarda más de 50ms. Si esto ocurre, un mensaje aparece que explica lo que pasó y sugiere cómo trabajar alrededor o augmentar el tiempo de espera.
  2. El resaltador no funciona al subir archivos.
  3. El resaltador puede anular tus estilos personales relacionados a la caja de edición.

Personalización

edit

Colores

edit

Es fácil cambiar los colores de resalto o hacer que no se resalten ciertos sintaxis. Se disponen las siguientes personalizaciones de color:

defaultColor para elementos sintácticos que no tienen color específico
boldOrItalicColor '''negrita''' ''cursiva''
wikilinkColor [[enlace wiki]]
externalLinkColor [http:// enlace externa nombrado], http://enlace-externa-desnuda.es
headingColor ==Encabezamiento==, ;Encabezamiento pequeño
listOrIndentColor * lista desordenada, # lista ordenada, : indentación
signatureColor ~~~~
tableColor {| tabla |}
templateColor {{plantilla}}
parameterColor {{{parámetro de plantilla}}}
hrColor ----
tagColor <etiqueta>...</etiqueta>, <etiqueta/>
commentColor <!-- comment -->
entityColor &entidad;

Por ejemplo, para hacer cian los enlaces wiki y anaranjados los enlaces externos, pon lo siguiente en tu common.js (si has instalado el resaltador como accesorio, omite las primeras dos líneas o tu navegador web se congelarà):

//resalto de sintaxis
mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

//configuración de resalto de sintaxis
syntaxHighlighterConfig = {
    externalLinkColor: "#FFCC66", //color de enlaces externos: anaranjado
    wikilinkColor: "#E6FFFF", //color de enlaces wiki: cian
}

Para no resaltar un sintaxis, haz su color "". Por ejemplo, para deshabilitar el resalto de enlaces externos:

//resalto de sintaxis
mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

//configuración de resalto de sintaxis
syntaxHighlighterConfig = {
    externalLinkColor: "", //color de enlaces externos: ninguno
}

Para no resaltar ninguna sintaxis aparte de los que explícitamente quieras, haz que defaultColor sea "" y especifica el color de cada sintaxis que quieras resaltado. Si solo quieres el color usual, pon "normal". Por ejemplo, para solo resaltar las etiquetas:

//resalto de sintaxis
mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

//configuración de resalto de sintaxis
syntaxHighlighterConfig = {
    defaultColor: "", //color por defecto: ninguno
    tagColor: "normal", //color de etiqueta: el usual
}

Tiempo de espera

edit

Puedes especificar un timeout que reemplace el tiempo de espera por defecto de 20ms. Por ejemplo, si no te molesta la lentitud al teclear y quieres deshabilitar el resalto de sintaxis solo si tarda más de 30ms, pon lo siguiente en tu common.js:

//resalto de sintaxis
mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

//configuración de resalto de sintaxis
syntaxHighlighterConfig = {
    timeout: 30,
}

Si has instalado el resaltador como accesorio, omite las primeras dos líneas o tu navegador web se congelarà.

Etiquetes no de wikitexto

edit

Varias etiquetas, como <math> i <source>, no usan wikitexto y, por tanto, no se resalta ninguna sintaxis dentro de estas etiquetas. Puedes personalizar la lista de etiquetas como source por establir sourceTags a un vector de nombres de etiquetas. Por ejemplo, para deshabilitar el resalto de sintaxis dentro de la etiqueta hipotética <foo> además de las por defecto, pon lo siguiente en tu common.js:

//resalto de sintaxis
mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

syntaxHighlighterConfig = {
    sourceTags: ["math", "syntaxhighlight", "source", "timeline", "hiero", "foo"],
}

Otras etiquetas, como <pre> y <nowiki>, no usan wikitexto pero sí procesan entidades de carácter (&nbsp; por ejemplo). La propiedad nowikiTags controla la lista de etiquetas como nowiki. Por ejemplo, para resaltar solo las entidades de carácter dentro de la etiqueta <abbr>, pon lo siguiente en tu common.js:

//resalto de sintaxis
mw.loader.load('//www.mediawiki.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&action=raw&ctype=text/javascript');

syntaxHighlighterConfig = {
    nowikiTags: ["nowiki", "pre", "abbr"],
}

En ambos ejemplos, has instalado el resaltador como accesorio, omite las primeras dos líneas o tu navegador web se congelarà.

Valores por defecto del sitio

edit

Todas las propiedades que se pueden especificar en la variable syntaxHighlighterConfig también se pueden especificar en la variable syntaxHighlighterSiteConfig. syntaxHighlighterSiteConfig es para los valores por defecto del sitio y syntaxHighlighterConfig para las preferéncias del usuario. Las propiedades de syntaxHighlighterConfig prevalecen sobre las propiedades de syntaxHighlighterSiteConfig, y las propiedades de syntaxHighlighterSiteConfig prevalecen sobre los valores por defecto internos.

Por ejemplo, si tu sitio no tiene instalada ninguna extensión de MediaWiki, tal vez quieres quitar el soporte para etiquetas como source. Para hacer eso, añade lo siguiente al final de MediaWiki:Gadget-DotsSyntaxHighlighter‎:

syntaxHighlighterSiteConfig = {
    sourceTags: [],
}

Reportación de errores

edit
Nota: Acuérdate de comprobar si el error que quieres reportar ya es un problema conocido.

Al reportarme un error, por favor incluye:

Más información

edit

Para más información, incluso cómo obtener el código fuente y un resumo del método del script, véase User:Remember the dot/Syntax highlighter.