Aller au contenu

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

De Wikiquestia
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 2 : Ligne 2 :


function p.depuis(frame)
function p.depuis(frame)
     local titre = frame.args["page"] or ""
     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)
     local page = mw.title.new(titre)
     if not page or not page.exists then
     if not page or not page.exists then
         return "Erreur : page inexistante."
         return "<span style='color:red;'>Erreur : la page '" .. titre .. "' n'existe pas.</span>"
     end
     end


     local contenu = page:getContent()
     local contenu = page:getContent()
     if not contenu then
     if not contenu then
         return "Erreur : contenu vide."
         return "<span style='color:red;'>Erreur : contenu inaccessible.</span>"
    end
 
    -- Recherche plus tolérante avec retours à la ligne
    local extrait = contenu:match("<!--%s*[eE][xX][tT][rR][aA][iI][tT]%s*-->%s*(.-)%s*<!--%s*/[eE][xX][tT][rR][aA][iI][tT]%s*-->")
 
    if not extrait then
        return "<span style='color:gray;'>Aucun extrait trouvé. Vérifie que tu as bien utilisé : &lt;!--extrait--&gt; et &lt;!--/extrait--&gt;</span>"
     end
     end


    -- Afficher le contenu brut pour diagnostic
     return mw.getCurrentFrame():preprocess(extrait)
     return "<pre>" .. mw.text.nowiki(contenu:sub(1, 2000)) .. "</pre>"
end
end


return p
return p

Version du 12 juillet 2025 à 18:29

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

    -- Recherche plus tolérante avec retours à la ligne
    local extrait = contenu:match("<!--%s*[eE][xX][tT][rR][aA][iI][tT]%s*-->%s*(.-)%s*<!--%s*/[eE][xX][tT][rR][aA][iI][tT]%s*-->")

    if not extrait then
        return "<span style='color:gray;'>Aucun extrait trouvé. Vérifie que tu as bien utilisé : &lt;!--extrait--&gt; et &lt;!--/extrait--&gt;</span>"
    end

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

return p