模块:Unsigned
跳到导航
跳到搜索
local p = {}
function base( args )
local type = args.type or 'Unsigned'
local typetable = {unsigned = '未签名', undated = '没有日期的'}
local user = args.user
local date = args.date
if date and not date:find( '%(UTC%)$' ) then
date = date .. ' (UTC)'
end
local nowiki = ''
if mw.isSubsting() then
nowiki = '<nowiki/>'
end
local text = {
'<small>–该' .. (typetable[mw.ustring.lower( type )] or '未签名') .. '留言',
' 添加。请在您的回复后面加上 ~~' .. nowiki .. '~~</small>'
}
if date then
table.insert( text, 2, '在 ' .. date)
end
if user then
local userLinks
if not user:find( '[^:%x%.%d]' ) and require( 'Module:IPAddress' ).isIP( user ) then
userLinks = '[[Special:Contribs/' .. user .. '|' .. user .. ']] ([[User talk:' .. user .. '|讨论]])'
else
userLinks = '[[User:' .. user .. '|' .. user .. ']] ([[User talk:' .. user .. '|讨论]] • [[Special:Contribs/' .. user .. '|贡献]])'
end
table.insert( text, 2, '由 ' .. userLinks)
end
return table.concat( text )
end
p.unsigned = function( f )
local args = require( 'Module:ProcessArgs' ).norm( f.args or f )
local type = args.type or 'Unsigned'
local user = args.user
local date = args.date
local category = { '<!-- Template:' .. type .. ' -->' }
if mw.isSubsting() then
-- Don't allow substitution with missing required arg
if type == 'Unsigned' and not user then
local dateArg = ''
if date then
dateArg = '||' .. date
end
return '{{Unsigned' .. dateArg .. '}}'
elseif type == 'Undated' and not date then
return '{{Undated}}'
end
elseif mw.title:getCurrentTitle().namespace ~= 10 then
if type == 'Unsigned' and not user then
table.insert( category, '[[Category:使用了未正确标明签名的模版]]' )
elseif type == 'Undated' and not date then
table.insert( category, '[[Category:使用了未正确标明日期的模版]]' )
end
table.insert( category, '[[Category:需要替换模版的页面]]' )
end
return base( args ) .. table.concat( category )
end
p.auto = function( f )
if mw.isSubsting() or mw.title:getCurrentTitle().namespace == 10 then
local date = string.lower( f.args.date or f.date )
local args = {
user = f:preprocess( '{{safesubst:REVISIONUSER: {{safesubst:FULLPAGENAME}}}}' ),
date = f:preprocess( '{{safesubst:#timel:Y年Fd日 G:i|{{safesubst:REVISIONTIMESTAMP: {{safesubst:FULLPAGENAME}} }}}}' )
}
if date == '1' or date == 'only' then
args.type = 'Undated'
args.user = nil
elseif date == '0' or date == 'none' then
args.date = nil
end
return base( args ) .. '<!-- Template:AutoUnsigned -->'
else
return '<span class="error">Template:AutoUnsigned 必须被替换</span>[[Category:未被正确使用的 AutoUnsigned 模版]]'
end
end
return p
分类:
- 无文档的模块