Module:ListRefOfID
Documentation for this module may be created at Module:ListRefOfID/doc
local getArgs = require('Module:Arguments').getArgs;
local defArgs = require('Module:Arguments').defaultArgs;
local listRefOfID = {};
function listRefOfID.func1( frame )
local args = defArgs(getArgs(frame), 1, "");
local arg = args[1];
local text = "";
function split(str, delim)
local result = {}
local pat = "(.-)" .. delim .. "()"
local lastPos
for part, pos in string.gfind(str, pat) do
table.insert(result, part)
lastPos = pos
end
table.insert(result, string.sub(str, lastPos))
return result
end
local bucket = {}
for title,sp,id in arg:gmatch("&&([^&]+)&&([^&]+)&&([^\n]+)") do
if (bucket[title] == nil) then
local t = split(title, ",")
bucket[title] = t[3] .. t[2]
end
end
for k,v in pairs(bucket) do
text = text .. "\n&-\n& " .. string.sub(v,0,4) .. " && " .. string.sub(v,5) .. " && [[{{#get:2|Reference}}:" .. k .."&" .. string.gsub(k, ",", ", ") .. "]]"
end
return frame:preprocess(text);
end
return listRefOfID;