source open medi mediawiki mediawiki-templates

mediawiki - medi - wiki open source



Pasar un signo igual(''='') a un parĂ¡metro en una plantilla de MediaWiki (4)

¿Cómo puedo usar un carácter ''='' en un parámetro de plantilla sin romper el analizador de plantillas? No soy un desarrollador de MediaWIKI, así que no he depurado el código ni he revisado los registros. Espero que alguien aquí tenga una sugerencia para escapar de los caracteres que se pasan a las plantillas.

Crea una plantilla llamada "Prueba" con este contenido:

{{{1}}}

Me gusta esto:

{{ Test | R = 3/(2-(1+1)) }}

¡Se representará {{{1}}} en lugar de la fórmula compleja! He determinado que el carácter ''='' es el culpable.


Me sorprende que nadie haya mencionado esto, pero ¿qué hay de escapar del personaje?

Usando = trabajará. Si no puede molestarse en recordar el código, puede crear la plantilla Template:= con = como el único contenido (usar un no escapado = en esa plantilla solo causará el mismo problema de nuevo) y luego lo incluirá como {{=}}


Puede crear una plantilla {{=}} cuyo valor es = . Luego use esa plantilla en lugar del signo igual desnudo en sus plantillas, así:

{{ Test | R {{=}} 3/(2-(1+1)) }}


Si Extensión: Variables está habilitada, usa una variable. Las definiciones de variables conservan casi todos los símbolos, incluidos = y | , solo realizan expansiones de plantilla. Por lo tanto, es un enfoque razonablemente seguro cuando se trata de expresiones complejas y URL.

{{ #vardefine: myequation | R = 3/(2-(1+1)) }} {{ Test | {{ #var: myequation }} }}


Si una cadena de parámetros de la plantilla de MediaWiki contiene un signo igual, todo lo que precede al signo se toma como el nombre del parámetro. Si no contiene un signo igual, la cadena de parámetro se asigna al siguiente parámetro numérico disponible.

Por lo tanto, la solución más simple, si realmente desea que un valor de parámetro numerado contenga un signo igual, es numérelo explícitamente, de la siguiente manera:

{{ Test | 1 = R = 3/(2-(1+1)) }}

Esto hará que {{{1}}} dentro de la plantilla se expanda a la cadena R = 3/(2-(1+1)) , así como:

{{ Test | equation = R = 3/(2-(1+1)) }}

hará que {{{equation}}} expanda a esa misma cadena.