Documentación del módulo [ ver ] [ editar ] [ historial ] [ purgar ]
Uso
Este módulo implementa la plantilla {{ Asbox }}. Consulte la página de la plantilla para obtener instrucciones de uso.
Agradecimientos
Además de los contribuyentes enumerados en los historiales de contribución de Plantilla: Asbox y Módulo: Asbox , este módulo también implementa ideas de la plantilla eliminada: Asbox / templatepage , cuyo autor principal es Usuario: MSGJ e incluye contribuciones de código de Usuario: WOSlinker , y Usuario: Od_Mishehu .
Categoría de seguimiento
- Categoría: Plantillas de mensajes de código auxiliar que necesitan atención (1)
- [[Este módulo fue creado por Usuario: CodeHydro (Alexander Zhikun He).Usuario: Jackmcbarn y Usuario: Mr._Stradivarius proporcionó una gran ayuda para escribir p.main ()p.main () se basa en gran medida en la siguiente versión de Template: Asbox de la Wikipedia en inglés, escrito principalmente por User: Rich_Farmbroughhttps://en.wikipedia.org/w/index.php?title=Template:Asbox&oldid=619510287p.templatepage () se deriva de la siguiente revisión de Template: Asbox / templatepage, escrito principalmente por User: MSGJhttps://en.wikipedia.org/w/index.php?title=Template:Asbox/templatepage&oldid=632914791Ambas plantillas tuvieron contribuciones significativas de muchas otras que se enumeran en la pestaña del historial de revisiones de sus respectivas páginas.-]]local WRAPPER_TEMPLATE , args = 'Plantilla: Asbox'local templatestyles = 'Asbox / styles.css' p local , búfer , stubCats = {--Evita dupli-gatos ... ¿entiendes? ¿Tal vez no?gatos = setmetatable ({}, { __newindex = function ( t , i , v )si no es rawget ( t , i ) entoncesrawset ( t , i , v )table.insert ( t , i )finalend }),: inicializa las variables requeridas por p.main y p.templatepageinit = función ( self , frame , page )args , page = args o require ( 'Módulo: Argumentos' ). getArgs ( marco , {envoltorios = WRAPPER_TEMPLATE}), página o mw . título . getCurrentTitle ()--Asegura que el parámetro de demostración nunca afectará la salida de categoría () de los artículosyo . demo = self . demo o página . espacio de nombres ~ = 0 y args . manifestaciónreturn args , páginafinal}, require ( 'Módulo: Buffer' )- [[Formatea enlaces de categorías. Los almacena hasta que se llaman con cat.done = trueToma categorías múltiples o únicas en forma de 'gato'o una tabla de cadenas y / o tablas que contienen partes. (Vea abajo)]] atención local , catTag , catKey = Buffer 'Plantillas de mensajes stub que necesitan atención' , '[[Categoría:% s]]' , '% s |% s% s' categoría de función local ( gato )para _ , v en ipairs (( toString ( gato ) == gato o gato . t ) y { cat } o gato ) hacen- [[ Si v es una tabla:[1] = nombre completo de la categoría; pasa por defecto a la atención local si está en blancok = Clave de clasificación de categoría. Prefijo antes de vtt = page.text o args.tempsort #; añadido después de k (o en su lugar si se omite). Requerido si v no es una cadenaBásicamente lo mismo que v = (v [1] o atención) .. '| '.. (vk o' ') .. vt ]]si v y v ~ = verdadero entonces - rechazar v = nulo, falso o verdaderop . gatos [ catTag : formato ( tostring ( v ) == v yvo ( v [ 1 ] y Buffer ( v [ 1 ]) o atención ): _in ( v . k ): _ ( v . t ): _str ( 2 , nil , nil , '|' ))] = verdaderofinalfinalDevolver gato . done y table.concat ( p . cats , p . demo y '|' o nil ) o ''final- [[Hace una advertencia de ombox;Toma la tabla {ifNot = Boolean, text, {cat. clave de clasificación, gato. ordenar nombre}}En su lugar, devolverá una cadena vacía cuando ifNot se evalúe como verdadero ]] función local ombox ( v )si v . ifNot entonces regresa finp . ombox = pág . ombox o require ( 'Módulo: Cuadro de mensaje' ). omboxcategoría { v [ 2 ]}volver p . ombox {type = 'contenido' ,texto = v [ 1 ]}final- [[A diferencia de la plantilla original, ¡el módulo ahora admite gatos ilimitados! Esta función también realizala mayoría de las comprobaciones de errores de categorías de código auxiliar, excepto el ombox para cuando se omite main | category = (consulte p.template ())]] función local catStub ( page , pageDoc )stubCats = { missing = {}, v = {}}disallowedUnicodeChars = '[^% w% p% s]' - para i18n hacemos que esta sea una cadena separada codigo localpara k , _ en pares ( argumentos ) hacer--Buscar parámetros de categoría y almacenar el número (gato principal = '')table.insert ( stubCats , string.match ( k , '^ categoría (% d *) $' ))finaltable.sort ( stubCats )para k , v en ipairs ( stubCats ) hacer--Obtener nombres de categorías y, si p.templatepage los llama, la clave de clasificación opcional tsort local , cat = args [ 'tempsort' .. v ], mw . ustring . gsub ( args [ 'categoría' .. v ], disallowedUnicodeChars , '' ): elimina todos los caracteres Unicode ocultosNo coloque la plantilla en la categoría principal si | tempsort = 'no'. Sin embargo, DEBE colocar los artículos de esa plantilla en la categoría principal.table.insert ( stubCats . v , page y ( --p.templatepage pasa la página; p.main no, es decir, los artículos se clasifican sin claves de clasificación.v == '' y tsort == 'no' - si es verdadero, inserta 'verdadero' en la tabla, qué categoría () rechazaráo tsort y { cat , k = '' , t = tsort }o { gato , k = '*' , t = página . texto }: anote el espacio delante de la clave de clasificación)o gato)--Compruebe la existencia de la categoría solo si está en la página de la plantilla (es decir, documentación auxiliar)si la pagina entoncessi no mw . título . nuevo ( 'Categoría:' .. gato ). existe entoncescódigo = código o mw . html . crear 'código' : wikitexto '| categoría'table.insert ( stubCats . faltante , toString ( mw . clon ( código ): wikitexto ( v )))final- [[ Comprueba la plantilla de código auxiliar que no es de demostración para la documentación y marca si el documento está presente. Todos los nombres de gatos stub se comprueban y se marcan si no coinciden con 'Categoría: [] stub'. El gato de código auxiliar principal está exento de la verificación de nombre si la plantilla de código auxiliar tiene su propio documento. (presumiblemente, este documento tendría una explicación de por qué el gato de trozo principal no es conforme). ]]table.insert ( stubCats . v , v == '' y no p . demo y pageDoc . existe y'Plantillas de mensajes de código auxiliar con subpáginas de documentación'o no gato : coincide con 'stubs $' y { k = 'S' , t = página . texto })finalfinal--Añadir nombres de categorías después de que se complete el ciclocategoría ( stubCats . v )return # stubCats . falta > 0 y ombox {- Mensaje original modificado:- ¡Una o más de las categorías de código auxiliar definidas en esta plantilla no parecen existir!- Verifique los parámetros {{para | categoría}}, {{para | categoría1}} y {{para | categoría2}}.'El siguiente parámetro'.. ( # stubCats . missing == 1 y 'define una categoría de stub que sí' o 'define categorías de stub que sí' ).. 'no existe:' .. mw . texto . listToText ( faltan stubCats . ),{ k = 'N' , t = página . texto }}final: Muestra la población de categorías encontradas por catStub (). Muestra valores de demostración si no hay ninguno población de función local () wikitexto local , base = {}, '* [[: Categoría:% s]] (población:% s) \ n 'si no argumenta . categoría y stubCats [ 1 ] ~ = falso entoncestable.insert ( stubCats , 1 , falso )finalpara _ , v en ipairs ( stubCats ) hacertable.insert ( wikitexto , base : formato (v y args [ 'categoría' .. v ] o '{{{categoría}}}' ,v y mw . sitio . estadísticas . pagesInCategory ( args [ 'categoría' .. v ], 'todo' ) o 0))finalreturn table.concat ( wikitexto )final- Incluye documention stub estándar y marca plantillas stub con valores de parámetro incorrectos.función p . templatepage ( marco , página )args , page = p : init ( marco , página ) tStubDoc local = mw . título . nueva 'Plantilla: documentación de código auxiliar'local pageDoc = página : subPageTitle ( 'doc' )--Nota de reorganización: Asbox original alterna entre las categorías de salida y la verificación de parámetros | categoría # =.- En lugar de verificar varias veces y cambiar tareas, todas las operaciones de parámetros de categoría de código auxiliar se han incorporado a catStub ()return Buffer (ombox { : muestra las advertencias de ombox para los argumentos faltantes.ifNot = args . categoría ,'El parámetro | category
no está configurado. Agregue una categoría de código auxiliar adecuada. ' ,{ k = 'C' , t = página . texto }}): _ ( ombox {ifNot = args . sujeto o args . artículo o argumentos . calificador ,'¡Esta plantilla de código auxiliar no contiene descripción! Debe definirse al menos uno de los parámetros | subject
, | article
o | qualifier
. ' ,{ k = 'D' , t = página . texto }}): _ ( catStub ( page , pageDoc )) --catStub () también puede devolver un ombox si no existen categorías: _ ( categoría {hecho = p . demo ~ = 'doc' , --Obtiene categorías si no es doc demo'Plantillas de mensajes de código auxiliar' ,'Excluir en letra impresa' ,argumentos . icono y'Plantillas de mensajes de código auxiliar que utilizan el parámetro de icono'o argumentos . imagen y (mw . título . nuevo ( 'Media:' .. mw . text . split ( args . image , '|' ) [ 1 ]). existe - no haga nada si existe. categoría () rechazará verdaderoo { k = 'B' , t = página . texto })o 'Plantillas de mensajes de código auxiliar sin imágenes' ,argumentos . imagealt y { k = 'I' , t = página . texto },}): _ (( no p . demo o p . demo == 'doc' ) y --Añadir documentación de plantilla de código auxiliar estándarrequire ( 'Módulo: Documentación' ). principal {content = Buffer ( page . text ~ = 'Stub' y --Esta comparación se realizó en {{Asbox / stubtree}} antes de que invoca el Módulo: Asbox stubtreerequire ( 'Módulo: Stubtree de Asbox' ). subárbol { args = { pagename = página . texto }}): _En ' \ n == Sobre esta plantilla == \ n Esta plantilla se utiliza para identificar un' : _ ( args . Sujetos ): _ 'trozo' : _ ( args . Calificador ): _out '' --space: _ '. Utiliza {{[[Template: Asbox | asbox]]}}, que es una metaplantilla diseñada para facilitar el proceso de creación y mantenimiento de plantillas de código auxiliar. \ n === Uso === \ n Escribiendo ': _ ( mw . html . crear 'código': wikitext ( '{{' , page . text == 'Stub' y 'stub' o page . text , '}}' )): _ 'produce el mensaje que se muestra al principio y agrega el artículo a la siguiente categoría': _ ( # stubCats > 1 y 'ies' o 'y' ): _ ': \ n ': _ ( población ()): _ ( pageDoc . existe y --transclusion de / doc si existemarco : expandTemplate { title = pageDoc . texto }): _ ' \ n == Información general == \ n ': _ ( marco : expandTemplate { título = tStubDoc . texto }): _ ' \ n \ n ' (),[ 'link box' ] = Buffer 'Esta documentación es generada automáticamente por [[Module: Asbox]].': _in 'La información general se ha extraído de [[Template: Stub documentation]]. ': _ ( mw . html . crear 'intervalo': cssText 'tamaño de fuente: más pequeño; estilo de fuente: normal; altura de línea: 130%': nodo (( '([% s editar] | [% s historial])' ): formato (tStubDoc : fullUrl ( 'acción = editar' , 'relativo' ),tStubDoc : fullUrl ( 'acción = historial' , 'relativo' )))): _out (): _ ( page . protectionLevels . edit y page . protectionLevels . edit [ 1 ] == 'sysop' y"Esta plantilla está [[WP: PROTECT | totalmente protegida]] y cualquier [[WP: CAT | categorías]] debe agregarse a la plantilla [".. pageDoc : fullUrl ( 'acción = editar y precargar = Plantilla: Category_interwiki / preload' , 'relativo' ).. '| / doc] subpágina, que no está protegida. ') '
'}) ()finalfunción p . principal ( marco , página )args , page = p : init ( marco , página ) salida local = mw . html . crear 'div': attr { rol = 'nota' }: addClass ' enlaces sin formato de metadatos asbox stub': etiqueta 'tabla': attr { rol = 'presentación' }: etiqueta 'tr': addClass 'noresize': Nodo (( args . Icono o args . Imagen ) ymw . html . crear 'td': Wikitexto ( args . Icono o ( '[[Archivo:% s | alt =% s] |% SPX]' :) formato (argumentos . imagen o '' ,argumentos . pix o '40x30' ,argumentos . imagealt o 'icono de código auxiliar '))): etiqueta 'td': etiqueta 'p': addClass 'cuerpo-asbox': wikitexto (Buffer 'esto' : _ ( args . Sujeto ): _ ( args . Artículo o 'artículo' ): _ ( args . Calificador ) '' , --space'es un [[Wikipedia: stub | stub]]. Puedes ayudar a Wikipedia con [' ,página : fullUrl ( 'acción = editar' , 'relativo' ),'expandiéndolo]'.): hecho (): nodo ( args . nota ymw . html . crear (): etiqueta 'p': addClass 'asbox-note': Texto wiki ( args . Nota ): hecho ()): allDone (): Nodo ( args . Nombre yrequieren 'Módulo: Navbar' . _navbar {argumentos . nombre ,mini = 'sí' ,})- [[Las categorías de código auxiliar de las plantillas incluyen una clave de clasificación; esto asegura que todas las etiquetas stub aparezcan al principio de sus respectivas categorías. Los artículos que utilizan la plantilla no necesitan una clave de clasificación, ya que tienen nombres únicos. Cuando p.demo es igual a 'doc', las categorías de stub de demostración aparecerán como las de una plantilla de stub. De lo contrario, cualquier p.demo que no sea nulo emulará las categorías de espacio del artículo (más cualquier error de gato a menos que se establezca en 'arte') ]]si la página . espacio de nombres == 0 luego - Espacio de nombres principalcategoría 'Todos los artículos de resguardo'catStub ()elseif pág . demo entoncessi p . demo ~ = 'doc' luego catStub () end--A menos que p.demo esté configurado como 'art', también incluirá categorías de error que normalmente solo se muestran en- la plantilla pero no en el artículo. El elseif después del espacio de nombres == 0 significa que los gatos de demostración nunca se mostrarán en el espacio del artículo.p . demodoc = p . demo ~ = 'art' y p . templatepage ( marco , página )salida = mw . html . crear (): nodo ( salida ): etiqueta 'pequeña' : wikitexto ('Categorías de demostración:' ,( categoría { hecho = verdadero }: gsub ( '(% [% [) (Categoría :) ( [^ |%]] -) (% |)' , '% 1% 2% 3 |% 2% 3% 4 ' ): gsub ( ' (% [% [) (Categoría :) ' , '% 1:% 2 ' ))): hecho (): wikitext ( p . demo == 'doc' y p . demodoc o nil )demás- Comprueba si hay un nombre válido; emula el cheque de la plantilla original usando {{FULLPAGENAME: {{{name |}}}}}local normalizedName = mw . título . nuevo ( args . nombre o '' )si es normalizedName y normalizedName . fullText == página . fullText entoncessalida = mw . html . create (): node ( salida ): wikitext ( p . templatepage ( frame , page ))elseif not page . isSubpage y page . espacio de nombres == 10 entonces - Espacio de nombres de plantilla y no una subpáginacategoría {{ k = argumentos . nombre y 'E' o 'W' , t = página . texto }}finalfinalreturn frame : extensionTag { name = 'templatestyles' , args = { src = templatestyles } } .. tostring ( salida : wikitext ( no p . demo y categoría { done = true } o nil ))finalvolver p