Difference between revisions of "Module:Asbox stubtree"

From blackwiki
Jump to navigation Jump to search
blackwiki>WOSlinker
blackwiki>WOSlinker
(exists)
Line 2: Line 2:
  
 
function i.exists(pagename)
 
function i.exists(pagename)
     return 1
+
    local t = mw.title.new(pagename, "Template")
 +
     return t.exists
 
end
 
end
  

Revision as of 20:14, 6 March 2013

This module is used by Module:Asbox to create stub hierarchy boxes for stub template documentations. It also implements {{asbox/stubtree}} and served the same function via {{Asbox/templatepage}} prior to being converted to Lua.

Acknowledgements

In addition to the contributors listed in the contribution histories of Template:Asbox stubtree and Module:Asbox stubtree, this module also implements ideas from the (soon to be) deleted Template:Asbox/templatepage, which primary authors are User:MSGJ and User:WOSlinker.



local i = {}

function i.exists(pagename)
    local t = mw.title.new(pagename, "Template")
    return t.exists
end

function i._subtree(pagename)
    local out = {"",pagename}
    local tt
    local temppage
    local temppageexists
    local r = 0
    local t = {}
    
    -- 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)
            r = 1
        end
    end
    table.remove(t, #t)

    while (#t > 1) do
        if r == 1 then
            r = 0
        else
            table.remove(t, 1)
            temppage = table.concat(t, "-") .. "-stub"
            temppageexists = i.exists(temppage)
            if temppageexists == 0 then
                --TODO
            end
        end
        table.insert(out,temppage)
    end

    return table.concat(out, "\n* ")
end

function i.subtree(frame)
    return i._subtree(frame.args["pagename"])
end

return i