Moduli:Respell
Appearance
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p._main(args)
local ret = {}
local hasUnsc = {}
local j = 0
for i, v in ipairs(args) do
-- Compatibility: Ignore arguments that only contain an apostrophe
if v and v ~= '' and v ~= "'" then
hasUnsc[i] = mw.ustring.find(v, '_')
if hasUnsc[i] then
v = mw.ustring.gsub(v, '_', ' ')
else
if mw.ustring.find(v, '%u') and v == mw.ustring.upper(v) then
v = string.format("'''%s'''", v)
end
if i ~= 1 and not hasUnsc[i - 1] and v ~= '-' then
table.insert(ret, '-')
end
end
table.insert(ret, v)
end
j = i
end
-- Create <small title="..."><i>...</i></small>
local small = mw.html.create('small')
small
:attr('title', 'English pronunciation respelling')
:tag('i')
:wikitext(table.concat(ret))
ret = tostring(small)
-- For documentation: Disable linking by adding a blank parameter at the end
if args[j] ~= '' then
ret = string.format('[[Help:Pronunciation respelling key|%s]]', ret)
end
return ret
end
function p.main(frame)
local args = getArgs(frame, {removeBlanks = false})
return p._main(args)
end
return p