|
|
| (27 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| local p = {} | | local p = {} |
|
| |
| -- from [[Module:Infobox]]
| |
| -- Returns the union of the values of two tables, as a sequence.
| |
| local function union(t1, t2)
| |
|
| |
| local vals = {}
| |
| for k, v in pairs(t1) do
| |
| vals[v] = true
| |
| end
| |
| for k, v in pairs(t2) do
| |
| vals[v] = true
| |
| end
| |
| local ret = {}
| |
| for k, v in pairs(vals) do
| |
| table.insert(ret, k)
| |
| end
| |
| return ret
| |
| end
| |
|
| |
|
| -- from [[Module:Infobox]] | | -- from [[Module:Infobox]] |
| Line 23: |
Line 5: |
| -- for the specified prefix. For example, if the prefix was 'data', and | | -- for the specified prefix. For example, if the prefix was 'data', and |
| -- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}. | | -- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}. |
| local function getArgNums(prefix, args) | | local function getArgNums(prefix) |
| local nums = {} | | local nums = {} |
| for k, v in pairs(args) do | | for k, v in pairs(args) do |
| Line 33: |
Line 15: |
| end | | end |
|
| |
|
| function p.makeSections(frame, args) | | local function argsToObjects( args ) |
| local sections = {} | | local objects = {} |
| local nums = union(getArgNums('name', args), getArgNums('url', args))
| | for k, v in args do |
|
| | |
| for k, v in ipairs(nums) do | |
| local name = args['name' .. tostring(v)] | |
| local url = args['url' .. tostring(v)]
| |
| if name and url then
| |
| local qr = frame:expandTemplate( { title = 'qrlite', args = { url, format = 'png', margin = '3' } } )
| |
| table.insert(sections, {name, '<p class="hb-qrcode-image">'..qr..'</p><p class="hb-qrcode-link">['..url..' '..url..']</p>'})
| |
| end
| |
| end | | end |
|
| |
| return sections
| |
| end | | end |
|
| |
|
| function p.makeTabberData(sections) | | function p.main( frame ) |
| local finalSections = ''
| |
| for k, v in ipairs(sections) do
| |
| finalSections = finalSections..'|-|'..v[1]..'='..v[2]
| |
| end
| |
| | | |
| return finalSections
| |
| end
| |
|
| |
| function p.makeTabber(frame, sections)
| |
| return frame:callParserFunction('#tag', 'tabber', p.makeTabberData(sections))
| |
| end
| |
|
| |
| function p.main(frame)
| |
| local parent = frame:getParent()
| |
|
| |
| local sections = p.makeSections(parent, parent.args)
| |
| return p.makeTabber(parent, sections)
| |
| end
| |
|
| |
| function p.template(frame)
| |
| local args = {}
| |
| for k,v in pairs(frame.args) do args[k] = mw.text.trim(v) end
| |
| local sections = p.makeSections(frame, args)
| |
| return p.makeTabber(frame, sections)
| |
| end | | end |
|
| |
|
| return p | | return p |