Este módulo contiene funciones para encontrar el destino de una página de redireccionamiento .
La función principal acepta el nombre de una sola página. Determina si la página es una redirección; si es así, busca la página, extrae el destino y devuelve el nombre del destino como texto. Su uso es {{#invoke:redirect|main|page-name}}
. Si page-name
no existe o no es una redirección, page-name
se devuelve . Si page-name
está en blanco, se devuelve en blanco.
La función normalmente no toma ni da corchetes, por lo que para mostrar el resultado como un enlace utilice [[{{#invoke:redirect|main|page-name}}]]
.
Si al parámetro corchete se le asigna un valor que no está en blanco, se pasarán los corchetes si están presentes.
{{#invoke:redirect|main|WP:AFC}}
→ Wikipedia:Artículos para la creación{{#invoke:redirect|main|[[WP:AFD]]|bracket=yes}}
→ Wikipedia:Artículos para eliminar{{#invoke:redirect|main|Wikipedia:Articles for deletion}}
→ Wikipedia:Artículos para eliminar{{#invoke:redirect|main|Wikipedia:Articles for rumination}}
→ Wikipedia:Artículos para la rumiaNota: WP:AFC y WP:AFD son redirecciones, pero Wikipedia:Artículos para eliminación no lo es, y Wikipedia:Artículos para rumia no existe.
Si desea utilizar la función principal de otro módulo de Lua, puede utilizar la función luaMain. Esta función ofrece la misma funcionalidad que la función principal, pero no requiere que haya un objeto de marco disponible.
Para utilizar esto, primero cargue el módulo.
mRedirect local = require ( 'Módulo:Redireccionar' )
Luego utilice la función con la siguiente sintaxis:
mRedirect . luaMain ( rname , corchete )
rname es el nombre de la página de redireccionamiento y si bracket es cualquier cosa excepto falso o nulo, el módulo producirá un enlace en lugar de solo un nombre de página.
La función isRedirect se utiliza en las páginas wiki para averiguar si una página determinada es una redirección o no. Si la página es una redirección, la función devuelve "sí" y, si no, el resultado está en blanco. Su uso es {{#invoke:redirect|isRedirect|page-name}}
.
{{#invoke:redirect|isRedirect|WP:AFC}}
→ sí{{#invoke:redirect|isRedirect|Wikipedia:Articles for deletion}}
→{{#invoke:redirect|isRedirect|Wikipedia:Articles for rumination}}
→Se puede acceder a isRedirect desde otros módulos Lua de la misma manera que a la función principal:
mRedirect local = require ( 'Módulo:Redireccionar' ) mRedirect . luaIsRedirect ( rname )
La función getTarget obtiene el nombre de la página de destino de una página de redireccionamiento y solo se puede utilizar desde Lua. Si la página especificada es una página de redireccionamiento, se devuelve el destino; de lo contrario, la función devuelve nil.
Para usarlo, primero cargue el módulo.
mRedirect local = require ( 'Módulo:Redireccionar' )
Luego utilice la función con la siguiente sintaxis:
mRedireccionar . getTarget ( página )
La página puede ser el nombre de la página de redireccionamiento como una cadena o un objeto mw.title.
-- Este módulo proporciona funciones para obtener el destino de una página de redireccionamiento. local p = {} -- Obtiene un objeto mw.title, usando pcall para evitar generar errores de script si -- superamos el costoso límite de conteo de funciones (entre otras posibles causas). local function getTitle (...) local success , titleObj = pcall ( mw . title . new , ...) if success then return titleObj else return nil end end -- Obtiene el nombre de una página a la que conduce un redireccionamiento, o nil si no es un redireccionamiento. function p . getTargetFromText ( text ) local target = string.match ( text , "^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]" ) o string.match ( text , "^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]" ) return target y mw .uri .decode ( target , 'PATH' ) end -- Obtiene el objetivo de una redirección. Si la página especificada no es una redirección, -- devuelve nil. function p .getTarget ( page , fulltext ) -- Obtiene el objeto de título. Se permiten tanto los nombres de página como los objetos de título -- como entrada. titleObj local si tipo ( página ) == 'cadena' o tipo ( página ) == 'número' entonces titleObj = getTitle ( página ) de lo contrario si tipo ( página ) == 'tabla' y tipo ( página.getContent ) == 'función' entonces titleObj = página de lo contrario error ( cadena.formato ( "argumento incorrecto n.° 1 para 'getTarget'" .. " (se esperaba un objeto de cadena, número o título, se obtuvo %s)" , tipo ( página ) ), 2 ) fin si no titleObj entonces devuelve nil fin local targetTitle = titleObj . redirectTarget si targetTitle entonces si fulltext entonces devuelve targetTitle . fullText de lo contrario devuelve targetTitle . prefixedText fin de lo contrario devuelve nil fin fin --[[ -- Dado un solo nombre de página, determina a qué página redirecciona y devuelve el -- nombre de la página de destino, o el nombre de la página pasado cuando no es una redirección. El -- nombre de la página pasado se puede proporcionar como texto sin formato o como un enlace de página. -- -- Devuelve el nombre de la página como texto sin formato, o cuando se proporciona el parámetro corchete, como un -- enlace de página. Devuelve un mensaje de error cuando la página no existe o el -- objetivo de la redirección no se puede determinar por alguna razón. --]] función p . luaMain ( rname , bracket , fulltext ) si type ( rname ) ~= " string" o not rname : find ( " %S" ) entonces devuelve nil fin bracket = bracket y "[[%s]]" o "%s" rname = rname : match ( "%[%[(.+)%]%]" ) o rname objetivo local = p.getTarget ( rname , fulltext ) ret local = target o rname ret = getTitle ( ret ) si ret entonces si fulltext entonces ret = ret.fullText de lo contrario ret = ret.prefixedText fin devuelve bracket : format ( ret ) de lo contrario devuelve nil fin fin -- Proporciona acceso a la función luaMain desde el wikitexto. function p . main ( frame ) local args = require ( 'Module:Arguments' ). getArgs ( frame , { frameOnly = true }) return p . luaMain ( args [ 1 ], args . bracket , args . fulltext ) o '' end -- Devuelve verdadero si la página especificada es una redirección y falso en caso contrario. function p . luaIsRedirect ( page ) local titleObj = getTitle ( page ) si no titleObj entonces devuelve falso end si titleObj . isRedirect entonces devuelve verdadero de lo contrario devuelve falso end end -- Proporciona acceso a la función luaIsRedirect desde el wikitexto, devolviendo 'sí' -- si la página especificada es una redirección y la cadena en blanco en caso contrario. function p . isRedirect ( frame ) local args = require ( 'Module:Arguments' ). getArgs ( frame , { frameOnly = true }) si p . luaIsRedirect ( args [ 1 ]) entonces devuelve 'sí' de lo contrario devuelve '' fin fin devuelve p