Module:he-links: difference between revisions

From Wiktionary, the free dictionary
Jump to navigation Jump to search
Content deleted Content added
No edit summary
m count empty strings as omitted arguments
Line 6: Line 6:
function export.term(frame)
function export.term(frame)
local args = {}
local args = {}

for key, val in pairs(frame:getParent().args) do
for key, val in pairs(frame:getParent().args) do
args[key] = val
args[key] = val
end
end

if args["wv"] == "" then args["wv"] = nil end
if args["dwv"] == "" then args["dwv"] = nil end

if args[2] == nil or args[2] == "" then
if args[2] == nil or args[2] == "" then
local form, formwv, formdwv = com.process_wv_triad(args[1] or "", args["wv"], args["dwv"])
local form, formwv, formdwv = com.process_wv_triad(args[1] or "", args["wv"], args["dwv"])
Line 20: Line 23:
end
end
end
end

args["wv"] = nil
args["wv"] = nil
args["dwv"] = nil
args["dwv"] = nil

-- table.insert(args, 1, "he")
-- table.insert(args, 1, "he")
-- shift manually to avoid strange bugs:
-- shift manually to avoid strange bugs:
Line 30: Line 33:
args[2] = args[1]
args[2] = args[1]
args[1] = "he"
args[1] = "he"

-- Passthrough arguments after modification
-- Passthrough arguments after modification
local frame2 = frame:newChild{title = frame:getParent():getTitle(), args = args}:newChild{title = frame:getTitle(), args = frame.args}
local frame2 = frame:newChild{title = frame:getParent():getTitle(), args = args}:newChild{title = frame:getTitle(), args = frame.args}

return m_links_templates.l_term_t(frame2)
return m_links_templates.l_term_t(frame2)
end
end

Revision as of 12:24, 20 August 2015

This module needs documentation.
Please document this module by describing its purpose and usage on the documentation page.

local m_links_templates = require("Module:links/templates")
local com = require("Module:he-common")

local export = {}

function export.term(frame)
	local args = {}

	for key, val in pairs(frame:getParent().args) do
		args[key] = val
	end

	if args["wv"] == "" then args["wv"] = nil end
	if args["dwv"] == "" then args["dwv"] = nil end

	if args[2] == nil or args[2] == "" then
		local form, formwv, formdwv = com.process_wv_triad(args[1] or "", args["wv"], args["dwv"])
		args[1] = form or ""
		if formdwv then
			args[2] = (formwv or form) .. " \\ " .. formdwv
		else
			args[2] = (formwv or form)
		end
	end

	args["wv"] = nil
	args["dwv"] = nil

	-- table.insert(args, 1, "he")
	-- shift manually to avoid strange bugs:
	args[4] = args[3]
	args[3] = args[2]
	args[2] = args[1]
	args[1] = "he"

	-- Passthrough arguments after modification
	local frame2 = frame:newChild{title = frame:getParent():getTitle(), args = args}:newChild{title = frame:getTitle(), args = frame.args}

	return m_links_templates.l_term_t(frame2)
end

return export