モジュール:Multiple releases

モジュールの解説[作成]
local infobox = require ('Module:Infobox').infobox local getArgs = require ('Module:Arguments').getArgs  local p = {} p.InfoboxArgs = {}  function p.original( args )     local a = 1     local IsEmpty = true     local KeepCheckingForArgs = true     local InfoboxArgs = p.InfoboxArgs     while KeepCheckingForArgs == true do         local thisBranch = "branch" .. a         local thisVersion = "version" .. a         local thisDate = "date" .. a         local CurLabel = "label" .. a         local CurData = "data" .. a          if args[thisBranch] and args[thisVersion] then             InfoboxArgs[CurLabel] = args[thisBranch]             InfoboxArgs[CurData] = args[thisVersion]             if args[thisDate] then InfoboxArgs[CurData] = InfoboxArgs[CurData] .. " / " .. args[thisDate] end         else             KeepCheckingForArgs = false             if a > 1 then IsEmpty = false end         end         a = a + 1     end     return IsEmpty end  function p.flat( args )     local a = 1     local b = 1     local IsEmpty = true     local KeepCheckingForArgs = true     local InfoboxArgs = p.InfoboxArgs      while KeepCheckingForArgs == true do         local thisBranch = "branch" .. a         local thisVersion = "version" .. a         local thisDate = "date" .. a         local thisEdit = "edit" .. a         local CurHeader = "header" .. b         local CurData = "data" .. b + 1          InfoboxArgs.headerstyle = "text-align:left;"         InfoboxArgs.datastyle= "text-align:left;"          if args[thisBranch] and args[thisVersion] then             InfoboxArgs[CurHeader] = args[thisBranch]             InfoboxArgs[CurData] = args[thisVersion]             if args[thisDate] then InfoboxArgs[CurData] = InfoboxArgs[CurData] .. " / " .. args[thisDate] end             if args[thisEdit] then InfoboxArgs[CurData] = InfoboxArgs[CurData] .. "<small>&#32;<span class=\"plainlinks\">[" .. tostring(mw.uri.fullUrl(args[thisEdit], "action=edit")) .. " &#91;±&#93;]</span></small>" end              b = b + 2         else             KeepCheckingForArgs = false             if a > 1 then IsEmpty = false end         end         a = a + 1     end     return IsEmpty end  function p.main( frame )     local args = getArgs (frame)     local InfoboxArgs = p.InfoboxArgs      InfoboxArgs["subbox"] = "yes"      local IsEmpty = true     if args["flat"] == "yes" then         IsEmpty = p.flat(args)     else         IsEmpty = p.original(args)     end      if IsEmpty == false then         return infobox(InfoboxArgs)     else         return nil     end end  return p