變更

增加 124 位元組 、 2014年1月27日 (一) 10:55
無編輯摘要
第2行: 第2行:     
-- Require necessary modules.
 
-- Require necessary modules.
 +
local getArgs = require('Module:Arguments').getArgs
 
local htmlBuilder = require('Module:HtmlBuilder')
 
local htmlBuilder = require('Module:HtmlBuilder')
 
local categoryHandler = require('Module:Category handler').main
 
local categoryHandler = require('Module:Category handler').main
第18行: 第19行:  
local trim = mw.text.trim
 
local trim = mw.text.trim
   −
local box = {}
+
--------------------------------------------------------------------------------
 +
-- Helper functions
 +
--------------------------------------------------------------------------------
    
local function getTitleObject(page, ...)
 
local function getTitleObject(page, ...)
第58行: 第61行:  
table.sort(nums)
 
table.sort(nums)
 
return nums
 
return nums
 +
end
 +
 +
--------------------------------------------------------------------------------
 +
-- Box class definition
 +
--------------------------------------------------------------------------------
 +
 +
local box = {}
 +
box.__index = box
 +
 +
function box.new()
 +
local obj = {}
 +
setmetatable(obj, box)
 +
return obj
 
end
 
end
   第195行: 第211行:  
if self.isSmall then
 
if self.isSmall then
 
self:addClass(cfg.smallClass or 'mbox-small')
 
self:addClass(cfg.smallClass or 'mbox-small')
 +
end
 +
if yesno(args.hidden) then
 +
self:addClass('infobox editsection')
 
end
 
end
 
self:addClass(self.typeClass)
 
self:addClass(self.typeClass)
第591行: 第610行:     
local function main(boxType, args)
 
local function main(boxType, args)
box:setTitle(args)
+
local outputBox = box.new()
local cfg = box:getConfig(boxType)
+
outputBox:setTitle(args)
args = box:removeBlankArgs(cfg, args)
+
local cfg = outputBox:getConfig(boxType)
box:setBoxParameters(cfg, args)
+
args = outputBox:removeBlankArgs(cfg, args)
return box:export()
+
outputBox:setBoxParameters(cfg, args)
 +
return outputBox:export()
 
end
 
end
    
local function makeWrapper(boxType)
 
local function makeWrapper(boxType)
 
return function (frame)
 
return function (frame)
-- If called via #invoke, use the args passed into the invoking
+
local args = getArgs(frame, {trim = false, removeBlanks = false})
-- template, or the args passed to #invoke if any exist. Otherwise
  −
-- assume args are being passed directly in from the debug console
  −
-- or from another Lua module.
  −
local origArgs
  −
if frame == mw.getCurrentFrame() then
  −
origArgs = frame:getParent().args
  −
for k, v in pairs(frame.args) do
  −
origArgs = frame.args
  −
break
  −
end
  −
else
  −
origArgs = frame
  −
end
  −
-- Trim whitespace.
  −
local args = {}
  −
for k, v in pairs(origArgs) do
  −
if type(v) == 'string' then
  −
v = trim(v)
  −
end
  −
args[k] = v
  −
end
   
return main(boxType, args)
 
return main(boxType, args)
 
end
 
end