Módulo discusión:taller

Último comentario: hace 7 años por 84.125.158.203 en el tema Uso del módulo Lua con la plantilla contexto

Casos de uso de la plantilla contexto editar

En 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 editar

Ejemplo: {{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 editar

Es el caso de las plantillas {{uso}} y {{ámbito}}.

{{uso|leng=XX|etiqueta1|nota=aaa|etiqueta2|nota2=bbb|..|etiquetaN|notaN=nnn}}

--84.125.158.203 (discusión) 10:25 12 abr 2017 (UTC)Responder

Uso del módulo Lua con la plantilla contexto editar

Caso 1 editar

Ver sección #Primera tentativa.

Caso 2 editar

Ver sección #Primera tentativa.

Caso 3 editar

Esquema 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}}

--84.125.158.203 (discusión) 10:29 12 abr 2017 (UTC)Responder

Reimplementación editar

Primera tentativa editar

Se 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>

Volver a la página «taller».