detección De Espacio De Nombres

A continuación se muestra la documentación transcluida desde la subpágina /doc.

Icono de documentación de módulo Documentación del módulo] [historial] [purgar]

[salta a la caja de código]


Este módulo permite imprimir un texto diferente dependiendo del espacio de nombres en el que se encuentre una página determinada. Se trata de una implementación Lua de la plantilla {{Detecta espacio de nombres}}, con algunas mejoras: todos los espacios de nombres y todos los alias de espacio de nombres son compatibles, y los nombres de espacio de nombres se detectan automáticamente para la wiki local.

Uso

{{#invoke: Detección de espacio de nombres | main | page              =  | main              =  | talk              =    | portal            =  | category          =  | user              =  | wikipedia         =  | education program =  | mediawiki         =  | book              =  | timedtext         =  | template          =  | special           =  | media             =  | file              =  | image             =  | help             =  | module            =   | other             =  | demospace         =   | subjectns         =  }} 

Parámetros

  • main - devuele si la pagina está en el espacio de nombres principal.
  • talk - devuele si la pagina está en un espacio de nombres de discusión. Esto puede ser cualquier espacio de nombres de discusión - coincidirá con cualquiera de "Talk:", "Wikipedia talk:", "User talk:", etc.
  • Parámetros de asuntos, por ej. wikipedia, user, file... - devuele si la página está en el espacio de nombres correspondiente. Este módulo acepta a todos los espacio de nombres de asunto como parámetros, incluyendo namespace aliases y virtual namespaces. Vea más abajo para una lista de valores admitidos.
  • other - devuele si no se especificaron parámetros para el espacio de nombres de la página. Este texto también se devuelve si |demospace= está puesto en un valor de espacio de nombres no válido.
  • subjectns - si se está en una página de discusión, usar el asunto correspondiente de la página. Se puede poner con valores de "yes", "y", "true" o "1".
  • demopage - especifica una página para detectar el espacio de nombres. Si no se especifica, y si el parámetro |demospace= no está puesto, entonces el módulo utiliza la página actual.
  • demospace - obliga al módulo a comportarse como si la página estuviera en el espacio de nombres especificado. A menudo usado para demostraciones.

Parámetros del espacio de nombres

Los valores posibles para los parámetros del espacio de nombres de asunto son los siguientes:

Dominio Nombres Alternativos
main
usuario user, usuaria
wikipedia project, wp
archivo file, imagen, image
mediawiki
plantilla template
ayuda help
categoría category, cat
portal
wikiproyecto pr
anexo
timedtext
módulo module

Función de tabla

Usar lo siguiente para mostrar una tabla con los diferentes parámetros de espacio de nombres posibles:

{{#invoke:Detección de espacio de nombres|table|talk=yes}} 

Para incluir el parámetro para espacios de nombres de discusión, usar |talk=yes.

Portando a diferentes wikis

Este módulo está diseñado para ser portable. Para usarlo en una wiki diferente, todo lo que se necesita hacer es cambiar los valores en Módulo:Detección de espacio de nombres/configuración. Las instrucciones están disponibles en esa página.

Detalles técnicos

El módulo usa una página de datos en Módulo:Detección de espacio de nombres/data. Esta página se carga con mw.loadData, lo que significa que se procesa una vez por página en lugar de una vez por #invoke. Esto se hizo por razones de rendimiento.


Esta documentación está transcluida desde Módulo:Detección de espacio de nombres/doc.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.

--[[ -------------------------------------------------------------------------------- --                                                                            -- --                    DETECCIÓN DE ESPACIO DE NOMBRES                         -- --                                                                            -- -- Este módulo implementa la plantilla {{namespace detect}} en Lua, con       -- -- algunos implementos: todos los espacios de nombres y todos los alias de    -- -- espacio de nombres son soportados, y los nombres de espacio de nombres     -- -- son detectados automaticamente para una wiki local. El módulo también      -- -- puede usar el correspondiente valor del espacio de nombres de asunto si    -- -- esta siendo usado en una página de discusión. Los nombres de los           -- -- Parámetros pueden ser configurados para diferentes wikis alterando los     -- -- valores en la tabla "cfg" localizada en                                    -- -- "Módulo:Detección de espacio de nombres/configuración".                    -- --                                                                            -- -------------------------------------------------------------------------------- --]]  local data = mw.loadData('Módulo:Detección de espacio de nombres/data') local argKeys = data.argKeys local cfg = data.cfg local mappings = data.mappings  local yesno = require('Módulo:Yesno') local mArgumentos -- Lentamente inicializar Módulo:Argumentos local mTableTools -- Lentamente inicializar Módulo:TableTools local ustringLower = mw.ustring.lower  local p = {}  local function fetchValue(t1, t2) -- Obtiene un valor de la tabla t1 para la primera clave -- en la matriz t2 donde un archivo no-nil de t1 existe for i, key in ipairs(t2) do local value = t1[key] if value ~= nil then return value end end return nil end  local function equalsArrayValue(t, value) -- Devuelve true si el valor es igual a un valor en la matriz t. -- De lo contrario devuelve false. for i, arrayValue in ipairs(t) do if value == arrayValue then return true end end return false end  function p.getPageObject(page) -- Obtener el objeto de página, pasando la función a través -- de pcall en caso de errores, por ej. estar sobre el -- límite del costoso conteo de funciones. if page then local success, pageObject = pcall(mw.title.new, page) if success then return pageObject else return nil end else return mw.title.getCurrentTitle() end end  -- Proporcionada compatibilidad hacia atrás con otros módulos function p.getParamMappings() return mappings end  local function getNamespace(args) -- Esta función obtiene el nombre del espacio de nombres -- a partir del objeto de página. local page = fetchValue(args, argKeys.demopage) if page == '' then page = nil end local demospace = fetchValue(args, argKeys.demospace) if demospace == '' then demospace = nil end local subjectns = fetchValue(args, argKeys.subjectns) local ret if demospace then -- Manejar "demospace = main" correctamente. if equalsArrayValue(argKeys.main, ustringLower(demospace)) then ret = mw.site.namespaces[0].name else ret = demospace end else local pageObject = p.getPageObject(page) if pageObject then if pageObject.isTalkPage then -- Obtener el espacio de nombres de asunto si la opción -- está puesta, de otra manera usa "talk". if yesno(subjectns) then ret = mw.site.namespaces[pageObject.namespace].subject.name else ret = 'talk' end else ret = pageObject.nsText end else return nil -- devolver nil si el objeto de página no existe. end end ret = ret:gsub('_', ' ') return ustringLower(ret) end  function p._main(args) -- Comprobar los parámetros almacenados en la tabla de asignaciones -- para cualquier coincidencia. local namespace = getNamespace(args) or 'other' -- "other" evita las claves de una tabla con valor nil local params = mappings[namespace] or {} local ret = fetchValue(args, params) --[[ -- Si no hay coincidencias, devolver los parámetros a otros -- espacio de nombres. Esto pasa si allí no hay un texto especificado -- para el espacio de nombres que fue detectado o si el parámetro -- "demospace" del espacio de nombres no es un espacio de nombres valido. -- Notar que el parámetro para el espacio de nombres detectado debe ser -- completamente ausente para que esto pase, no solo en blanco. --]] if ret == nil then ret = fetchValue(args, argKeys.other) end return ret end  function p.main(frame) mArgumentos = require('Módulo:Argumentos') local args = mArgumentos.obtenerArgumentos(frame, {removeBlanks = false}) local ret = p._main(args) return ret or '' end  function p.table(frame) --[[ -- Crear una "wikitable table-responsive " de todos los parámetros del espacio  -- de nombres de asuntos, para propósitos de documentación. -- El parámetro "talk" es opcional, en ese caso necesita ser -- excluido de la documentación. --]]  -- Cargar módulos e inicializar variables. mTableTools = require('Módulo:TableTools') local namespaces = mw.site.namespaces local cfg = data.cfg local useTalk = type(frame) == 'table'  and type(frame.args) == 'table'  and yesno(frame.args.talk) -- Si se utiliza el parámetro "talk".  -- Obtener los nombres del encabezado. local function checkValue(value, default) if type(value) == 'string' then return value else return default end end local nsHeader = checkValue(cfg.wikitable table-responsive NamespaceHeader, 'Dominio') local aliasesHeader = checkValue(cfg.wikitable table-responsive AliasesHeader, 'Nombres Alternativos')  -- Poner los espacio de nombres en orden. local mappingsOrdered = {} for nsname, params in pairs(mappings) do if useTalk or nsname ~= 'talk' then local nsid = namespaces[nsname].id -- Agregar 1, ya que la matriz debe comenzar con 1; -- nsid 0 se perdería de otra manera. nsid = nsid + 1  mappingsOrdered[nsid] = params end end mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered)  -- Construir la tabla. local ret = '{| class="duhoc-es wikitable table-responsive "' .. '\n|-' .. '\n! ' .. nsHeader .. '\n! ' .. aliasesHeader for i, params in ipairs(mappingsOrdered) do for j, param in ipairs(params) do if j == 1 then ret = ret .. '\n|-' .. '\n| ' .. param .. '' .. '\n| ' elseif j == 2 then ret = ret .. '' .. param .. '' else ret = ret .. ', ' .. param .. '' end end end ret = ret .. '\n|-' .. '\n|}' return ret end  return p 

Tags:

Módulo:Detección de espacio de nombres/doc

🔥 Trending searches on Wiki Español:

Nicolas CageNovelaGalileo GalileiDía del PadreAdam SandlerChe GuevaraMara SalvatruchaPor quién doblan las campanas (película)Barcelona Sporting ClubRodri HernándezUzbekistánBelinda (cantante)AtletismoCristina Pérez (periodista)Venus (planeta)FranciaMuhammad AliBacteriaZodiacoResurrección de JesúsAbraham LincolnShawn MendesEurocopa 2024Selección de fútbol de NoruegaHistoriaCanis familiarisPeste negraMétodo científicoTom CruiseHiba AboukTini StoesselGeneración ZReacción químicaNoruegaAparato genital femeninoHondurasSylvester StalloneBenito JuárezClub Social y Deportivo Colo-ColoCristiano RonaldoClub Atlético PeñarolCopa Mundial de Fútbol Sub-20 de 2023Estado MonagasElvis PresleyPancho VillaZlatan IbrahimovićAntónimoGuillermo Barros SchelottoEdad ModernaFeidLa Venganza de los Ex México VIP (temporada 2)Imperio otomanoGoogle ClassroomInternetTelegramChoque sépticoMahatma GandhiKevin CastañoAndrea TessaNayib BukelePitágorasCaliforniaAngelita CastanyColombiaLuis de la Fuente CastilloEduardo BerizzoAbortoFórmula 1Elton JohnSpotifyJoseluNetflixPanamáModelo atómico de BohrDon Quijote de la Mancha🡆 More