Content added Content deleted
(maybe correct concat) |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local utilities = {} |
local utilities = {} |
||
-- https://stackoverflow.com/questions/1426954/split-string-in-lua |
|||
function utilities.split(inputstr, sep) |
function utilities.split(inputstr, sep) |
||
return mw.text.split(inputstr, sep) |
|||
⚫ | |||
⚫ | |||
sep = "%s" |
|||
⚫ | |||
function utilities.splitWithDelim(delim) |
|||
local t = {} |
|||
return function(str) |
|||
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do |
|||
⚫ | |||
table.insert(t, str) |
|||
⚫ | |||
end |
|||
⚫ | |||
local list = mw.text.split(str, delim) |
|||
for i=1,#list do |
|||
list[i] = mw.text.trim(list[i]) |
|||
end |
|||
return list |
|||
end |
|||
end |
end |
||
Line 18: | Line 25: | ||
function utilities.capitalize(str) |
function utilities.capitalize(str) |
||
return |
return mw.getContentLanguage():ucfirst(str) |
||
end |
end |
||
Line 33: | Line 40: | ||
-- https://stackoverflow.com/questions/49907620/how-to-fuse-array-in-lua/49908683 |
-- https://stackoverflow.com/questions/49907620/how-to-fuse-array-in-lua/49908683 |
||
function utilities.table_concat(a, b) |
function utilities.table_concat(a, b) |
||
local result = { |
local result = {} |
||
for k,v in pairs(a) do |
|||
table.move(b, 1, #b, #result + 1, result) |
|||
result[k] = v |
|||
end |
|||
for k,v in pairs(b) do |
|||
result[k] = v |
|||
end |
|||
return result |
return result |
||
end |
|||
function utilities.editIfNil(value, func) |
|||
if value and value ~= '' then |
|||
if func then |
|||
return func(value) |
|||
end |
|||
return value |
|||
end |
|||
return string.format( |
|||
"<span class=\"plainlinks\">[%s?action=edit ? (edit)]</span>", |
|||
tostring(mw.uri.fullUrl(mw.title.getCurrentTitle().text)) |
|||
) |
|||
end |
end |
||
Latest revision as of 07:10, 15 April 2022
Documentation for this module may be created at Module:Utilities/doc
local utilities = {}
function utilities.split(inputstr, sep)
return mw.text.split(inputstr, sep)
end
function utilities.splitWithDelim(delim)
return function(str)
if str == nil then
return nil
end
local list = mw.text.split(str, delim)
for i=1,#list do
list[i] = mw.text.trim(list[i])
end
return list
end
end
function utilities.trim(str)
return string.gsub(str, "^%s*(.-)%s*$", "%1")
end
function utilities.capitalize(str)
return mw.getContentLanguage():ucfirst(str)
end
function utilities.array_index_of(arr, val)
for i,v in ipairs(arr) do
if v == val then
return i
end
end
return -1
end
-- https://stackoverflow.com/questions/49907620/how-to-fuse-array-in-lua/49908683
function utilities.table_concat(a, b)
local result = {}
for k,v in pairs(a) do
result[k] = v
end
for k,v in pairs(b) do
result[k] = v
end
return result
end
function utilities.editIfNil(value, func)
if value and value ~= '' then
if func then
return func(value)
end
return value
end
return string.format(
"<span class=\"plainlinks\">[%s?action=edit ? (edit)]</span>",
tostring(mw.uri.fullUrl(mw.title.getCurrentTitle().text))
)
end
return utilities