local p = {}
local lib_va = require('Module:Va')
local yesno = require('Module:Yesno')
local function getTitle(...)
local success, titleObj = pcall(mw.title.new, ...)
if success then
return titleObj
else
return nil
end
end
--p.main 修改自自module:Template:Weighted_page_size
function p.Weighted_page_size( titleText, ignore_redirect )
if not titleText then
return 0
end
local title = mw.title.new( titleText )
local success = xpcall(function()
if not ignore_redirect then --查找重新導向是高開銷操作,提供取消的方法
title = getTitle( lib_va.redirect_target(titleText) )
end
end,function()end)
if not success then mw.addWarning("[[Module:Vae2 icon]] 超出了模板限制 於標題 \"" .. titleText .. "\" 顯示的結果可能會不正確。") end
if not title then
return 0
end
local content = title:getContent()
if not content then
return 0
end
local chars = mw.ustring.len( content )
return math.floor( chars * 3.786 + 0.5 )
end
function p.main( frame )
local titleText = frame.args[1]
local size
local icontext
size = p.Weighted_page_size(titleText, yesno(frame.args.ignore_redirect)) --查找重新導向是高開銷操作,提供取消的方法
if size<2000 then
icontext='[[File:Qsicon Ueberarbeiten.svg|16px|基础条目扩展(少於2KB)]]'
elseif size<8000 then
icontext='[[File:Qsicon inArbeit.svg|16px|基础条目扩展(2至8KB)]]'
elseif size<16000 then
icontext='[[File:YesCheck BlueLinear.svg|16px|基础条目扩展(8至16KB)]]'
else
icontext='[[File:YesCheck GreenLinear.svg|16px|基础条目扩展(16KB或以上)]]'
end
return icontext
end
return p