Usuario:Juan Mayordomo/LUA

  Principal   Ayuda   Por hacer   Matemáticas   Plantillas   LUA   CSS   Javascript   Mediawiki   Herramientas  

Ver el manual de LUA. Ver Módulo:Zona de pruebas.

Las páginas con un error de Lua se categorizan en Categoría:Wikipedia:Páginas con errores de secuencia de comandos

TrucosEditar

  • Acceder a una plantilla

str2 = frame:preprocess('{{bandera2|' .. label ..'|nombre ='.. nombre .. '}}')

  • Para mostrar el código escribir algo de la forma <syntaxhighlight lang="Lua"> lo que sea </syntaxhighlight>
Módulos
  • Lua ya carga un módulo solo una vez pues se guardan los módulos cargados en package.loaded por lo que dos o tres módulos que he hecho y que guardaban a su vez los módulos en una tabla es innecesario.
  • Módulo:Zona de pruebas/Juan Mayordomo/Pruebas

* Crear un módulo y una plantilla para documentar campos de fichas para los que existe una propiedad en Wikidata incluyendo los calificativos.

  • Módulo:Convertir
    • Hacer que se informe en el caso de obtener los datos de la unidad de Wikidata el plural tal y como se hace en este cambio.
  • Módulo:Copa
    • Pendiente el parámetro compact=yes
    • Pendiente arreglar la documentación. Ahora no se muestra
    • Pendiente que se pueda usar el score de la forma RD1-score1 = 6, 5, 4
    • Pendiente añadir un nuevo campo para si se desea que se numeren automáticamente los seeds de la primera ronda.
    • Hacer que funcione el tercero con 32 equipos.
  • Módulo:Enlaces externos Wikidata
    • Nuevo módulo para crear automáticamente enlaces externos de personas (página web, MacTutor, ... Genealogy). El problema es la fecha de acceso.
        • SELECT ?grado ?gradoLabel ?enlace (COUNT(?grado) AS ?count) WHERE {
           
           ?persona wdt:P31 wd:Q5;
                    p:P69 [             #educado en
                      pq:P512 ?grado
                    ].  
            optional{
              ?enlace schema:about ?grado;
                      schema:isPartOf <https://es.wikipedia.org/>
            }.
              SERVICE wikibase:label {
                 bd:serviceParam wikibase:language "es"
              }  
          } GROUP BY ?grado ?gradoLabel ?enlace order by DESC(?count)
          
          • especialización académica (P812):
          • PREFIX schema: <http://schema.org/>
            
            SELECT ?especializacion ?especializacionLabel ?enlace (COUNT(?especializacion) AS ?count) WHERE {
              ?persona wdt:P31 wd:Q5.
              ?persona p:P69 _:b0.
              _:b0 pq:P812 ?especializacion.
              OPTIONAL {
                ?enlace schema:about ?especializacion.
                ?enlace schema:isPartOf <https://es.wikipedia.org/>.
              }
              SERVICE wikibase:label { bd:serviceParam wikibase:language "es". }
            }
            GROUP BY ?especializacion ?especializacionLabel ?enlace
            ORDER BY DESC(?count)
            
    • Módulo:Wikidata/Formatos educación, función educado en.
    • Usar la propiedad forma parte de (P361) o miembro de (P463) para los grupos musicales. Por ejemplo, Paul McCartney (Q2599) y Freddie Mercury (Q15869).
    • Arreglar sobre todo para los escritores que se informen la lengua materna y la lengua de producción literaria. Hay personas nacidas y muertas en París, Francia con nacionalidad francesa y lengua materna y de producción literaria francés.
    • Categorías:
      • Ver:
        • Hace tiempo comenté que no veo razón para que {{Ficha de persona}} no incluya {{NF}} (para las categorías de fechas de nacimiento y muerte). Pero a medida que se han ido complicando las plantillas me temo que no muchas personas pueden hacer el cambio. Te nombraron como uno de los especialistas en ello. ¿Ves alguna contraindicación? ¿Lo podrías incluir si tienes tiempo?--FAR, (Libro de reclamaciones@ 09:31 18 jun 2017 (UTC)
    • Ocupación.
      • Hacer una función que recorra las ocupaciones y hago algo de la forma:

if insertar(tablaMedios, medioOcupacionActor[ocupacion]) then

insertar(ocupaciones, '[actor]' o actriz según sea el caso)

else ...

al final acceder a una nueva función para convertir en mayúsculas las ocupaciones y los medios.

      • Posibilidades:
        • Si por ejemplo para una determinada ocupación no existe un enlace a un artículo de la Wikipedia:
          • Actores
            • Agrupar varias ocupaciones juntas. Por ejemplo, actores de cine y televisión. Eleanor Powell. Mejor sacar solo que la ocupación es actor. Lo otro quizás pueda ponerse en otro campo como medio o género.
        • Hacer que se enlace a la correspondiente área. Por ejemplo si la ocupación es escultor se mostraría escultor
        • Si en Wikidata la ocupación tiene una única subclase de (P279) y un único ámbito de la ocupación (P425). Por ejemplo, si la ocupación es estadístico (Q2732142) se mostraría matemático (Q170790) de ocupación y estadística (Q12483) de área.
        • Corregir para escritores las ocupaciones y los géneros de Wikidata:
          • escritor de ciencia ficción (Edward Everett Hale) --> escritor + ciencia ficción
          • novelista --> Escritor + novela
  • Arreglar lo de los idiomas tanto en este módulo como en el de ficha de libro de forma que si el idioma es inglés estadounidense se muestre inglés si no se utiliza ya.
    • A medias.Falta eliminar los idiomas repetidos. Buscar ejemplo. Ahora si el idioma es inglés e inglés estadounidense se mostraría dos veces el idioma inglés.
  • Añadido inicio del periodo de actividad (P2031) para el periodo de actividad.
    • Pendiente pasar el 2, 3, 4, etc y que salga el lápiz y que el desde salga en mayúsculas y documentar la función formatoPeriodo en Wikidata/Formatos.
  • Módulo:Q obra
    • {{Q obra}}
    • Pendiente añadir la categoría donde incluir los artículos si existe el enlace
  • Módulo:Sucesiones
    • Usar una función para contar el número de veces que se repite un elemento de una tabla Ya no se usa. Hacerlo de otra forma.
    • Añadir un parámetro llamado idEntidad
    • Falla la función sort porque no es estable. Crear una función propia en el módulo de tablas. Por ejemplo, Pórtico (novela).
  • Módulo:Tablas
    • Crear una función para contar el número de veces que se repite un elemento de una tabla
    • Función ordenar
      • Arreglar la documentación. Se puede llamar de dos formas.
    • tostring
  • Module:UnitTests
    • Poder añadir secciones. Lo mejor de momento es utilizar varias funciones.
    • Poder añadir una nueva columna con la descripción de la prueba individual
    • Para nowiki usar {nowiki = 'yes'}. Ver por ejemplo Módulo:Ficha/tests
      • Pendiente ver cómo además se muestren las diferencias en colores.
    • En la Wikipedia inglesa tienen otro módulo para pruebas llamado en:ScribuntoUnit. Si falla alguna prueba se incluyen en la categoría :en:Category:ScribuntoUnit failed tests. Hacer lo mismo.
  • Módulo:URL
    • Documentar
    • Ver {{Página web}}, {{enlace plano}} (No se usa casi pues en las fichas directamente se usa la clase plainlinks), {{link}}
    • Ver la plantilla {{URL}}. Se trata realmente de la misma función que hace el módulo cuando no se informa el texto. Extrañamente yo he creado el módulo para que se informe siempre el texto mientras que en la Wikipedia inglesa está obsoleto.
  • Módulo:Wikidata
    • Módulo:Zona de pruebas/Juan Mayordomo/Wikidata
    • Pendiente documentar los parámetros
      • cualificativo.
      • ordenar por fecha
        • Falla al ordenar fechas anteriores a Cristo.
        • Falla el código:
        • 	--Ordenar en su caso por fecha. Ver la función chronosort de :fr:Module:Wikidata/Récup
          	if opciones.ordenar == 'por fecha' then
          		require('Módulo:Tablas').ordenar(tablaOrdenada,
          			function(elemento1,elemento2)
          				local fecha1 = valinQualif(elemento1, datequalifiers) or '' -- elemento1.qualifiers.P580[1].datavalue.value.time or ''
          				local fecha2 = valinQualif(elemento2, datequalifiers) or '' -- elemento2.qualifiers.P580[1].datavalue.value.time or ''
          				
          				return fecha1 < fecha2
          			end
          		 )
          	end
          
          está mal el return. Se debe hacer antes del fecha1< fecha2:
        • local Date                       = require('Módulo:DateEng')._Date
          .....
          return Date(fecha1) < Date(fecha2)
          
          Mejor copiar lo que se hace en fr:Module:Wikidata. Para comparar se hace:
        • function wd.chronoSort( claims, inverted )
          	for _, claim in ipairs( claims ) do
          		if not claim.dateSortKey then
          			local snack = claim.mainsnak or claim
          			local iso
          			if (snack.snaktype == 'value') and (snack.datatype == 'time') then
          				iso = snack.datavalue.value.time
          			else
          				iso = timeFromQualifs(claim, datequalifiers) or '0'
          			end
          			-- transformation en nombre (indication de la base car gsub retourne deux valeurs)
          			iso = tonumber( iso:gsub( '(%d)%D', '%1' ), 10 )
          			claim.dateSortKey = iso
          		end
          	end
          	table.sort( 
          		claims,
          		function ( c1, c2 )
          			if inverted then
          				return c2.dateSortKey < c1.dateSortKey
          			end
          			return c1.dateSortKey < c2.dateSortKey
          		end
          	)
          	return claims
          end
          
    • Añadir una nueva opción para en la ficha de ¿? en el país de una ciudad, por ejemplo Frankfurt, solo devolver el último país.
  • Módulo:Ficha Wikidata
    • Documentar el parámetro lista. Copiar la wikipedia italiana. Es mejor crear un campo llamado tipo de lista. Ya lo estoy utilizando en el módulo de ficha de libro, corregirlo.