« Module:Documentation » : différence entre les versions
utilisation de mw.title pour docname() |
Aucun résumé des modifications |
||
| Ligne 6 : | Ligne 6 : | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local corps = {} | local corps = {} | ||
--Bandeau pour les sous-pages /Bac à sable | --Bandeau pour les sous-pages /Bac à sable | ||
if | if mw.title.getCurrentTitle().subpageText == 'Bac à sable' then | ||
table.insert(corps, '<div style="clear:both />') | table.insert(corps, '<div style="clear:both />') | ||
table.insert(corps, frame:preprocess('{{Sous-page de bac à sable}}')) | table.insert(corps, frame:preprocess('{{Sous-page de bac à sable}}')) | ||
| Ligne 24 : | Ligne 24 : | ||
return table.concat(corps) | return table.concat(corps) | ||
end | end | ||
| Ligne 95 : | Ligne 95 : | ||
table.insert(entete, ']</span>') | table.insert(entete, ']</span>') | ||
end | end | ||
table.insert(entete, '</div>') | table.insert(entete, '</div>') | ||
return table.concat(entete) | return table.concat(entete) | ||
| Ligne 119 : | Ligne 119 : | ||
table.insert(contenu, frame:preprocess('\n<nowiki /><div style="clear:both" />\n')) | table.insert(contenu, frame:preprocess('\n<nowiki /><div style="clear:both" />\n')) | ||
return table.concat(contenu) | return table.concat(contenu) | ||
end | end | ||
function p.notice(frame, args) | function p.notice(frame, args) | ||
local notice = {} | local notice = {} | ||
if args.contenu then | if args.contenu then | ||
table.insert(notice, '<div class="plainlinks" style="border-top:1px solid #aaa; margin: 1em 0 0;">') | table.insert(notice, '<div class="plainlinks" style="border-top:1px solid #aaa; margin: 1em 0 0;">') | ||
table.insert(notice, '<p style="margin-bottom:0; padding-left:1em; font-style:italic;">\n') | table.insert(notice, '<p style="margin-bottom:0; padding-left:1em; font-style:italic;">\n') | ||
if args.notice then | if args.notice then | ||
table.insert(notice, args.notice) | table.insert(notice, args.notice) | ||
| Ligne 145 : | Ligne 145 : | ||
table.insert(notice, 'La [[Aide:Comment documenter un modèle ?|documentation]] de ce ') | table.insert(notice, 'La [[Aide:Comment documenter un modèle ?|documentation]] de ce ') | ||
table.insert(notice, '[[Aide:Modèle|modèle]] est [[Aide:Inclusion|incluse]] depuis sa ') | table.insert(notice, '[[Aide:Modèle|modèle]] est [[Aide:Inclusion|incluse]] depuis sa ') | ||
if args[1] then | if args[1] then | ||
table.insert(notice, '[[' .. args[1] .. '|sous-page de documentation]]') | table.insert(notice, '[[' .. args[1] .. '|sous-page de documentation]]') | ||
| Ligne 151 : | Ligne 151 : | ||
table.insert(notice, '[[' .. p.docname(frame) .. '|sous-page de documentation]]') | table.insert(notice, '[[' .. p.docname(frame) .. '|sous-page de documentation]]') | ||
end | end | ||
table.insert(notice, ' <span style="font-size:89%; font-style:normal;">(') | table.insert(notice, ' <span style="font-size:89%; font-style:normal;">(') | ||
table.insert(notice, '[{{fullurl:') | table.insert(notice, '[{{fullurl:') | ||
| Ligne 170 : | Ligne 170 : | ||
end | end | ||
table.insert(notice, 'Les éditeurs peuvent travailler dans le ') | table.insert(notice, 'Les éditeurs peuvent travailler dans le ') | ||
if args[1] and p.ifexist(frame:preprocess('{{#rel2abs:' .. args[1] .. '/../Bac à sable}}')) | if args[1] and p.ifexist(frame:preprocess('{{#rel2abs:' .. args[1] .. '/../Bac à sable}}')) | ||
or p.ifexist(frame:preprocess('{{#rel2abs:' .. p.docname(frame) .. '/../Bac à sable}}')) then | or p.ifexist(frame:preprocess('{{#rel2abs:' .. p.docname(frame) .. '/../Bac à sable}}')) then | ||
| Ligne 200 : | Ligne 200 : | ||
end | end | ||
table.insert(notice, ' et la page de ') | table.insert(notice, ' et la page de ') | ||
if args[1] and p.ifexist(frame:preprocess('{{#rel2abs:' .. args[1] .. '/../Test}}')) | if args[1] and p.ifexist(frame:preprocess('{{#rel2abs:' .. args[1] .. '/../Test}}')) | ||
or p.ifexist(frame:preprocess('{{#rel2abs:' .. p.docname(frame) .. '/../Test}}')) then | or p.ifexist(frame:preprocess('{{#rel2abs:' .. p.docname(frame) .. '/../Test}}')) then | ||
| Ligne 239 : | Ligne 239 : | ||
end | end | ||
table.insert(notice, '|action=edit') | table.insert(notice, '|action=edit') | ||
else | else | ||
if args[1] then | if args[1] then | ||
Version du 22 juillet 2013 à 17:37
--Ce module implemente le modèle Modèle:Méta documentation de modèle.
local p = {}
function p.corps(frame)
local args = frame:getParent().args
local corps = {}
--Bandeau pour les sous-pages /Bac à sable if mw.title.getCurrentTitle().subpageText == 'Bac à sable' then
table.insert(corps, '
table.insert(corps, frame:preprocess('Modèle:Sous-page de bac à sable'))
end
--Génération de la documentation table.insert(corps, frame:preprocess(p.entete(frame, args))) table.insert(corps, p.contenu(frame, args)) table.insert(corps, frame:preprocess(p.notice(frame, args)))
--Code HTML brut
if args.raw then
return frame:preprocess('' .. table.concat(corps) .. '')
end
return table.concat(corps)
end
function p.ifexist(page)
if not page then return false end if mw.title.new(page).exists then return true end return false
end
function p.docname(frame)
local page = mw.title.getCurrentTitle()
if not page.isSubpage then
--On n'est pas dans une sous-page
return page.subjectNsText .. ":" .. page.text .. "/Documentation"
else
--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
end
function p.entete(frame, args)
local entete = {'table.insert(entete, '') table.insert(entete, ' ')
if args.titre then
table.insert(entete, args.titre)
else
table.insert(entete, 'Documentation')
end
table.insert(entete, '')
if not args.contenu then
table.insert(entete, '[[')
table.insert(entete, '{{fullurl:')
if args[1] then
if p.ifexist(args[1]) then
table.insert(entete, args[1])
table.insert(entete, '|action=edit modifier}}]] [Modèle:Purger le cache')
else
table.insert(entete, args[1])
table.insert(entete, '|action=edit&preload=Modèle:Documentation/Preload créer}}]')
end
else
if p.ifexist(p.docname(frame)) then
table.insert(entete, p.docname(frame))
table.insert(entete, '|action=edit modifier}}]] [Modèle:Purger le cache')
else
table.insert(entete, p.docname(frame))
table.insert(entete, '|action=edit&preload=Modèle:Documentation/Preload créer}}]')
end
end
table.insert(entete, ']')
end
table.insert(entete, 'return table.concat(entete)
end
function p.contenu(frame, args)
local contenu = {}
if args.contenu then
table.insert(contenu, '\n')
table.insert(contenu, args.contenu)
else
table.insert(contenu, frame:preprocess('\n'))
--Évite toute récursion
if args[1]
and frame:preprocess('Module:Documentation') ~= frame:preprocess()
and p.ifexist(args[1]) then
table.insert(contenu, frame:preprocess('{{' .. args[1] .. '}}'))
elseif frame:preprocess('Module:Documentation') ~= frame:preprocess('%27_.._p.docname(frame)_.._%27')
and p.ifexist(p.docname(frame)) then
table.insert(contenu, frame:preprocess('Modèle:' .. p.docname(frame) .. ''))
end
end
table.insert(contenu, frame:preprocess('\nreturn table.concat(contenu)
end
function p.notice(frame, args)
local notice = {}
if args.contenu thentable.insert(notice, '
\n')
if args.notice then
table.insert(notice, args.notice)
else
table.insert(notice, 'La documentation de ce modèle ')
table.insert(notice, 'est directement incluse dans le corps de ce dernier.
')
table.insert(notice, 'Si cette page est protégée, veuillez transférer le contenu de la documentation vers sa ')
table.insert(notice, '[{{fullurl:' .. p.docname(frame))
table.insert(notice, '|action=edit&preload=Modèle:Documentation/Preload sous-page dédiée}}].')
end
else
if args[1] and p.ifexist(args[1]) or p.ifexist(p.docname(frame)) then
table.insert(notice, '
')
table.insert(notice, 'La documentation de ce ')
table.insert(notice, 'modèle est incluse depuis sa ')
if args[1] then
table.insert(notice, '[[' .. args[1] .. '|sous-page de documentation]]')
else
table.insert(notice, 'sous-page de documentation')
end
table.insert(notice, ' (')
table.insert(notice, '[{{fullurl:')
if args[1] then
table.insert(notice, args[1] .. '|action=edit}} modifier]')
table.insert(notice, ' | [{{fullurl:')
table.insert(notice, args[1] .. '|action=history}} historique]')
else
table.insert(notice, p.docname(frame) .. '|action=edit}} modifier]')
table.insert(notice, ' | [{{fullurl:')
table.insert(notice, p.docname(frame) .. '|action=history}} historique]')
end
table.insert(notice, ').
')
else
table.insert(notice, '
')
end
table.insert(notice, 'Les éditeurs peuvent travailler dans le ')
if args[1] and p.ifexist(frame:preprocess('Bac à sable'))
or p.ifexist(frame:preprocess('Bac à sable')) then
table.insert(notice, 'bac à sable')
table.insert(notice, ' (')
table.insert(notice, 'modifier)')
else
table.insert(notice, 'bac à sable (')
table.insert(notice, 'créer')
table.insert(notice, ')')
end
table.insert(notice, ' et la page de ')
if args[1] and p.ifexist(frame:preprocess('Test'))
or p.ifexist(frame:preprocess('Test')) then
table.insert(notice, 'test')
table.insert(notice, ' (')
table.insert(notice, 'modifier)')
else
table.insert(notice, 'test (')
table.insert(notice, 'créer')
table.insert(notice, ')')
end
table.insert(notice, '.
Veuillez placer les catégories dans la sous-page ')
table.insert(notice, '[')
table.insert(notice, '{{fullurl:')
if args[1] and p.ifexist(args[1]) or p.ifexist(p.docname(frame)) then
if args[1] then
table.insert(notice, args[1])
else
table.insert(notice, p.docname(frame))
end
table.insert(notice, '|action=edit')
else
if args[1] then
table.insert(notice, args[1])
else
table.insert(notice, p.docname(frame))
end
table.insert(notice, '|action=edit&preload=Modèle:Documentation/Preload')
end
table.insert(notice, ' /Documentation}}].')
end
table.insert(notice, '
return table.concat(notice)
end
return p