Module:ListRefOfID: Difference between revisions
Created page with "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..." |
(No difference)
|
Latest revision as of 14:51, 2 February 2023
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;