Module:Trig-verbs: Difference between revisions

From The Languages of David J. Peterson
Jump to navigation Jump to search
No edit summary
No edit summary
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
export = {}
export = {}


require("Module:Trig-verbs/data")


satellites = {
local m_params = require("Module:parameters")
"au",
local m_utilities  = require("Module:utilities")
"daun",
local m_links = require("Module:links")
"in",
 
"klin",
lang = require("Module:Languages").getByCode('trig')
"of",
 
"op",
function export.l(term, face, alt)
"raun",
return m_links.full_link( { term = term, lang = lang, alt = alt }, face )
"thru",
end
"we",
}


local function get_verb_parts(verb)  
local function get_verb_parts(verb)  
Line 23: Line 22:
return root or verb, sat or ''
return root or verb, sat or ''
end
function export.get_verb_root(frame)
local title = mw.title.getCurrentTitle()
local pagename = title.text
local params = {
[1] = { default = pagename },
}
local args = m_params.process(frame:getParent().args, params)
    local output, other = get_verb_parts(string.lower(args[1]))
return output
end
function export.get_verb_sat(frame)
local title = mw.title.getCurrentTitle()
local pagename = title.text
local params = {
[1] = { default = pagename },
}
local args = m_params.process(frame:getParent().args, params)
    local other, output = get_verb_parts(string.lower(args[1]))
return output
end
function export.trig_from_root(frame)
local output = {}
local categories = {}
local title = mw.title.getCurrentTitle()
local namespace = title.nsText
local params = {
[1] = { alias_of = "root"},
[2] = { alias_of = "sat"},
["source"] = {},
["root"] = {},
["sat"] = {},
["nocat"] = { type = "boolean", default = false },
["plain"] = { type = "boolean", default = false },
["alt"] = {},
["face"] = { default = "term" },
["notext"] = { type = "boolean", default = false },
["nolink"] = { type = "boolean", default = false },
}
local args = m_params.process(frame:getParent().args, params)
if not args["root"] and namespace == "Template" then
args["root"] = "tes"
args["sat"] = "op"
args["source"] = "test"
elseif not args["root"] and namespace ~= "Template" then
args["root"], args["sat"] = get_verb_parts(string.lower(title.text))
end
local link_text = export.l(args["root"], args["face"], args["root"] )
if args["source"] then
link_text = link_text..' ("'..args["source"]..'")'
end
link_text = link_text.." and "..export.l(args["sat"], args["face"], args["sat"])
table.insert(categories, m_utilities.format_categories( { "Trigedasleng verbs with the satellite " .. args["sat"] }, lang) )
table.insert(output, link_text)
table.insert(categories, m_utilities.format_categories( { "Trigedasleng verbs belonging to the root " .. args["root"]}, lang) )
if args["plain"] then
return args["root"].." + "..args["sat"]
elseif args["nocat"] then
return table.concat(output)
elseif args["notext"] then
return table.concat(categories)
else
return table.concat(output) .. table.concat(categories)
end
return output
end
end


Line 30: Line 118:
local lines = {}
local lines = {}
for _,value in ipairs(satellites) do
for _,value in ipairs(SATELLITES) do
if sat ~= value then
if sat ~= value then
if string.find(exclude,','..value..",") then
if string.find(exclude,','..value..",") then
table.insert(lines,"''"..root.." "..value.." (not used)")
-- table.insert(lines,"<span>''"..root.." "..value.." (not used)''</span>")
else
else
table.insert(lines,'[['..root..' '..value..']]')
table.insert(lines,'[['..root..' '..value..']]')
Line 45: Line 133:
function export.showVerbSiblings(frame)
function export.showVerbSiblings(frame)
local args = frame.getParent and frame:getParent().args or frame
local args = frame:getParent().args
local exclude = args["exclude"] or ""
local exclude = args.exclude or ""
local title = mw.title.getCurrentTitle()
local title = mw.title.getCurrentTitle()
if title.nsText == "" then
if title.nsText == "" then
input = title.text
input = string.lower(title.text)
else
else
input = "test au"
input = "test au"
Line 61: Line 149:
table.insert(output,'{| role="presentation" class="mw-collapsible mw-collapsed" style="background-color:#f0f0f0;width:50%;"\n')
table.insert(output,'{| role="presentation" class="mw-collapsible mw-collapsed" style="background-color:#f0f0f0;width:50%;"\n')
     table.insert(output,'! style="font-weight:normal; background-color:#fafafa; |')
     table.insert(output,'! style="font-weight:normal; background-color:#fafafa; |')
     table.insert(output," Verbs from root ''[["..(root or "unknown") .."]]''.&nbsp;\n|-\n| ")
     table.insert(output," Other verbs from root ''[["..(root or "unknown") .."]]''&nbsp;\n|-\n| ")
