Las plantillas son una característica muy poderosa de MediaWiki , pero incluso los usuarios experimentados pueden cometer errores fácilmente. Por lo tanto, para evitar errores, las plantillas complejas requieren un caso de prueba como subpágina para probar el entorno limitado de creación de prototipos y la llamada a su prototipo .

Plantillas para las que este método es adecuado

Las plantillas se llaman en muchas páginas, y si comete un error al editar una plantilla, el efecto será excelente. Por lo tanto, es una buena idea probar en la zona de pruebas antes de realizar cambios importantes. Asegúrese de probar una plantilla que se llame en una gran cantidad de páginas antes de editarla.

Las plantillas que usan declaraciones condicionales en particular pueden tomar muchos argumentos y producir una gran variedad de resultados con muchas ramas del operador #switch . Es difícil ver si una plantilla de este tipo está bien solo con vistas previas o sandboxes, por lo que es una buena idea probar diferentes patrones de salida en sus casos de prueba. Además, estos casos de prueba también son útiles como una lista de ejemplos de visualización.

Por el contrario, se puede decir que la ventaja de usar el caso de prueba es pequeña si la plantilla de navegación, que es una lista de enlaces a elementos relacionados, no recibe parámetros y se muestra la misma pantalla en cualquier destinatario.

Además, pueden ocurrir problemas de visualización según la estructura de la página en la que se llamó a la plantilla. Para evitar esto, puede navegar y verificar la plantilla creada en el sandbox en varios entornos, o probar el resultado que se muestra con otras plantillas, tablas, imágenes, etc. en el caso de prueba.

Cómo hacer subpáginas de sandbox y casos de prueba

hacer una subpagina

Si la plantilla se llama Template: X , el sandbox se llamará Template: X / sandbox y los casos de prueba se llamarán Template: X / testcases .

Si se usa {{ Documentación }} en la descripción de la plantilla, hay un enlace rojo a cada subpágina, desde el cual puede crear una subpágina. Si ya tiene subpáginas con este nombre, puede vincularlas usando {{Documentación}}. Si no se utiliza {{Documentación}}, utilícelo de nuevo o cree su propio enlace a la subpágina.

Duplicar el código en el sandbox

Duplica el código en el sandbox. En ese momento, es necesario cumplir con las diversas condiciones de la GFDL, como la necesidad de heredar la historia. en breve,

  1. Duplique toda la parte no encerrada en <noinclude> de Plantilla: X al final de Plantilla: X / sandbox . En la columna de resumen, escriba "Parcialmente duplicado de xx: xx (UTC) en xx, xx, xx, xx, xx, [[Plantilla: X]] " y publíquelo una vez.
  2. Inserte el siguiente código al principio de la primera línea. Puede haber líneas en blanco entre <noinclude> y </ noinclude>, pero no coloque líneas o espacios en blanco después de </ noinclude>.
    <noinclude> {{Template sandbox Notice}} </ noinclude> <!-Código duplicado aquí->
    Si es necesario, realice otras ediciones antes de publicar [1] .

El motivo de publicar en dos partes, 1. y 2., es distinguir claramente entre el trabajo de duplicación y el trabajo de edición. Consulte también Wikipedia: División y consolidación de páginas # Procedimientos de publicación parcial para obtener instrucciones paso a paso .

Hacer un caso de prueba

Cree algunos ejemplos de llamadas ( {{X | ....}} ) en Plantilla: X / testcases . Cópialo si está en la descripción de la plantilla. Luego duplica cada ejemplo en dos más. También reemplace X con X/sandbox para uno de cada ejemplo . Ahora puede comparar la visualización de la plantilla original con la visualización de la nueva plantilla una por una. Finalmente, agregue {{ Aviso de casos de prueba de plantilla }} en la parte superior de la página de casos de prueba. Puede poner una línea en blanco alrededor.

Al final, Plantilla: X / casos de prueba debería verse así:

