Module:Ttt
Appearance
1(number)=a(string);
2(number)=b(string);
3(number)=c(string);
4(number)=d(string);
0
local p={}
function p.maxk(t)
local z=0
for k,v in pairs(t) do
if type(k)=='number' and k>z then z=k end
end
return z
end
function p.catnav(x)
local args=x
if args.noroot~="1" then --noroot=1时,不自动补充根分类
if args[1]=="页面分类" or args[1]=="頁面分類" then table.remove(args,1) end
table.insert(args,1,"页面分类")
end
-- args:
-- 页面分类; aaa; bbb; ccc
local cat=args[p.maxk(args)]
if args.nohere~="1" then --nohere=1时,不自动补充本页链接
if mw.title.makeTitle("Category",args[p.maxk(args)])~=mw.title.getCurrentTitle() --如果最后一项不等于页面名,或者不是同一个命名空间
then table.insert(args,mw.title.getCurrentTitle().text) --添加最后一项,使其等于页面名
end
end
-- args:
-- 页面分类; aaa; bbb; ccc; 页面名
if mw.title.makeTitle("Category",args[p.maxk(args)])==mw.title.getCurrentTitle() --如果现在最后一项正好等于页面名
then cat=args[p.maxk(args)-1] end
if mw.title.makeTitle("Category",cat).nsText==mw.title.getCurrentTitle().nsText then cat="[[Category:"..cat.."]]" else cat="" end
for k,v in pairs(args) do
args[k]="[[:Category:"..v.."|"..v.."]]"
end
return tostring(mw.html.create("div"):addClass("catnav"):wikitext(mw.text.listToText(args," > "," > ")))..cat
end
function p.m(f) return p.catnav(f.args) end
function p.tf() return p.catnav(f:getParent().args) end
function p.l(f)
local result=''
for k,v in ipairs(f.args) do
result=result..tostring(k).."("..type(k)..")="..tostring(v).."("..type(v)..");<br>"
end
return result
end
p.n=function()return #mw.getCurrentFrame().args end
return p