Module:User: Difference between revisions
From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(see if we get a significant speed boost by porting {{user}} directly to Lua) |
(deal with nil values properly) |
||
Line 6: | Line 6: | ||
local function validateArg(arg) |
local function validateArg(arg) |
||
if not arg then |
|||
return nil |
|||
end |
|||
arg = arg:match('^%s*(.-)%s*$') |
arg = arg:match('^%s*(.-)%s*$') |
||
if arg ~= '' then |
if arg ~= '' then |
||
Line 34: | Line 37: | ||
for argKey, t in pairs(argKeys) do |
for argKey, t in pairs(argKeys) do |
||
for i, origArgKey in ipairs(t) do |
for i, origArgKey in ipairs(t) do |
||
local value = |
local value = origArgs[origArgKey] |
||
value = validateArg(value) |
|||
if value then |
if value then |
||
args[argKey] = value |
args[argKey] = value |
Revision as of 14:18, April 6, 2014
Documentation for this module may be created at Module:User/doc
local mUserLinks = require('Module:UserLinks')
local mShared = require('Module:UserLinks/shared')
local yesno = require('Module:Yesno')
local p = {}
local function validateArg(arg)
if not arg then
return nil
end
arg = arg:match('^%s*(.-)%s*$')
if arg ~= '' then
return arg
end
end
function p.main(frame)
local argKeys = {
user = {
1,
'User',
'user'
},
project = {
2,
'Project',
'project'
},
lang = {
3,
'Lang',
'lang'
}
}
local origArgs = frame:getParent().args
local args = {}
for argKey, t in pairs(argKeys) do
for i, origArgKey in ipairs(t) do
local value = origArgs[origArgKey]
value = validateArg(value)
if value then
args[argKey] = value
break
end
end
end
local options = {
span = false,
separator = validateArg(origArgs.separator) or 'dot',
isDemo = yesno(validateArg(origArgs.demo))
}
local codes = {'t', 'c'}
local snippets = userLinks.getSnippets(args)
local links = userLinks.getLinks(snippets)
local success, result = pcall(mUserLinks.export, codes, links, options)
if success then
return result
else
return mShared.makeWikitextError(result, options.isDemo)
end
end
return p