Aller au contenu

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

De Wikiquestia
Page créée avec « -- Module:ExtraitArticle local p = {} function p.depuis(frame) -- Récupère le titre de la page passée en paramètre local titre = frame.args["page"] if not titre or titre == "" then return "<span style='color:red;'>Erreur : aucun titre de page fourni.</span>" end -- Convertit le titre en objet page local page = mw.title.new(titre) if not page or not page.exists then return "<span style='color:red;'>Erreur : la page... »
 
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
-- Module:ExtraitArticle
local p = {}
local p = {}


function p.depuis(frame)
function p.depuis(frame)
    -- Récupère le titre de la page passée en paramètre
     local titre = frame.args["page"]
     local titre = frame.args["page"]
     if not titre or titre == "" then
     if not titre or titre == "" then
         return "<span style='color:red;'>Erreur : aucun titre de page fourni.</span>"
         return "<span style='color:red;'>Erreur : aucun titre fourni.</span>"
     end
     end


    -- Convertit le titre en objet page
     local page = mw.title.new(titre)
     local page = mw.title.new(titre)
     if not page or not page.exists then
     if not page or not page.exists then
Ligne 15 : Ligne 12 :
     end
     end


    -- Récupère le contenu brut de la page
     local contenu = page:getContent()
     local contenu = page:getContent()
     if not contenu then
     if not contenu then
         return "<span style='color:red;'>Erreur : impossible de lire le contenu de la page.</span>"
         return "<span style='color:red;'>Erreur : contenu inaccessible.</span>"
     end
     end


     -- Extrait le bloc entre <!--extrait--> et <!--/extrait-->
     -- Extraction
     local extrait = contenu:match("<!--%s*extrait%s*-->(.-)<!--%s*/extrait%s*-->")
     local extrait = contenu:match("<!--%s*extrait%s*-->(.-)<!--%s*/extrait%s*-->")
     if not extrait then
     if not extrait then
Ligne 27 : Ligne 23 :
     end
     end


    -- Retourne le texte extrait, avec interprétation wikitexte
     return mw.getCurrentFrame():preprocess(extrait)
     return mw.getCurrentFrame():preprocess(extrait)
end
end


return p
return p

Version du 12 juillet 2025 à 18:21

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

local p = {}

function p.depuis(frame)
    local titre = frame.args["page"]
    if not titre or titre == "" then
        return "<span style='color:red;'>Erreur : aucun titre fourni.</span>"
    end

    local page = mw.title.new(titre)
    if not page or not page.exists then
        return "<span style='color:red;'>Erreur : la page '" .. titre .. "' n'existe pas.</span>"
    end

    local contenu = page:getContent()
    if not contenu then
        return "<span style='color:red;'>Erreur : contenu inaccessible.</span>"
    end

    -- Extraction
    local extrait = contenu:match("<!--%s*extrait%s*-->(.-)<!--%s*/extrait%s*-->")
    if not extrait then
        return "<span style='color:gray;'>Aucun extrait trouvé dans la page.</span>"
    end

    return mw.getCurrentFrame():preprocess(extrait)
end

return p