Module:xchc-noun: Difference between revisions

No edit summary
No edit summary
Line 66: Line 66:


local function show_form(form)
local function show_form(form)
local function link(term)
local links = {}
for alt in gmatch(term, "([^%s,]+)") do
alt = term == "—" and term or "[[Contionary:" .. alt .. "|" .. alt .. "]]"
table.insert(links, alt)
end
return table.concat(links, ", ")
end
if not form then
if not form then
return "—"
return "—"
end
end
local ret = {}
local ret, tr_ret = {}, {}
for _, subform in ipairs(form) do
for _, subform in ipairs(form) do
table.insert(ret, subform)
table.insert(ret, link(subform))
table.insert(tr_ret, m_tr(subform,lang))
end
end
return table.concat(ret, ", ")
return table.concat(ret, ", ") .. "<br/>" .. table.concat(tr_ret, ", ")
end
local function link(term)
local links = {}
for alt in gmatch(term, "([^%s,]+)") do
alt = term == "—" and term or "[[Contionary:" .. alt .. "|" .. alt .. "]]"
table.insert(links, alt)
end
return table.concat(links, ", ")
end
local function repl(param)
if param == "decl_type" then
return data.decl_type == "irregular" and data.decl_type or "''" .. data.decl_type .. "''-declension"
elseif param == "title" then
return NAMESPACE == "Template" and "sivi" or data.alt or PAGENAME
elseif param == "word" and NAMESPACE == "Template" then
return "sivi"
elseif param == "word" then
return data.head
elseif param == "gender" then
return (data.g == "i" and "inanimate" or "animate")
else
return show_form(data.forms[param])
end
end
end


Line 115: Line 100:
numbers[2], numbers[3], numbers_sh[2], numbers_sh[3] = nil, nil, nil, nil
numbers[2], numbers[3], numbers_sh[2], numbers_sh[3] = nil, nil, nil, nil
end
end
table.insert(ret, "! &nbsp;\n")
for _, number in ipairs(numbers) do
for _, number in ipairs(numbers) do
table.insert(ret, "! " .. number .. "\n")
table.insert(ret, "! " .. number .. "\n")
Line 121: Line 106:
table.insert(ret, "|-\n")
table.insert(ret, "|-\n")
for _, case in ipairs(cases) do
for _, case in ipairs(cases) do
local c_sh = case:sub(1,3)
table.insert(ret, "! " .. case .. "\n")
table.insert(ret, "! " .. case .. "\n")
end
table.insert(ret, "|-\n")
for _, case in ipairs(cases) do
local c_sh = case:sub(1,3)
for _, number in ipairs(numbers) do
for _, number in ipairs(numbers) do
local n_sh = number:sub(1,3)
local n_sh = number:sub(1,3)
Line 141: Line 123:
table.insert(ret, "| " .. show_form(w_number[n_sh] .. decl[c_sh]))
table.insert(ret, "| " .. show_form(w_number[n_sh] .. decl[c_sh]))
end
end
table.insert(ret, "\n")
table.insert(ret, "|-\n")
end
end
Line 147: Line 129:
end
end


local navframe = [=[
local t = [=[
<div class="mw-collapsible" style="border-collapse: collapse; margin: 0px 0px -1px 0px; padding: 2px; border: 1px solid #aaaaaa; text-align: center; font-size: 95%; overflow: auto; min-width: 70em; display:inline-block;">
<div class="mw-collapsible" style="border-collapse: collapse; margin: 0px 0px -1px 0px; padding: 2px; border: 1px solid #aaaaaa; text-align: center; font-size: 95%; overflow: auto; min-width: 70em; display:inline-block;">
<div style="min-height: 1.6em; font-size: 100%; text-align: left; background-color:#DEE9FB; padding-left: 10px; background-image: -webkit-gradient(linear, left top, left bottom, from(#EFEFEF), to(#DFDFDF), color-stop(0.6, #E3E3E3)); background-image: -moz-linear-gradient(top, #EFEFEF, #E3E3E3 60%, #DFDFDF);  background-image: -o-linear-gradient(top, #EFEFEF, #E3E3E3 60%, #DFDFDF);">'''''{title}'''''<span style="font-weight:normal;">{after_title}</span>&nbsp;</div>
<div style="min-height: 1.6em; font-size: 100%; text-align: left; background-color:#DEE9FB; padding-left: 10px; background-image: -webkit-gradient(linear, left top, left bottom, from(#EFEFEF), to(#DFDFDF), color-stop(0.6, #E3E3E3)); background-image: -moz-linear-gradient(top, #EFEFEF, #E3E3E3 60%, #DFDFDF);  background-image: -o-linear-gradient(top, #EFEFEF, #E3E3E3 60%, #DFDFDF);">'''''{title}'''''<span style="font-weight:normal;">{after_title}</span>&nbsp;</div>
<div class="mw-collapsible-content" style="font-size: 100%;">
<div class="mw-collapsible-content" style="font-size: 100%;">
{| class = "wikitable"
|-
]=] .. make_cases(data) .. [=[
|}</div></div>
]=]
]=]


return t
end
end


return export
return export