Module:IPAc-en/documentation
Jump to navigation
Jump to search
Module documentation
This documentation is transcluded from Module:IPAc-en/documentation/doc. [edit] [history] [purge]
Module:IPAc-en/documentation loads data from Module:IPAc-en/phonemes.
Module:IPAc-en/documentation loads data from Module:IPAc-en/pronunciation.
| Function list |
|---|
| L 7 — makeCode L 11 — buildTable L 35 — makeCodeTable L 57 — p.pronunciation L 63 — p.phonemes |
Usage
{{#invoke:IPAc-en|function_name}}
| This page uses content from Wikipedia. The original article was at Module:IPAc-en/documentation, and authors are listed in the page history. The text of Wikipedia is available under the Creative Commons Attribution-ShareAlike License 3.0. |
-- This module generates automatic documentation for [[Template:IPAc-en]].
local pronunciationData = mw.loadData('Module:IPAc-en/pronunciation')
local phonemeData = mw.loadData('Module:IPAc-en/phonemes')
local p = {}
local function makeCode(s)
return string.format('<code>%s</code>', mw.text.nowiki(s))
end
local function buildTable(options)
local ret = {}
if options.rows and #options.rows > 20 then
ret[#ret + 1] = '{| class="wikitable mw-collapsible mw-collapsed"'
elseif options.rows then
ret[#ret + 1] = '{| class="wikitable"'
end
if options.headerRow then
for i, header in ipairs(options.headerRow) do
ret[#ret + 1] = '! ' .. header
end
end
if options.rows then
for i, t in ipairs(options.rows) do
ret[#ret + 1] = '|-'
for j, data in ipairs(t) do
ret[#ret + 1] = '| ' .. data
end
end
end
ret[#ret + 1] = '|}'
return table.concat(ret, '\n')
end
local function makeCodeTable(data, headers, callback)
local headerRow = {'Code', 'Aliases'}
for i, header in ipairs(headers) do
headerRow[#headerRow + 1] = header
end
local rows = {}
for i, t in ipairs(data) do
local aliases = {}
if t.aliases then
for i, alias in ipairs(t.aliases) do
aliases[#aliases + 1] = makeCode(alias)
end
end
aliases = table.concat(aliases, ', ')
rows[#rows + 1] = {makeCode(t.code), aliases, callback(t)}
end
return buildTable{
headerRow = headerRow,
rows = rows
}
end
function p.pronunciation()
return makeCodeTable(pronunciationData, {'Output'}, function (t)
return t.text
end)
end
function p.phonemes()
return makeCodeTable(
phonemeData,
{'Display text', 'Tooltip', 'Type'},
function (t)
return t.label, t.tooltip or '', t.tooltip and 'diaphoneme' or 'separator'
end
)
end
return p
