模組:Respell
跳至導覽
跳至搜尋
可在模組:Respell/doc建立此模組的說明文件
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
local span = mw.html.create('span')
:css('font-size', '90%')
:wikitext(v)
v = tostring(span)
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 <i title="...">...</i>
local italic = mw.html.create('i')
:attr('title', 'English pronunciation respelling')
:wikitext(table.concat(ret))
ret = tostring(italic)
-- 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