local sats = getSatTable(root,sat,exclude)
local sats = getSatTable(root,sat,exclude)
Line 68: Line 156:
background_color = "#F8F8FF",
background_color = "#F8F8FF",
column_count = 3,
column_count = 3,
lang = require("Module:Languages").getByCode('trig'),
lang = lang,
    content = sats,
    content = sats,
}..'\n|}'
}..'\n|}'

Latest revision as of 17:44, 17 January 2024

Documentation for this module may be created at Module:Trig-verbs/documentation

export = {}

require("Module:Trig-verbs/data")

local m_params = require("Module:parameters")
local m_utilities  = require("Module:utilities")
local m_links = require("Module:links")

lang = require("Module:Languages").getByCode('trig')

function export.l(term, face, alt)
	return m_links.full_link( { term = term, lang = lang, alt = alt }, face )
end

local function get_verb_parts(verb) 
	if not verb then
		return nil,nil
	end
	
	term = mw.text.trim(verb)
	root, sat = string.match(term,'(%S+)%s+(%S+)')
	
	return root or verb, sat or ''
end

function export.get_verb_root(frame)
	
	local title = mw.title.getCurrentTitle()
	local pagename = title.text
	
	local params = {
		[1] = { default = pagename },
	}
	
	local args = m_params.process(frame:getParent().args, params)
    local output, other = get_verb_parts(string.lower(args[1]))
	
	return output

end

function export.get_verb_sat(frame)
	
	local title = mw.title.getCurrentTitle()
	local pagename = title.text
	
	local params = {
		[1] = { default = pagename },
	}
	
	local args = m_params.process(frame:getParent().args, params)
    local other, output = get_verb_parts(string.lower(args[1]))
	
	return output

end

function export.trig_from_root(frame)
	
	local output = {}
	local categories = {}
	
	local title = mw.title.getCurrentTitle()
	local namespace = title.nsText
	
	local params = {
		[1] = { alias_of = "root"},
		[2] = { alias_of = "sat"},
		["source"] = {},
		["root"] = {},
		["sat"] = {},		
		["nocat"] = { type = "boolean", default = false },
		["plain"] = { type = "boolean", default = false },
		["alt"] = {},
		["face"] = { default = "term" },
		["notext"] = { type = "boolean", default = false },
		["nolink"] = { type = "boolean", default = false },
	}
	
	local args = m_params.process(frame:getParent().args, params)
	
	if not args["root"] and namespace == "Template" then
		args["root"] = "tes"
		args["sat"] = "op"
		args["source"] = "test"
	elseif not args["root"] and namespace ~= "Template" then
		args["root"], args["sat"] = get_verb_parts(string.lower(title.text))
	end

	local link_text = export.l(args["root"], args["face"], args["root"] )
	if args["source"] then
		link_text = link_text..' ("'..args["source"]..'")'
	end
	
	link_text = link_text.." and "..export.l(args["sat"], args["face"], args["sat"])
	table.insert(categories, m_utilities.format_categories( { "Trigedasleng verbs with the satellite " .. args["sat"] }, lang) )
		
	table.insert(output, link_text)
	table.insert(categories, m_utilities.format_categories( { "Trigedasleng verbs belonging to the root " .. args["root"]}, lang) )
	
	
	if args["plain"] then
		return args["root"].." + "..args["sat"]
	elseif args["nocat"] then
		return table.concat(output)
	elseif args["notext"] then
		return table.concat(categories)
	else
		return table.concat(output) .. table.concat(categories)
	end
	
	return output
end

local function getSatTable(root,sat,exclude)

	exclude = string.gsub(','..exclude..',',"%s+","")
	local lines = {}
	
	for _,value in ipairs(SATELLITES) do
		if sat ~= value then
			if string.find(exclude,','..value..",") then
--				table.insert(lines,"<span>''"..root.." "..value.." (not used)''</span>")
			else
				table.insert(lines,'[['..root..' '..value..']]')
			end
		end
	end
	
	return lines
end

function export.showVerbSiblings(frame)
	
	local args = frame:getParent().args
	local exclude = args.exclude or ""
	
	local title = mw.title.getCurrentTitle()
	if title.nsText == "" then
		input = string.lower(title.text)
	else
		input = "test au"
	end
	
	root, sat = get_verb_parts(input) 
	
	local output = {}

	table.insert(output,'{| role="presentation" class="mw-collapsible mw-collapsed" style="background-color:#f0f0f0;width:50%;"\n')
    table.insert(output,'! style="font-weight:normal; background-color:#fafafa; |')
    table.insert(output," Other verbs from root ''[["..(root or "unknown") .."]]''&nbsp;\n|-\n| ")
	
	local sats = getSatTable(root,sat,exclude)
	
	return table.concat(output)..require("Module:Columns").create_list { 
			background_color = "#F8F8FF",
			column_count = 3,
			lang = lang,
		    content = sats,
	}..'\n|}'
end
	
return export