Module:rad-stem/templates: Difference between revisions

From Laenkea
Jump to navigation Jump to search
mNo edit summary
(Begun table formatting)
Line 3: Line 3:


local m_stem = require("Module:rad-stem")
local m_stem = require("Module:rad-stem")
local m_links = require("Module:links")
local m_parameters = require("Module:parameters")
local m_parameters = require("Module:parameters")


Line 30: Line 29:


return temp
return temp
end
function rad_link(word)
return require("Module:links").full_link{
    term = word,
    language = m_languages.get_by_code("rad")
}
end
function rad_IPA(word)
local IPA = require("Module:rad-IPA").generate{
word,
"format",
"nolarge"
}
return "<span style=\"color:dimgrey\">" .. IPA .. "</span>"
end
end


Line 39: Line 54:
local adj_broken_e = ""
local adj_broken_e = ""
if adj then
if adj then
adj_broken = break_adj(adj)  
adj_broken = args['adjbreak'] or break_adj(adj)  
adj_broken_e = mw.ustring.gsub(adj_broken, "(uș)$", "ûș")
adj_broken_e = mw.ustring.gsub(adj_broken, "(uș)$", "ûș")
end
end
return adj_broken
local format_table = {}
local function add(code)
table.insert(format_table, code)
end
local decl_type = {
["C"] = "heavy",
["CH"] = "spirant",
["VH"] = "spirant",
["V"] = "light",
["G"] = "semi-light"
}
add("<table class=\"mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\">")
add("<tr>")
add("<th colspan=\"4\">Declension of <i>" .. stems.nom .. "</i> (" .. decl_type[stems['type']] .. ") &nbsp;</th>")
add("</tr>")
add("</table>")
return table.concat(format_table)
end
end



Revision as of 00:45, 1 December 2023

Underlies:


local export = {}
local getArgs = require('Module:Arguments').getArgs

local m_stem = require("Module:rad-stem")
local m_parameters = require("Module:parameters")

function get_stems(args)
	local shifted = {"noun", "_"}
	
	local i = 1
	while args[i] do
		shifted[i+2] = args[i]
		i = i + 1
	end
	
	return m_stem.getNounStem(shifted)
end

function break_adj(adj)
	local C = "bcdðfghħjĵkķlmnņpqrsștvwxzþ°"
	local temp = adj

	temp = mw.ustring.gsub(temp, "([" .. C .. "])([" .. C .. "])íș$", "%1%2ieș")
	temp = mw.ustring.gsub(temp, "(°)", "")
	temp = mw.ustring.gsub(temp, "(íș)$", "jeș")
	temp = mw.ustring.gsub(temp, "(úș)$", "uoș")
	temp = mw.ustring.gsub(temp, "(ýș)$", "yeș")
	temp = mw.ustring.gsub(temp, "(oș)$", "uș")

	return temp
end

function rad_link(word)
	return require("Module:links").full_link{
    term = word,
    language = m_languages.get_by_code("rad")
}
end

function rad_IPA(word)
	local IPA = require("Module:rad-IPA").generate{
		word,
		"format",
		"nolarge"
	}
	return "<span style=\"color:dimgrey\">" .. IPA .. "</span>" 
end

function export.sg_pl(frame)
	local args = getArgs(frame)
	local stems = get_stems(args)
	local adj = args['adj']
	local adj_broken = ""
	local adj_broken_e = ""
	if adj then
		adj_broken = args['adjbreak'] or break_adj(adj) 
		adj_broken_e = mw.ustring.gsub(adj_broken, "(uș)$", "ûș")
	end
	
	local format_table = {}
	
	local function add(code)
		table.insert(format_table, code)
	end
	
	local decl_type = {
		["C"] = "heavy",
		["CH"] = "spirant",
		["VH"] = "spirant",
		["V"] = "light",
		["G"] = "semi-light"
	}
	
	add("<table class=\"mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\">")
		add("<tr>")
			add("<th colspan=\"4\">Declension of <i>" .. stems.nom .. "</i> (" .. decl_type[stems['type']] .. ") &nbsp;</th>")
		add("</tr>")
	add("</table>")
	
	return table.concat(format_table)
end

return export

--[[
Debug console test string:
=p.sg_pl(mw.getCurrentFrame():newChild{title="whatever",args={"hv", "o~u^u", "þ"}})
]]--