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('') .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(']') endtab.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