Difference between revisions of "Module:Common"
Jump to navigation
Jump to search
| Line 52: | Line 52: | ||
function com.fUpper(text) | function com.fUpper(text) | ||
local words = mw.text.split(text, '%s | local words = mw.text.split(text, '%s') | ||
for k, v in ipairs(words) do | for k, v in ipairs(words) do | ||
words[k] = v:gsub('(.)(.*)', string.upper('%1') .. '%2') | words[k] = v:gsub('(.)(.*)', string.upper('%1') .. '%2') | ||
Revision as of 08:27, 24 December 2023
Additional functions that are common to other modules. Although they could be called into templates the overhead call into lua would generally greater than using a built in mediawiki parser function where one exists.
When calling in to another module, use local com = require( "Module:Common"). This will ensure consistency between modules.
local a = require('Module:Arguments')
local com = {}
function com.trim(object)
--Use of while instead of if incase multiple whitespaces are present.
if com.exists(object) then
while string.sub(object, 1, 1) == ' ' do
object = string.sub(object, 2)
end
while string.sub(object, string.len(object)) == ' ' do
object = string.sub(object, 1, string.len(object) - 1)
end
end
return object
end
function com.exists(object)
if object == nil or object == '' then
return false
else
return true
end
end
function com.modulePagename(title)
if not title then
title = mw.title.getCurrentTitle().text
end
mw.log(title)
local disambig = string.find(title, '%(')
if string.sub(title, string.len(title)) == '%)' then
local check = disambig
while check do
local check = string.find(title, '%(', check + 1)
if check ~= 0 then
disambig = check
end
end
end
title = string.sub(title, 1, disambig)
return title
end
function com.pagename(frame)
local args = a.getArgs(frame)
return trim(com.modulePagename(args['title']))
end
function com.fUpper(text)
local words = mw.text.split(text, '%s')
for k, v in ipairs(words) do
words[k] = v:gsub('(.)(.*)', string.upper('%1') .. '%2')
end
return table.concat(words, ' ')
end
function com.firstUpper(frame)
local args = a.getArgs(frame)
return string.gsub(args[1], string.sub(args[1],1,1), string.upper(
string.sub(args[1],1,1)))
end
return com