Difference between revisions of "Module:Item"
Jump to navigation
Jump to search
blackwiki>Petr Matas |
blackwiki>Petr Matas |
||
| Line 5: | Line 5: | ||
end | end | ||
| − | function p. | + | function unescape(str) |
| + | return str:gsub("\\(.)", "%1") | ||
| + | end | ||
| + | |||
| + | function p.pack(frame) | ||
local parent = frame:getParent() | local parent = frame:getParent() | ||
| Line 13: | Line 17: | ||
end | end | ||
| − | return result; | + | return result .. "|"; |
| + | end | ||
| + | |||
| + | function unpack(str) | ||
| + | |||
| + | end | ||
| + | |||
| + | function p.each(frame) | ||
| + | local parent = frame:getParent() | ||
| + | local items = parent.args | ||
| + | local separator = frame.args.separator or "" | ||
| + | local template = frame.args.template | ||
| + | |||
| + | local result = "" | ||
| + | for i, item in ipairs(items) do | ||
| + | result = result .. frame:expandTemplate{ title = template, args = unpack(item) } | ||
| + | if items[i + 1] then | ||
| + | result = result .. separator | ||
| + | end | ||
| + | end | ||
| + | |||
| + | return result | ||
end | end | ||
return p | return p | ||
Revision as of 04:16, 13 December 2015
This template implements {{Item}}, {{Component}} and {{Format item}}.
local p = {}
function escape(str)
return str:gsub("([|\\])", "\\%1")
end
function unescape(str)
return str:gsub("\\(.)", "%1")
end
function p.pack(frame)
local parent = frame:getParent()
local result = ''
for key, value in pairs(parent.args) do
result = result .. "|" .. escape(tostring(key)) .. "|" .. escape(value)
end
return result .. "|";
end
function unpack(str)
end
function p.each(frame)
local parent = frame:getParent()
local items = parent.args
local separator = frame.args.separator or ""
local template = frame.args.template
local result = ""
for i, item in ipairs(items) do
result = result .. frame:expandTemplate{ title = template, args = unpack(item) }
if items[i + 1] then
result = result .. separator
end
end
return result
end
return p