{{Aviso de casos de prueba de plantilla}}

{{X | ....}}
{{X / caja de arena | ....}}

Cómo usar sandbox y caso de prueba

Primero, edite el sandbox en una nueva plantilla. A menos que tenga una nueva plantilla en la página de su bloc de notas, editor local, etc., o si desea crear algo completamente diferente de la plantilla existente, duplique la plantilla actual como lo haría al crear un espacio aislado y luego hágalo . eso.

Luego vea el caso de prueba para ver si la nueva plantilla se llama correctamente. Para comparar la nueva salida con la salida original, use un navegador de pestañas para ver la subpágina del caso de prueba antes de cambiar la zona de pruebas, así como también cómo comparar lo que se muestra en el caso de prueba a la vez. casos antes y después del cambio mostrándolo en otra pestaña después de cambiar la zona de pruebas.

Si la plantilla de sandbox funciona bien para todos los casos de prueba, reemplace la plantilla real con la de sandbox. También en este caso, es necesario cumplir con las diversas condiciones de la GFDL, como la necesidad de heredar la historia. Siga el mismo procedimiento que al duplicar el código en el #sandbox.

Cómo escribir código para sandbox

La caja de arena y la página del cuerpo de la plantilla con frecuencia duplicarán el código. Por lo tanto, agregar {{Aviso de la zona de pruebas de plantilla}} cada vez que duplique en la zona de pruebas y eliminar {{Aviso de la zona de pruebas de plantilla}} cada vez que duplique en la plantilla en sí puede parecer un poco complicado.

En este sentido, si la página del cuerpo de la plantilla se hace compatible con el sandbox de antemano, no se producirán problemas.

A menos que el nombre de la subpágina pegada sea "sandbox", {{ Template sandbox Notice }} no generará nada a menos que se especifique algún argumento, por lo que se mostrará lo siguiente en la página del cuerpo de la plantilla del cuerpo principal. Si lo escribe, incluso si duplica el código del cuerpo de la plantilla y el código completo del sandbox entre sí, el mensaje se mostrará solo en el sandbox:

<sin incluir>
{{Plantilla de aviso de zona de pruebas}}
</ noinclude> <!-Código del cuerpo de la plantilla->

Además, (1) si desea emitir un aviso en la página del cuerpo de la plantilla y no desea mostrarlo en el espacio aislado, (2) si desea emitir un anuncio de espacio aislado y no desea mostrarlo en el cuerpo de la plantilla página, o (3) Si desea usar la página del cuerpo de la plantilla y el anuncio de la zona de pruebas correctamente, puede usar el siguiente código [2] [3] :

<sin incluir>
{{
  #ifeq: {{NOMBRE DE LA SUBPÁGINA}} | sandbox
  | <!-Anuncio en la zona de pruebas-> {{Plantilla de notificación de la zona de pruebas}}
  | <!-Anuncios que no sean sandboxes: {{protección}}, {{plantillas complejas}}, etc.->
}}
</ noinclude> <!-Código del cuerpo de la plantilla->

Sin embargo, se puede lograr la misma página de cuerpo de plantilla y uso de espacio aislado con el siguiente código usando el argumento {{ Aviso de espacio aislado de plantilla }}:

<sin incluir>
{{
  Aviso de sandbox de plantilla
  | aviso-para-sandbox = <!-Anuncio en el sandbox->
  |notice-not-sandbox = <!-Avisos emitidos fuera del sandbox: {{protección}}, {{plantilla compleja}}, etc.->
}}
</ noinclude> <!-Código del cuerpo de la plantilla->

Además, cuando los vínculos y categorías interlingüísticos (p. ej., Categoría: plantilla de Wikipedia ) aplicados al cuerpo de la plantilla se escriben en la subpágina (Plantilla: X / doc) <includeonly> </ includeonly> sintaxis del documento de descripción de la plantilla. [3 ] Si solo duplica el código en la zona de pruebas, los mismos enlaces y categorías interlingüísticos también se aplicarán a las páginas de la zona de pruebas. Pero no escribas código como este :

