Module:Documentation

De Lagny-sur-Marne Wiki
Version datée du 5 octobre 2013 à 12:44 par 0x010D (discussion | contributions) (correction 'action=purge')
Aller à la navigation Aller à la recherche

--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('Documentation du modèle')
      .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('
\n')
   return tab.concat()

end

function p.notice(page)

   local arg = mw.title.new(args[1] or doc)

   if args.contenu then
tab.insert('