Module:Respell
From Wikipedia, the free encyclopedia
| This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This module implements {{Respell}}. Please see the template page for documentation.
| The above documentation is transcluded from Module:Respell/doc. (edit | history) Editors can experiment in this module's sandbox (edit | diff) and testcases (edit) pages. Subpages of this module. |
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 v == mw.ustring.upper(v) then
v = string.format("'''%s'''", v)
end
if i ~= 1 and not hasUnsc[i - 1] 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