local export = {}
local getArgs = require("Module:Arguments").getArgs
local data = mw.loadData("Module:lnk-pro-morph/data")
local m_links = require("Module:links")
local m_languages = require("Module:languages")
local function get_form(form)
local replace = ""
-- processes arguments of the form -Vn:o
if mw.ustring.find(form, "[^%:]%:[^%:]") then
replace = mw.ustring.match(form, "[^%:]+$")
form = mw.ustring.match(form, "^[^%:]+")
end
if not data[form] then
if mw.ustring.find(form, "%-%-") then
local cite = mw.ustring.gsub(form, "%-%-", "")
local link = m_links.full_link{
term = cite .. "-",
alt = cite,
language = m_languages.get_by_code("lnk-pro"),
nostar = true,
}
if mw.ustring.find(form, "^%-%-") then
return "=" .. link
elseif mw.ustring.find(form, "%-%-$") then
return link .. "="
else
error("-- needs to be either at the beginning or the end of the argument")
end
else
return form
end
end
local link = data[form]
if replace ~= "" then
form = string.gsub(form, string.char(0xCC), "'")
form = string.gsub(form, "[CV]", replace)
end
return m_links.full_link{
term = link,
alt = form,
language = m_languages.get_by_code("lnk-pro"),
nostar = true,
}
end
function export.show(frame)
local args = getArgs(frame)
local display = {}
for _, arg in ipairs(args) do
table.insert(display, get_form(arg))
end
return "<span>*</span>" .. table.concat(display)
end
return export