Module:Ttt

From Wikipedia
a > b > c > d
a > b > c > d
a > b > c > d

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