« Module:RemovePrefix » : différence entre les versions

De wikiviefr
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


function p.listPages(frame)
-- Fonction principale appelée par #invoke
     local category = frame.args.category or ""
function p.removePrefix(frame)
     local prefix = frame.args.prefix or ""
     local args = frame:getParent().args
    local categoryObj = mw.site.categories[category]
    local category = args.category or ""
     local prefix = args.prefix or ""


     if not categoryObj then
    -- Vérifier si la catégorie existe
         return "La catégorie n'existe pas ou est vide."
     if category == "" then
         return "Erreur : aucune catégorie spécifiée."
     end
     end


     local result = "{| class='wikitable sortable'\n|+ Liste des pages sans préfixe\n! Nom de la page\n"
    -- Récupère les pages de la catégorie via Scribunto
     local success, pages = pcall(mw.site.getAllPagesInCategory, mw.site, category)
    if not success then
        return "Erreur : impossible de récupérer les pages de la catégorie."
    end


     for page in categoryObj:pages() do
    -- Préparer la liste des pages sans le préfixe
    local results = {}
     for _, page in ipairs(pages) do
         local title = page.title
         local title = page.title
         if prefix ~= "" and title:sub(1, #prefix) == prefix then
         if title:find("^" .. prefix) then
             title = title:sub(#prefix + 1) -- Supprimer le préfixe
             title = title:gsub("^" .. prefix, "")
         end
         end
         result = result .. "|-\n| [[" .. page.title .. "|" .. title .. "]]\n"
         table.insert(results, "* [[" .. page.fullText .. "|" .. title .. "]]")
     end
     end


     result = result .. "|}"
     -- Retourne la liste formatée
    return result
    return table.concat(results, "\n")
end
end


return p
return p

Version du 22 décembre 2024 à 13:43

La documentation pour ce module peut être créée à Module:RemovePrefix/doc

local p = {}

-- Fonction principale appelée par #invoke
function p.removePrefix(frame)
    local args = frame:getParent().args
    local category = args.category or ""
    local prefix = args.prefix or ""

    -- Vérifier si la catégorie existe
    if category == "" then
        return "Erreur : aucune catégorie spécifiée."
    end

    -- Récupère les pages de la catégorie via Scribunto
    local success, pages = pcall(mw.site.getAllPagesInCategory, mw.site, category)
    if not success then
        return "Erreur : impossible de récupérer les pages de la catégorie."
    end

    -- Préparer la liste des pages sans le préfixe
    local results = {}
    for _, page in ipairs(pages) do
        local title = page.title
        if title:find("^" .. prefix) then
            title = title:gsub("^" .. prefix, "")
        end
        table.insert(results, "* [[" .. page.fullText .. "|" .. title .. "]]")
    end

    -- Retourne la liste formatée
    return table.concat(results, "\n")
end

return p