Module:Documentation module
Apparence
[voir] [modifier] [historique] [purger]
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
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- 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 == "doc") 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 .. "/doc"
doc = mw.title.new(tdoc)
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;padding-bottom:3px">'
-- 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 .. "[[Fichier:Template-info.png|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 .. "<hr />" -- séparateur
res = res .. "</span></div></div>[[Catégorie:Module en langage Lua sans documentation|" .. titre.text .. "]]"
return res -- rien d'autre à faire
end
-- l'entête puisque la page existe
res = res .. '[[Fichier:Template-info.png|50px|alt=Documentation du modèle|link=]]'
res = res .. ' <span style="font-weight:bold;font-size:125%">Documentation</span>'
res = res .. '<span id="doc_editlinks" class="editsection plainlinks">[[' .. doc:fullUrl("action=edit") .. " modifier]]"
res = res .. ' [<span class="plainlinks">[' .. titre:fullUrl("action=purge") .. " purger]</span>]</span>"
res = res .. '<hr />' -- séparateur
if (not mdl) then
-- on a besoin du titre du module
titre = mw.title.new(tdoc)
-- dans la page de doc : on affiche un message d'explication et on ferme tout
res = res .. "''Ceci est la page de documentation du [[Aide:Module|module]] dont le code est dans la page "
res = res .. "'''[[" .. ttitre .. "]]''' <small>" .. '<span class="plainlinks">'
res = res .. "([" .. titre:fullUrl("action=history") .. " historique])</span></small>''<br/>"
res = res .. "<small>''Cette page n’est pas destinée à être visualisée directement. "
res = res .. "Les liens utilisant des [[Aide:Liste_des_modèles_spéciaux#var|pseudo-variables]] peuvent "
res = res .. "paraître rompus (en rouge) ; ne pas les remplacer par des noms de pages codés en dur ni des [[Uniform Resource Locator|URL]].''</small>"
-- on ferme les div
res = res .. "</div></div>"
return res -- c'est tout
else
-- dans le module : on affiche un court message+liens puis on laisse le contenu en transluction
res = res .. "''La documentation de ce [[Aide:Module|module]] est [[Aide:Inclusion|incluse]] depuis sa "
res = res .. "[[" .. tdoc .. "|sous-page de documentation]]''.<br />"
-- on ferme *le* div (le reste reste ouvert)
res = res .. "</div>"
return res -- c'est tout
end
end
return p