Módulo discusión:taller
Casos de uso de la plantilla contexto
editarEn esta sección se trata de identificar los diferentes usos y particularidades de la plantilla {{contexto}}.
(1) Enumeración directa
editar
{{contexto|leng=XX|etiqueta1|nota=aaa|etiqueta2|nota2=bbb|...|etiquetaN|notaN=nnn}}
(2) Base de la plantillas de marcas de uso o ámbito
editarEjemplo: {{antiguo}}
Añaden categorías y permiten enumerar los sucesivos argumentos numéricos:
La enumeración directa se usa en el caso de los campos semánticos (p. ej. {{química}}).
{{etiqueta1|leng=XX|nota=aaa|etiqueta2|nota2=aaa|...|etiquetaN|notaN=nnn}}
(3) Enumeraciones con encabezado
editarEs el caso de las plantillas {{uso}} y {{ámbito}}.
{{uso|leng=XX|etiqueta1|nota=aaa|etiqueta2|nota2=bbb|..|etiquetaN|notaN=nnn}}
Uso del módulo Lua con la plantilla contexto
editarCaso 1
editarVer sección #Primera tentativa.
Caso 2
editarVer sección #Primera tentativa.
Caso 3
editarEsquema inicial:
:*'''Uso:''' <includeonly><!--
-->{{contexto|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}|{{{5|}}}|{{{6|}}}|{{{7|}}}|{{{8|}}}|{{{9|}}}|{{{10|}}}<!--
-->|leng={{{leng|}}}<!--
-->|nota={{{nota|{{{nota1|}}}}}}|nota2={{{nota2|}}}|nota3={{{nota3|}}}|nota4={{{nota4|}}}|nota5={{{nota5|}}}<!--
-->|nota6={{{nota6|}}}|nota7={{{nota7|}}}|nota8={{{nota8|}}}|nota9={{{nota9|}}}|nota10={{{nota10|}}}}}</includeonly>
Nuevo esquema:
:*'''Uso:''' {{#invoke:taller|listar}}
Reimplementación
editarPrimera tentativa
editarSe descarga a la plantilla {{contexto}} y sus clones de la tarea de enumerar etiquetas, que ahora será trabajo para el módulo Lua. Con el nuevo esquema sólo se necesitan {{contexto}} y {{contexto 1}}:
- El módulo Lua pasa en la expansión de plantillas el parámetro "sub=1", de modo que si la etiqueta se basa en "contexto", sea "contexto 1" quien se llame.
- La plantilla "contexto" muestra etiqueta y nota, e inserta categorías. En caso de poseer parámetros numéricos, enumera usando el módulo Lua.
- La plantilla "contexto 1" es similar a "contexto", pero en ningún caso es capaz de enumerar elementos.
Limitaciones
editar- Número de parámetros: al enumerar desde una plantilla (ej. {{Química|,|Física}}), la cantidad enumerada se limita a 9. De esta manera no es necesaria en primera instancia una modificación masiva de las plantillas de etiquetado. Si se llevara a cabo la modificación y se invocara la función del módulo directamente, se podría modificar éste para detectar la nueva situación por la existencia de un parámetro determinado.
- Coste de las operaciones: para cada elemento de la enumeración se comprueba la existencia de una plantilla con ese nombre, que puede plantear problemas con el contador de funciones costosas. En el uso práctico se puede considerar que todas las plantillas existen, tratar de expandir, y si el resultado de la expansión comienza por "{{{etiqueta", se da por supuesto que la plantilla no existe y se trata como texto plano.
Plantilla:contexto
editar
<noinclude>{{documentación de plantilla}}</noinclude><includeonly><!--
*** Si hay etiqueta, se muestra ***
*** en este caso la plantilla se usa como base para una plantilla de etiqueta:
etiqueta (nota)
-->{{#if:{{{etiqueta|}}}|<!--
-->{{#if:{{{sub|}}}|<!--
-->{{{etiqueta}}}|<!--
-->{{UCFIRST:{{{etiqueta}}}}}<!--
-->}}<!--
-->{{#if:{{{nota|}}}| ({{{nota}}})}}<!--
-->}}<!--
*** Si tiene un primer argumento, es una enumeración {{et1|et2|...}} ***
*** en este caso se está en una enumeración
-->{{#if:{{{sub|}}}|<!-- con sub no enumera -->|<!--
-->{{#if:{{{1|}}}|<!--
llama función lua con argumentos heredados, si función ve etiqueta, inicia con coma
-->{{#invoke:taller|listar}}<!--
-->|}}<!--
-->}}<!--
*** Si es el espacio de nombres principal, categoriza según lo especificado, y aplica clave de ordenación ***
-->{{#if:{{NAMESPACE}}||<!--
*** Si hay categoría de marcas de uso ***
-->{{#if:{{{catuso|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catuso}}}|{{{clave}}} {{PAGENAME}}]]|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catuso}}}]]<!--
-->}}<!--
-->}}<!--
*** Si hay categoría gramatical ***
-->{{#if:{{{catgram|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catgram}}}|{{{clave}}} {{PAGENAME}}]]|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catgram}}}]]<!--
-->}}<!--
-->}}<!--
*** Si hay categoría de ámbito regional ***
-->{{#if:{{{catreg|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catreg}}}|{{{clave}}} {{PAGENAME}}]]|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catreg}}}]]<!--
-->}}<!--
-->}}<!--
*** Si hay categoría de campo semántico ***
-->{{#if:{{{catsem|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catsem}}}|{{{clave}}} {{PAGENAME}}]]|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catsem}}}]]<!--
-->}}<!--
-->}}<!--
*** Si hay otra categoría (cajón de sastre) ***
-->{{#if:{{{cat|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{{cat}}}|{{{clave}}} {{PAGENAME}}]]|[[Categoría:{{{cat}}}]]<!--
-->}}<!--
-->}}<!--
-->}}<!--
*** para categorizar las plantillas en sí, solo aplicable cuando sub esta vacío ***
-->{{#ifeq:{{NAMESPACE}}{{{sub|}}}|{{ns:template}}|<!--
-->[[Categoría:Plantillas de {{{tcat|{{#if:{{{catuso|}}}|marcas de uso|{{#if:{{{catgram|}}}|categorías gramaticales|{{#if:{{{catreg|}}}|ámbito regional|{{#if:{{{catsem|}}}|campo semántico|{{#ifeq:{{{1|}}}{{{2|}}}|_|calificadores}}}}}}}}}}}}}|{{PAGENAME}}]]<!--
-->}}<!--
coma final para campos semánticos
-->{{#if:{{{catsem|}}}|{{#if:{{{sub||}}}||.}}|}}</includeonly>
Plantilla:contexto 1
editar
<noinclude>{{documentación de plantilla}}</noinclude><includeonly><!--
*** Si hay etiqueta, se muestra ***
*** en este caso la plantilla se usa como base para una plantilla de etiqueta:
etiqueta (nota)
El nombre de la plantilla es "contexto 1", y es invocada por una plantilla cuando no encabeza una enumeración, en otro caso se llama a "contexto"
"contexto 1" se usa para expansión inmediata, por lo que siempre requiere
etiqueta.
-->{{{etiqueta}}}<!--
-->{{#if:{{{nota|{{{nota1|}}}}}}|<!--
--> ({{{nota|{{{nota1}}}}}})<!--
-->}}<!--
*** Si es el espacio de nombres principal, categoriza según lo especificado, y aplica clave de ordenación ***
-->{{#if:{{NAMESPACE}}||<!--
*** Si hay categoría de marcas de uso ***
-->{{#if:{{{catuso|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catuso}}}|{{{clave}}} {{PAGENAME}}]]|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catuso}}}]]<!--
-->}}<!--
-->}}<!--
*** Si hay categoría gramatical ***
-->{{#if:{{{catgram|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catgram}}}|{{{clave}}} {{PAGENAME}}]]|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catgram}}}]]<!--
-->}}<!--
-->}}<!--
*** Si hay categoría de ámbito regional ***
-->{{#if:{{{catreg|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catreg}}}|{{{clave}}} {{PAGENAME}}]]|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catreg}}}]]<!--
-->}}<!--
-->}}<!--
*** Si hay categoría de campo semántico ***
-->{{#if:{{{catsem|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catsem}}}|{{{clave}}} {{PAGENAME}}]]|<!--
-->[[Categoría:{{uc:{{{leng|es}}}}}:{{{catsem}}}]]<!--
-->}}<!--
-->}}<!--
*** Si hay otra categoría (cajón de sastre) ***
-->{{#if:{{{cat|}}}|<!--
-->{{#if:{{{clave|}}}|<!--
-->[[Categoría:{{{cat}}}|{{{clave}}} {{PAGENAME}}]]|[[Categoría:{{{cat}}}]]<!--
-->}}<!--
-->}}<!--
-->}}<!--
coma final para campos semánticos
-->{{#if:{{{catsem|}}}|{{#if:{{{sub||}}}||.}}|}}</includeonly>