« Module:Documentation » : différence entre les versions

De Lagny-sur-Marne Wiki
Aller à la navigation Aller à la recherche
0x010D (discussion | contributions)
non malheureusement
0x010D (discussion | contributions)
utilisation de mw.title pour p.entete()
Ligne 4 : Ligne 4 :


function p.corps(frame)
function p.corps(frame)
     local args = frame:getParent().args
     args = frame:getParent().args
     local page = mw.title.getCurrentTitle()
     local page = mw.title.getCurrentTitle()
    doc = p.docname(page)
     local corps = {}
     local corps = {}


Ligne 48 : Ligne 49 :
end
end


function p.entete(frame, args, page)
function p.entete(page)
     local entete = {'<div style="clear:both; margin:1em 0 0 0; border:1px solid #aaa; background:'}
     local entete = {'<div style="clear:both; margin:1em 0 0 0; border:1px solid #aaa; background:'}
    local doc = p.docname(page)


     if not args.couleur then
     if not args.couleur then table.insert(entete, '#ecfcf4')
        table.insert(entete, '#ecfcf4')
     else table.insert(entete, args.couleur) end
     else
        table.insert(entete, args.couleur)
    end


     table.insert(entete, '; padding:1em 1em 0.8em;">')
     table.insert(entete, '; padding:1em 1em 0.8em;">')
Ligne 63 : Ligne 60 :
     table.insert(entete, '<span style="font-weight:bold; font-size:125%">&nbsp;')
     table.insert(entete, '<span style="font-weight:bold; font-size:125%">&nbsp;')


     if args.titre then
     if args.titre then table.insert(entete, args.titre)
        table.insert(entete, args.titre)
     else table.insert(entete, 'Documentation') end
     else
        table.insert(entete, 'Documentation')
    end
     table.insert(entete, '</span>')
     table.insert(entete, '</span>')


     if not args.contenu then
     if not args.contenu then
         table.insert(entete, '<span id="doc_editlinks" class="mw-editsection plainlinks">&#91;[')
         table.insert(entete, '<span class="mw-editsection plainlinks">&#91;[')
         table.insert(entete, '{{fullurl:')
         local arg = mw.title.new(args[1] or doc)


         if args[1] then
         if args[1] and p.ifexist(args[1]) or p.ifexist(doc) then
            if p.ifexist(args[1]) then
            table.insert(entete, arg:fullUrl('action=edit') .. ' modifier]')
                table.insert(entete, args[1])
            table.insert(entete, '&#93;&#32;&#91;[')
                table.insert(entete, '|action=edit modifier}}]&#93;&#32;&#91;{{Purger le cache|purger}}')
             table.insert(entete, page:fullUrl('action=purge') .. ' purger]')
             else
                table.insert(entete, args[1])
                table.insert(entete, '|action=edit&preload=Modèle:Documentation/Preload créer}}]')
            end
         else
         else
             if p.ifexist(doc) then
             table.insert(entete, arg:fullUrl({["action"]="edit", ["preload"]="Modèle:Documentation/Preload"}))
                table.insert(entete, doc)
             table.insert(entete, ' créer]')
                table.insert(entete, '|action=edit modifier}}]&#93;&#32;&#91;{{Purger le cache|purger}}')
             else
                table.insert(entete, doc)
                table.insert(entete, '|action=edit&preload=Modèle:Documentation/Preload créer}}]')
            end
         end
         end
         table.insert(entete, '&#93;</span>')
         table.insert(entete, '&#93;</span>')
Ligne 98 : Ligne 83 :
end
end


function p.contenu(frame, args, page)
function p.contenu(frame, page)
     local contenu = {}
     local contenu = {}
    local doc = p.docname(page)


     if args.contenu then
     if args.contenu then
Ligne 123 : Ligne 107 :
end
end


function p.notice(frame, args, page)
function p.notice(frame, page)
     local notice = {}
     local notice = {}
    local doc = p.docname(page)


     if args.contenu then
     if args.contenu then

Version du 26 juillet 2013 à 20:51

--Ce module implemente le modèle Modèle:Méta documentation de modèle.

local p = {}

function p.corps(frame)

   args = frame:getParent().args
   local page = mw.title.getCurrentTitle()
   doc = p.docname(page)
   local corps = {}
   --Bandeau pour les sous-pages /Bac à sable
   if page.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, page)))
   table.insert(corps, p.contenu(frame, args, page))
   table.insert(corps, frame:preprocess(p.notice(frame, args, page)))
   --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(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.entete(page)

local entete = {'
') table.insert(entete, '
')
   table.insert(entete, 'Documentation du modèle')
   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, '[[')
       local arg = mw.title.new(args[1] or doc)
       if args[1] and p.ifexist(args[1]) or p.ifexist(doc) then
           table.insert(entete, arg:fullUrl('action=edit') .. ' modifier]')
           table.insert(entete, '] [[')
           table.insert(entete, page:fullUrl('action=purge') .. ' purger]')
       else
           table.insert(entete, arg:fullUrl({["action"]="edit", ["preload"]="Modèle:Documentation/Preload"}))
           table.insert(entete, ' créer]')
       end
       table.insert(entete, ']')
   end
table.insert(entete, '
')
   return table.concat(entete)

end

function p.contenu(frame, page)

   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_.._doc_.._%27')
       and p.ifexist(doc) then
           table.insert(contenu, frame:preprocess('Modèle:' .. doc .. ''))
       end
   end
table.insert(contenu, frame:preprocess('\n
\n'))
   return table.concat(contenu)

end

function p.notice(frame, page)

   local notice = {}
   if args.contenu then
table.insert(notice, '