Module:Documentation
--Ce module implémente le modèle Modèle:Méta documentation de modèle.
local p = {}
local TableBuilder = require('Module:TableBuilder')
function p.corps(frame)
args = frame:getParent().args local page = mw.title.getCurrentTitle() doc = p.docname(page) tab = TableBuilder.new()
--Bandeau pour les sous-pages /Bac à sable if page.subpageText == 'Bac à sable' then
tab.insert('
.insert(frame:preprocess('Modèle:Sous-page de bac à sable'))
end
--Génération de la documentation
p.entete(page)
p.contenu(frame, page)
p.notice(page)
return tab.concat()
end
function p.docname(page)
--On n'est pas dans une sous-page
if not page.isSubpage then return page.subjectNsText .. ":" .. page.text .. "/Documentation" end
--On est dans une sous-page
if page.subpageText == 'Documentation'
or page.subpageText == 'Bac à sable'
or page.subpageText == 'Test' then
return page.subjectNsText .. ":" .. page.baseText .. "/Documentation"
else
return page.subjectNsText .. ":" .. page.text .. "/Documentation"
end
end
function p.ifexist(page)
if not page or not mw.title.new(page).exists then return false end return true
end
function p.entete(page)
tab.insert(' .insert('Erreur lors de la création de la vignette : ')
.insert(' ')
if args.titre then tab.insert(args.titre)
else tab.insert('Documentation') end
tab.insert('')
if not args.contenu then
local arg = mw.title.new(args[1] or doc)
tab.insert('[[')
if args[1] and p.ifexist(args[1]) or p.ifexist(doc) then
tab.insert(arg:fullUrl('action=edit'))
.insert(' modifier')
else
tab.insert(arg:fullUrl({["action"]="edit", ["preload"]="Modèle:Documentation/Preload"}))
.insert(' créer')
end
tab.insert(']] [[')
tab.insert(page:fullUrl('action=purge') .. ' purger]')
.insert(']')
end
tab.insert('return tab.concat()
end
function p.contenu(frame, page)
local arg = args[1] or doc
if args.contenu then
tab.insert('\n')
.insert(args.contenu)
else
tab.insert(frame:preprocess(''))
.insert('\n')
if args[1] and p.ifexist(args[1]) or p.ifexist(doc) then
tab.insert(frame:preprocess('Modèle:' .. arg .. ''))
end
end
tab.insert('\n')
.insert(frame:preprocess(''))
.insert('return tab.concat()
end
function p.notice(page)
local arg = mw.title.new(args[1] or doc) if args.contenu thentab.insert('
\n')
if args.notice then
tab.insert(args.notice)
else
tab.insert('La documentation de ce ')
.insert('modèle est directement incluse ')
.insert('dans le corps de ce dernier. [')
.insert(page:fullUrl('action=purge'))
.insert(' Cliquez ici pour purger le cache].')
.insert('
Si cette page est protégée, ')
.insert('veuillez transférer le contenu de la documentation vers sa [')
.insert(arg:fullUrl({["action"]="edit", ["preload"]="Modèle:Documentation/Preload"}))
.insert(' sous-page dédiée].')
end
else
if args[1] and p.ifexist(args[1]) or p.ifexist(doc) then
tab.insert('
')
.insert('La documentation de ce ')
.insert('modèle est incluse depuis sa [[')
.insert(tostring(arg) .. '|sous-page de documentation]]')
.insert(' ([')
.insert(arg:fullUrl('action=edit'))
.insert(' modifier] | [')
.insert(arg:fullUrl('action=history') .. ' historique]).
')
else
tab.insert('
')
end
tab.insert('Les éditeurs peuvent travailler dans le ')
local bacasable = arg.subjectNsText .. ":" .. arg.baseText .. "/Bac à sable"
local argbacasable = mw.title.new(bacasable)
if p.ifexist(bacasable) then
tab.insert('bac à sable')
.insert(' ([')
.insert(argbacasable:fullUrl('action=edit'))
.insert(' modifier])')
else
tab.insert('bac à sable ([')
.insert(argbacasable:fullUrl({["action"]="edit", ["preload"]="Modèle:Documentation/Preload2"}))
.insert(' créer])')
end
tab.insert(' et la page de ')
local test = arg.subjectNsText .. ":" .. arg.baseText .. "/Test"
local argtest = mw.title.new(test)
if p.ifexist(test) then
tab.insert('test')
.insert(' ([')
.insert(argtest:fullUrl('action=edit'))
.insert(' modifier])')
else
tab.insert('test ([')
.insert(argtest:fullUrl({["action"]="edit", ["preload"]="Modèle:Documentation/Preload3"}))
.insert(' créer])')
end
tab.insert('.
Veuillez placer les catégories dans la sous-page ')
.insert('[')
if args[1] and p.ifexist(args[1]) or p.ifexist(doc) then
tab.insert(arg:fullUrl('action=edit'))
else
tab.insert(arg:fullUrl({["action"]="edit", ["preload"]="Modèle:Documentation/Preload"}))
end
tab.insert(' /Documentation].')
end
tab.insert('
return tab.concat()
end
return p