Module:Redirect hatnote
外观
此模块的文档可以在Module:Redirect hatnote/doc创建
local p = {}
function p.redirect(frame)
local args = frame.args
local pargs = frame:getParent().args
-- 获取参数
local redirectPage = args[1] or pargs[1] or ""
local usage1 = args[2] or pargs[2] or ""
local target1 = args[3] or pargs[3] or ""
local usage2 = args[4] or pargs[4] or ""
local target2 = args[5] or pargs[5] or ""
local usage3 = args[6] or pargs[6] or ""
local target3 = args[7] or pargs[7] or ""
local customText = args.text or pargs.text or ""
if redirectPage == "" then
return ""
end
-- 构建输出
local result = '<div class="hatnote">"' .. redirectPage .. '"重定向至此'
-- 处理消歧义链接
local hasDisambig = false
if usage1 ~= "" then
hasDisambig = true
if target1 == "" then
target1 = mw.title.getCurrentTitle().text .. " (消歧义)"
end
if usage1 == "和" then
result = result .. '和[[' .. target1 .. ']]'
else
result = result .. '。关于' .. usage1 .. ',请见[[' .. target1 .. ']]'
end
end
if usage2 ~= "" and usage2 ~= "和" then
if target2 == "" then
target2 = mw.title.getCurrentTitle().text .. " (消歧义)"
end
result = result .. ';关于' .. usage2 .. ',请见[[' .. target2 .. ']]'
elseif usage2 == "和" and target2 ~= "" then
result = result .. '和[[' .. target2 .. ']]'
end
if usage3 ~= "" and usage3 ~= "和" then
if target3 == "" then
target3 = mw.title.getCurrentTitle().text .. " (消歧义)"
end
result = result .. ';关于' .. usage3 .. ',请见[[' .. target3 .. ']]'
elseif usage3 == "和" and target3 ~= "" then
result = result .. '和[[' .. target3 .. ']]'
end
-- 如果没有指定用法但有目标,默认显示"关于其他用法"
if not hasDisambig and target1 ~= "" then
result = result .. '。关于其他用法,请见[[' .. target1 .. ']]'
end
if customText ~= "" then
result = result .. customText
end
result = result .. '。</div>'
return result
end
return p