Module:Documentation module
De Ekopedia
Utilisation
Fonctions exportables :
-
doc(frame)
– génère un entête de documentation s'adaptant au contexte :- depuis un module qui ne possède pas de sous-page de documentation : génère un message explicatif ainsi qu'un lien pour la création
- depuis un module qui possède une sous-page de documentation : génère un message explicatif ainsi que les liens vers la documentation
- depuis une sous-page de documentation d'un module : génère un message explicatif ainsi que les liens vers le module
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
-
mw.title
-- module contenant les fonctions permettant de gérer la documentation des modules local p = {} function p.erreur(texte) return '<span class="error">' .. (texte or "''aucune erreur indiquée''") .. "</span>" end -- test : 2 en 1. Fonction qui fait tout. function p.doc(frame) local res = "" -- le titre de la page local titre = mw.title.getCurrentTitle() local ttitre = titre.nsText .. ":" .. titre.text local doc local tdoc -- vérification : le module et sa doc sont dans l'espace module if (titre.nsText ~= "Module") then return p.erreur("Inclusion du module en dehors d'un module ou de sa page de documentation (NS=" .. titre.nsText .. ")") end -- si la page courante est un "/doc" on n'a pas le bon titre (celui de la doc) local mdl if (titre.subpageText == "Documentation" and titre.text ~= titre.subpageText) then -- c'est donc la page de doc mdl = false -- en fait ce qu'on a c'est la doc doc = titre tdoc = ttitre -- on récupère le title du module ttitre = doc.nsText .. ":" .. doc.baseText titre = mw.title.new(ttitre) else mdl = true -- on a bien le titre du module, on crée le titre de la doc tdoc = titre.nsText .. ":" .. titre.text .. "/Documentation" doc = mw.title.new(tdoc) end -- s'il n'y a pas de page de doc on fait juste un affichage proposant de le créer if (doc.id == 0 and mdl) then res = res .. '<div class="template-documentation" style="clear:both;margin: 1em 0 0 0;border:1px solid #aaa;background: #ecf0fc;padding:1em">' res = res .. '<div><span style="margin-bottom:0.5em; padding-left:2em; font-style:italic">' res = res .. "[[Fichier:Test Template Info-Icon.svg|50px|alt=Documentation du modèle|link=]] " res = res .. "La sous-page de documentation de ce [[Aide:Module|module]] n'existe pas. Vous pouvez la créer en " res = res .. '<span class="plainlinks">[' .. doc:fullUrl({ ["action"]="edit", ["preload"]="Modèle:Documentation/PreloadModule"}) res = res .. " suivant ce lien]</span>." res = res .. '</span></div></div>[[Catégorie:Module en langage Lua sans documentation|' .. titre.text .. ']]' return res -- rien d'autre à faire end -- on ouvre le grand div res = res .. '<div class="template-documentation" style="clear:both; margin: 1em 0 0 0; border:1px solid #aaa; background: #ecf0fc; padding:1em">' -- on ouvre le div "doc" res = res .. '<div style="margin-bottom:1ex; border-bottom:1px solid #aaa; padding-bottom:3px">' res = res .. '[[Fichier:Test Template Info-Icon.svg|50px|alt=Documentation du module|link=]] ' res = res .. ' <span style="font-weight:bold; font-size:125%">Documentation du module</span>' -- s'il n'y a pas de page de doc on fait juste un affichage proposant de le créer -- l'entête puisque la page existe res = res .. '<span id="doc_editlinks" class="mw-editsection plainlinks">' res = res .. '[[' .. doc:fullUrl("") .. ' voir]]' res = res .. ' [[' .. doc:fullUrl('action=edit') .. ' modifier]]' res = res .. ' [[' .. titre:fullUrl("action=purge") .. ' purger]]' res = res .. '</span></div>' -- fin de l'entête et on ferme le div "doc" if (mdl) then -- dans le module : on affiche un court message + liens, puis on laisse le contenu en transclusion res = res .. '<div style="margin-bottom:0.5em; padding-left:2em; font-style:italic">' res = res .. 'La documentation de ce [[Aide:Module|module]] est [[Aide:Inclusion|incluse]] depuis sa ' res = res .. '[[' .. tdoc .. '|sous-page de documentation]].</div>' return res -- c'est tout end end return p