Ir al contenido

Módulo:Zona de pruebas/Eloy/Ficha fácil/doc

De Wikipedia, la enciclopedia libre

Descripción

Este módulo intenta ofrecer una alternativa más versátil y legible a Ficha. Está en prueba, por lo que está completamente sujeta a cambios.

Características

  • No hace falta renombrar otros campos, cuando se hace una modificación a la estructura (agregar, quitar o cambiar de lugar campos). Esto sí sucede con {{Ficha}}, donde si se agrega un campo hay que cambiar la numeración de los subsiguientes.
  • Fácil de reestructurar. Se indica directamente el orden de los campos que incluye cada sección.
  • Nombres internos fáciles. En lugar de usar una numeración para hacer referencia a cada campo, se usa un nombre a elección del usuario.
  • Autocarga de parámetros: Si el nombre interno del campo es el mismo que el parámetro, permite la carga automática cuando no se especifique un valor.
  • Infinitos campos similares: Permite la expansión de una regla mediante expresiones regulares. De esta manera se especifica una sola vez el comportamiento que pueden adquirir campos con nombres similares.
  • Estilos fácil: Además de poder indicar las clases y estilos a cada nombre y valor de campo, se puede crear clases para reusar dentro de la ficha.

Uso

El módulo comienza cargando los campos indicados en :hijos; y en cada campo que funcione como sección, tiene su propio parámetro <*>:hijos para incluir campos adentro. El orden en el que se indican los hijos determina el orden en el que se muestran; pero el orden de los parámetros no afecta al comportamiento, por lo que puede incorporarse de la forma que sea más legible.

Campos

Los posibles valores para cada campo son:

  • campo:clase: Clases de la o las filas del campo.
  • campo:def: Valor y comportamiento por defecto si el valor indicado está vacío.
    • Puede cargar una propiedad desde Wikidata, incluso puede concatenar las consultas (por ejemplo, P2P1 significa la propiedad 1 del valor de la propiedad 2 del objeto actual).
    • Puede incorporar {{{parámetros|}}}
  • campo:enlazar: Si es 1 y hay un nombre, pero no contiene enlaces, le añade corchetes.
  • campo:estilo: Estilo de la o las filas del campo.
  • campo:mostrar: Indica si el campo se muestra..
    • 0: Se oculta siempre.
    • 1: (por defecto) Se oculta si el texto está vacío.
    • 2: Se muestra siempre. Si está vacío podría mostrar opciones para completarlo más fácilmente.
  • campo:nombrar: Según sus valores, puede añadir un texto (antes de procesar :enlazar) cuando no se haya indicado ninguno.
    • 0: Sin nombre por defecto.
    • 1: Usa el nombre interno del campo, sin modificaciones.
    • 2: Usa el nombre interno del campo, con mayúscula inicial.
  • campo:nombre: Indica el texto a mostrar como nombre del campo (salvo título y subtítulo) o el pie de imagen (en caso de ser una). Su comportamiento depende también de las opciones vigentes en ese momento.
  • campo:nombre:clase: Clases de la celda que muestra el nombre.
  • campo:nombre:estilo: Estilo de la celda que muestra el nombre.
  • campo:tipo: Indica el tipo de campo:
    • campo: Es el campo normal, que tiene el nombre en una columna (mediante TH) y el valor en la otra (TD).
    • largo: Es un campo para textos más largos, que tiene el nombre en una fila, y el valor en la inferior.
    • título: Especial para títulos de fichas.
    • subtítulo: Permite la inclusión de subtítulo a la ficha.
    • imagen: Muestra una imagen tomando el nombre de archivo indicado en el valor, y el nombre del campo como pie de imagen. Si la imagen no existe, se comporta como "largo" (salvo que sea indicado otro comportamiento):
      • imagen ocultar: Si la imagen no existe, se oculta el campo.
      • imagen campo: Si la imagen no existe, se muestra como "campo".
      • imagen título: Si la imagen no existe, se muestra como "título". Es útil para permitir el uso de imágenes en lugar de texto en el título.
      • sección: Se comporta como una sección.
  • campo:prefijo: Texto que se añade antes del valor, si es que se indicó alguno.
  • campo:sufijo: Texto que se añade después del valor, si es que se indicó alguno.
  • campo:valor: Indica el valor del campo. Si no se indica puede intentar completarlo según distintas opciones. Si así y todo no hay valor, el campo es ocultado (depende de opciones).
  • campo:valor:clase: Clases de la celda que muestra el valor.
  • campo:valor:estilo: Estilo de la celda que muestra el valor.

Secciones

Las secciones, además de poder tener las opciones anteriores, también tienen campos hijos y opciones por defecto para aquéllos. De hecho, el procesamiento de la ficha comienza desde la sección raíz, que es la que no tiene nombre interno. Las opciones adicionales son las siguientes:

  • sección:hijos: Una lista separada por comas de los campos hijos. También se permiten expresiones regulares, en ese caso se tomaran como hijos todos los campos que la acepten.
  • 'sección:hijos:opción: Indica el valor por defecto (para sus hijos) para la opción indicada.