<sin incluir>
{{
  #ifeq: {{NOMBRE DE LA SUBPÁGINA}} | sandbox
  |
  | {{Documentación}}
}}
</noinclude>

Si lo escribe de esta manera, los enlaces de edición de la sección en el documento cargado por {{ Documentation }} no funcionarán [4] . En su lugar, puede solucionarlo utilizando la siguiente declaración condicional en el documento de descripción de la plantilla, así que considérelo:

<incluir solo>
{{
  #ifeq: {{NOMBRE DE LA SUBPÁGINA}} | sandbox
  |
  |
<!-Escriba aquí los enlaces entre idiomas y las categorías que se aplican al cuerpo de la plantilla. ->
}}
</ incluir solo>

Cómo escribir código para casos de prueba

En la sección anterior, mencionamos las categorías que se aplican a la plantilla en sí, pero algunas plantillas aplican ciertas categorías (por ejemplo, Categoría: stubs ) a la página en la que se pega la plantilla . Si utiliza una plantilla de este tipo para un caso de prueba, el caso de prueba también se incluirá en esa categoría.

Para evitar esto, puede escribir la categoría que se aplica a la página donde pegó la plantilla con un código como el siguiente en la plantilla:

<incluir solo> {{
  #ifeq: {{ESPACIO DE NOMBRES}} | {{ns: 0}}
  | <!-Escribe aquí la categoría que aplica a la página donde pegaste la plantilla->
}} </ incluir solo>

Este código solo incluirá la página en la categoría cuando se pegue en una página en el espacio de nombres estándar (es decir, un artículo normal). Este código también tiene el efecto de no incluir la página en la categoría cuando la plantilla se usa fuera del espacio de nombres estándar, como cuando se describe una plantilla en la página de un cuaderno. Para plantillas para usar en páginas de cuadernos, reemplace la parte {{ns: 0}} con una palabra mágica apropiada .

Por el contrario, si desea usar cualquier espacio de nombres, es decir, si desea incluir la página pegada en cualquier espacio de nombres, pero aún así identificar y evitar aplicar la categoría solo en casos de prueba, puede usar código como:

<incluir solo> {{
  #ifeq: {{NOMBRE DE LA SUBPÁGINA}} | caso de prueba
  |
  | <!-Escribe aquí la categoría que aplica a la página donde pegaste la plantilla->
}} </ incluir solo>
<incluir solo> {{
  #ifeq: {{FULLPAGENAME}} | {{ns: 10}}: X / caso de prueba
  |
  | <!-Escribe aquí la categoría que aplica a la página donde pegaste la plantilla->
}} </ incluir solo>

Por supuesto, hay otras formas de hacerlo, y puede usar argumentos y declaraciones condicionales más complejas para obtener un comportamiento más avanzado.

Ilustración

nota

  1. ^ Si hay una tabla al comienzo de la plantilla, es posible que no se muestre correctamente. En ese caso, ingrese un salto de línea antes de </ noinclude>.
  2. ^ Si hay una descripción de la plantilla (Plantilla: X / doc), es más conveniente escribir el anuncio del cuerpo de la plantilla en la subpágina de descripción utilizando la sintaxis <includeonly> </ includeonly>.
  3. ^ a b El método de escribir lo que se aplica al cuerpo de la plantilla utilizando la sintaxis <includeonly> </ includeonly> en la subpágina descriptiva se aplica al cuerpo de la plantilla si la edición de la plantilla está protegida. Esto tiene el efecto de permitirle cambiar inter- enlaces de idiomas y categorías.
  4. ^ La causa es que el documento llamado está en la declaración condicional. Consulte Ayuda: Sección # Secciones en declaraciones condicionales para obtener más información.

Artículo relacionado