Module:Asbox stubtree: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>WOSlinker (update) |
m (14 revisions imported) |
||
(6 intermediate revisions by one other user not shown) | |||
Line 18: | Line 18: | ||
local r = 0 | local r = 0 | ||
local t = {} | local t = {} | ||
local removeditem1 | local removeditem1 = "" | ||
local removeditem2 | local removeditem2 = "" | ||
-- split items on dash into table | -- split items on dash into table | ||
Line 44: | Line 44: | ||
temppageexists = i.exists(temppage) | temppageexists = i.exists(temppage) | ||
if temppageexists == true then | if temppageexists == true then | ||
table.insert(out,"[[" .. i.pcase(temppage) .. "]]") | table.insert(out,"[[Template:" .. temppage .. "|" .. i.pcase(temppage) .. "]]") | ||
else | else | ||
-- If template with first item does not exist, try removing last item | -- If template with first item does not exist, try removing last item | ||
Line 57: | Line 57: | ||
-- if exists then add first item back to list | -- if exists then add first item back to list | ||
table.insert(t,1,removeditem1) | table.insert(t,1,removeditem1) | ||
table.insert(out,"[[" .. i.pcase(temppage) .. "]]") | table.insert(out,"[[Template:" .. temppage .. "|" .. i.pcase(temppage) .. "]]") | ||
else | else | ||
-- if exists then add last item back to list | -- if exists then add last item back to list | ||
Line 68: | Line 68: | ||
finalresult = finalresult .. '<span title="This shows the hierarchy of the stub template in relation to other templates." style="font-size:125%; font-weight:bold;">Stub hierarchy</span>' | finalresult = finalresult .. '<span title="This shows the hierarchy of the stub template in relation to other templates." style="font-size:125%; font-weight:bold;">Stub hierarchy</span>' | ||
finalresult = finalresult .. table.concat(out, "\n* ") | finalresult = finalresult .. table.concat(out, "\n* ") | ||
finalresult = finalresult .. '\n* [[Template:Stub|Stub]]' | |||
finalresult = finalresult .. '\n</div>' | finalresult = finalresult .. '\n</div>' | ||
return finalresult | return finalresult |
Latest revision as of 04:27, 3 September 2020
Documentation for this module may be created at Module:Asbox stubtree/doc
local i = {} function i.exists(pagename) local t = mw.title.new(pagename, "Template") 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 = table.concat(t, "-") .. "-stub" temppageexists = i.exists(temppage) if temppageexists == true then table.insert(out,"[[Template:" .. 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 = removeditem1 .. "-" .. table.concat(t, "-") .. "-stub" if #t == 0 then temppage = removeditem1 .. "-stub" 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,"[[Template:" .. 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="This shows the hierarchy of the stub template in relation to other templates." style="font-size:125%; font-weight:bold;">Stub hierarchy</span>' finalresult = finalresult .. table.concat(out, "\n* ") finalresult = finalresult .. '\n* [[Template:Stub|Stub]]' finalresult = finalresult .. '\n</div>' return finalresult end function i.subtree(frame) return i._subtree(frame.args["pagename"]) end return i