Ejemplos

Código Resultado
Uso
{{…
|subtítulo=Sal, colorante coloidal
|UNII=3U05FHG59S
|IUPAC=3,3'-([1,1'-bifenil]-4,4'-diil)bis(4-aminonaftaleno-1-sulfonato) disódico
}}
Rojo Congo
Sal, colorante coloidal
IUPAC3,3'-([1,1'-bifenil]-4,4'-diil)bis(4-aminonaftaleno-1-sulfonato) disódico
CAS573-58-0
ChemSpider10838
UNII3U05FHG59S
Rojo Congo
Sal, colorante coloidal
IUPAC3,3'-([1,1'-bifenil]-4,4'-diil)bis(4-aminonaftaleno-1-sulfonato) disódico
CAS573-58-0
ChemSpider10838
UNII3U05FHG59S
Rojo Congo
Sal, colorante coloidal
Nombre (IUPAC) sistemático
3,3'-([1,1'-bifenil]-4,4'-diil)bis(4-aminonaftaleno-1-sulfonato) disódico
Identificadores
CAS573-58-0
ChemSpider10838
UNII3U05FHG59S

Hoja de ruta de desarrollo

  1. dameNombre(): Usa el valor de regla si está disponible, y sino nombre.
  2. dameNombre(): obtener texto directo o nada.
  3. dameValor(): obtener texto directo o nada.
  4. dameTipo(): obtener texto directo o nada.
  5. popOpc(): Tirar de la pila.
  6. pushOpc(): obtener texto directo o nada, no procesar.
  7. pushOpc(): Empujar la pila.
  8. pushOpc(): Procesar texto a opciones.
  9. procCampo(): Obtener opciones para hijos.
  10. procCampo(): Obtener tipo como texto directo o nada.
  11. procCampo(): Si tipo no indicado, usa opciones.
  12. procCampo(): Si tipo desconocido, produce error.
  13. procCampo(): Agregar nodo según tipo "sección", "campo", "largo", "título" y "subtítulo".
  14. procCampo(): Si valor es vacío, no agregar.
  15. procCampo(): Si valor es vacío, comportarse según :mostrar.
  16. procCampo(): Agregar nodo según tipo "imagen" (sin demás opciones).
  17. procCampo(): Si tipo imagen, comprueba que imagen exista (en cuyo caso convierte en imagen), o reprocesa según variable "img_def".
  18. procCampo(): Toma img_def del tipo, o de las opciones heredadas.
  19. dameNombre(): Si es vacío, comprueba (no hace nada) opción :nombrar del elemento, y sino en opciones heredadas.
  20. dameNombre(): Al comprobar :nombrar, modifica comportamiento.
  21. dameNombre(): Si no tiene enlaces, comprueba opción :enlazar del elemento, y sino en opciones heredadas.
  22. dameValor(): Si es vacío, comprueba opción :def del elemento, y sino en opciones heredadas.
  23. dameValor(): Si no es vacío, añade :sufijo.
  24. dameValor(): Si no es vacío, añade :prefijo.
  25. dameHijos(): Obtiene texto directo o nada.
  26. dameHijos(): Crea tabla con elementos separados por coma, y elimina espacios al comienza y fin de cada uno (trim). A cada elemento le asigna el valor regla con su mismo nombre.
  27. procCampo(): Llamar a procCampo() con el nombre de cada hijo de dameHijos(), y el elemento para que se agreguen.
  28. procCampo(): Si es imagen y hay nombre, lo añade como descripción de la imagen.
  29. procCampo(): Si es imagen, comprueba opción :tamaño, o busca en opciones heredadas.
  30. dameClases(): Obtiene el texto directo de :clases o nada.
  31. dameEstilos():Obtiene el texto directo de :estilos o nada.
  32. dameClases(): Convierte texto en tabla.
  33. dameEstilo(): Convierte texto en tabla.
  34. dameAtributos(): Pega dameClases() y dameEstilos() para devolver los atributos en forma de texto HTML (class="…" style="…").
  35. dameAtributos(): Por cada clase de cl=dameClases() busca en local clases, si la encuentra la elimina de cl.
  36. dameAtributos(): Antes de eliminar la clase de cl, agrega su texto en clases a variable local e_cl. Luego agrega e_cl al comienzo de estilo.
  37. procCampo(): Añade llaves como :clase:nombre=valor en variable local clases
  38. dameHijos(): Comprueba por cada elemento si es expresión regular.
  39. dameHijos(): Si es expresión regular, añade todos los parámetros que concuerden, pero en regla mantiene la expresión regular.
  40. Hacer Test cases.
  41. Incluir datos de WikiData.
  42. Hacer tutorial.
  43. Crear plantilla {{Ficha de compuesto químico/zona de pruebas}} para probar.