Módulo:Asbox árvore esboços

Fonte: Enciclopédia de conhecimento da Igreja de Deus
Saltar para a navegação Saltar para a pesquisa

A documentação para este módulo pode ser criada na página Módulo:Asbox árvore esboços/doc

local i = {}
function i.exists(pagename)
				local t = mw.title.new(pagename, "Predefinição")
				return t.exists
end
function i.pcase(word)
			return mw.ustring.upper(mw.ustring.sub(word,1,1)) .. mw.ustring.sub(word,2)
end
function i._subtree(pagename)
				local finalresult
				local out = {"",pagename}
				local tt
				local temppage
				local temppageexists
				local r = 0
				local t = {}
				local removeditem1 = ""
				local removeditem2 = ""
				
				-- split items on dash into table
				for token in mw.ustring.gmatch(pagename, "[^-]+") do
								-- don't add numbered items to list
								if tonumber(mw.ustring.sub(token,1,1)) == nil then
												table.insert(t,token)
								else
												r = 1
								end
				end
				table.remove(t, #t)
				while (#t > 1) do
								if r == 1 then
												r = 0
								else
												-- Remove 1st item from list
												removeditem1 = t[1]
												table.remove(t, 1)
								end
								temppage = "esboço-" .. table.concat(t, "-")
								temppageexists = i.exists(temppage)
								if temppageexists == true then
												table.insert(out,"[[Predefinição:" .. temppage .. "|" .. i.pcase(temppage) .. "]]")
								else
												-- If template with first item does not exist, try removing last item
												removeditem2 = t[#t]
												table.remove(t, #t)
												temppage = "esboço-" .. table.concat(t, "-") .. "-" .. removeditem1
												if #t == 0 then
																temppage = "esboço-" .. removeditem1
												end
												temppageexists = i.exists(temppage)
												if temppageexists == true then
																-- if exists then add first item back to list
																table.insert(t,1,removeditem1)
																table.insert(out,"[[Predefinição:" .. temppage .. "|" .. i.pcase(temppage) .. "]]")
												else
																-- if exists then add last item back to list
																table.insert(t,removeditem2)
												end
								end
				end
				finalresult = '<div style="float:right; border-style:dotted; border-width:2px; padding:5px; margin:5px;">'
				finalresult = finalresult .. '<span title="Isto apresenta a hierarquia da predefinição de esboço em relação a outras predefinições." style="font-size:125%; font-weight:bold;">Hierarquia de esboço</span>'
				finalresult = finalresult .. table.concat(out, "\n* ")
				finalresult = finalresult .. '\n* [[Predefinição:Esboço|Esboço]]'
				finalresult = finalresult .. '\n</div>'
				return finalresult
end
function i.subtree(frame)
				return i._subtree(frame.args["pagename"] or frame.args["nome da página"])
end
return i