Module:Hexasoft-test

From Wikipedia

Documentation page : view / edit


This is a wikified documentation.

  • yes
  • really.

-- empty: can be removed
-- test: the title librairy

local p = {}


function p.text(frame)
    local ret
    
    ret = "mw.text.listToText( { 1, 2, 3, 4, 5 }, '; ', ' or ' ) : "
    
    ret = ret .. mw.text.listToText( { 1, 2, 3, 4, 5 }, '; ', ' or ' )
    ret = ret .. "<br/><br/>"
    
    ret = ret .. "unstrip " .. frame.args[1] .. " (" .. string.len(frame.args[1]) .. ") : "
    local tmp = mw.text.unstrip(frame.args[1])
    ret = ret .. tmp .. " (" .. string.len(tmp) .. ")<br/><br/>"
    tmp = mw.ustring.gsub(tmp, "bl[ai]", "BLAS")
    ret = ret .. tmp .. " (" .. string.len(tmp) .. ")<br/><br/>"
    
    return ret
end



-- dump a table content, with formating
function p.dump(tbl, name, dec)
    if (tbl == nil or type(tbl) ~= "table") then
        return "Table ''" .. (name or "<nil>") .. "'' is invalid.<br/>"
    end
    -- limit depth
    if (dec > 3) then
        return ""
    end


    local res = ""
    if (name ~= nil) then
        res = res .. "Table ''" .. name .. "'' content:\n"
    end

    -- just check all content, first the functions, then anything but tables, then table
    for k, v in pairs(tbl) do -- functions
        if (type(v) == "function") then
            res = res .. string.rep("*", dec)
            res = res .. k .. " (" .. type(v) .. "): " .. (tostring(v or "<nil>")) .. "\n"
        end
    end
    for k, v in pairs(tbl) do -- not functions and tables
        if (type(v) ~= "function" and type(v) ~= "table") then
            res = res .. string.rep("*", dec)
            res = res .. k .. " (" .. type(v) .. "): " .. (tostring(v or "<nil>")) .. "\n"
        end
    end
    for k, v in pairs(tbl) do -- only tables
        if (type(v) == "table") then
            res = res .. string.rep("*", dec)
            res = res .. k .. " (" .. type(v) .. "): " .. (tostring(v or "<nil>")) .. "\n"
            -- a table, we recursively treat what's inside it
            res = res .. p.dump(v, nil, dec+1)
        end
    end
    return res
end


function p.test(frame)
    local res = ""
    local title = mw.title.getCurrentTitle()
    
    res = res .. "Titre :<br/>* id : " .. title.id .. "<br/>"
    res = res .. "* titre : " .. title.prefixedText .. "<br/>"
    res = res .. "* ns : " .. title.nsText .. "<br/>"
    res = res .. "* ns (int) : " .. title.namespace .. "<br/>"
    res = res .. "* contentModel : " .. title.contentModel .. "<br/><br/>"

    res = res .. ">>>>>>>><br/>"
    
    if (title.getContent ~= nil) then
        res = res .. title:getContent()
    else
        res = res .. "title.getContent() non présent.<br/>"
    end

    res = res .. "<br/><<<<<<<<<br/>"

    -- test "ifexist"
    local nt = mw.title.new("Uroplatus guentheri", 0)
    if (nt == nil) then
        res = res .. "Erreur création titre.<br/>"
    else
        if (nt.id ~= 0) then
            res = res .. "L'article [[Uroplatus guentheri]] existe.<br/>"
        else
            res = res .. "L'article [[Uroplatus guentheri]] n'existe pas.<br/>"
        end
    end
    local nt = mw.title.new("Uroplatus guentherixxx", 0)
    if (nt == nil) then
        res = res .. "Erreur création titre.<br/>"
    else
        if (nt.id ~= 0) then
            res = res .. "L'article [[Uroplatus guentherixxx]] existe.<br/>"
        else
            res = res .. "L'article [[Uroplatus guentherixxx]] n'existe pas.<br/>"
        end
    end
    
    -- test site.stats
    res = res .. "Stats : " .. mw.site.stats.pages .. " pages sur le wiki, dont " .. mw.site.stats.articles .. " articles, avec " .. mw.site.stats.activeUsers .. " utilisateurs actifs.<br/><br/>"
    
    if (mw.text ~= nil) then
        res = res .. "mw.text est présent.<br/>"
    else
        res = res .. "mw.text n'est pas présent.<br/>"
    end
    
    -- test : check mw content
    res = res .. p.dump(mw, "mw", 1)

    
    return res
end




return p