Modul:Asbox stubtree/peskovnik
Videz
Mogoče bi radi ustvarili dokumentacijsko stran za ta Scribunto modul Urejevalci lahko preizkušate ta modul v peskovniku (ustvari | mirror) in testnihprimerih (ustvari). Prosimo, da dodate kategorije v /dok podstran. Podstrani te predloge. |
local i = {}
function i.exists(pagename)
local t = mw.title.new(pagename, "Predloga")
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.insert(out,"TEST hashT 1= " .. t[1])
-- table.insert(out,"TEST hashT 2= " .. t[2])
-- table.insert(out,"TEST hashT 3= " .. t[3])
-- table.insert(out,"TEST hashT 4= " .. t[4])
-- table.insert(out,"TEST hashT last #= " .. #t .. " " .. t[#t])
while (#t > 2) do
-- table.insert(out,"TEST while (#t > 1) = " .. #t .. " " .. t[#t] .. " r= " .. r)
if r == 1 then
r = 0
else
-- Remove last item from list
-- table.insert(out,"TEST remove last " .. #t .. " " .. t[#t] .. " r= " .. r)
removeditem1 = t[#t]
table.remove(t, #t)
-- table.insert(out,"TEST new last = " .. #t .. " " .. t[#t] .. " r= " .. r)
end
temppage = table.concat(t, "-")
-- table.insert(out,"[[Predloga:" .. temppage .. "|t" .. i.pcase(temppage) .. "]]")
temppageexists = i.exists(temppage)
if temppageexists == true then
table.insert(out,"[[Predloga:" .. 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, "-")
if #t == 0 then
temppage = 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,"[[Predloga:" .. temppage .. "|" .. i.pcase(temppage) .. "]]")
else
-- if exists then add last item back to list
-- table.insert(out,"[[Predloga:" .. temppage .. "|c" .. i.pcase(temppage) .. "]]")
-- 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="To prikazuje hierarhijo predloge za škrbino in povezavo z drugimi predlogami." style="font-size:125%; font-weight:bold;">Hierarhija škrbine</span>'
finalresult = finalresult .. table.concat(out, "\n* ")
finalresult = finalresult .. '\n* [[Predloga:Škrbina|Škrbina]]d'
finalresult = finalresult .. '\n</div>'
return finalresult
end
function i.subtree(frame)
return i._subtree(frame.args["pagename"])
end
return i