Pergi ke kandungan

Modul:form of doc/templates

Daripada Wikikamus
--[=[
	This module contains functions to implement {{form of/*doc}} templates.
	The module contains the wrappers meant to be called directly from templates.
	The actual implementations are in [[Module:form of doc]].

	Author: Benwing2
]=]

local export = {}

local m_parameters = require("Module:parameters")
local m_form_of_doc = require("Module:form of doc")

local function create_introdoc_params()
	local boolean = {type = "boolean"}
	local plain = {}
	return {
		["lang"] = plain,
		["exlang"] = {list = true},
		["pldesc"] = plain,
		["primaryentrytext"] = plain,
		["cat"] = {list = true},
		["addlintrotext"] = plain,
		["etymtemp"] = plain,
		["withdot"] = boolean,
		["withcap"] = boolean,
	}
end

function export.introdoc_t(frame)
	local params = create_introdoc_params()
	local args = m_parameters.process(frame:getParent().args, params)
	return m_form_of_doc.introdoc(args)
end

local function create_paramdoc_params()
	local boolean = {type = "boolean"}
	local plain = {}
	return {
		["lang"] = plain,
		["sgdescof"] = plain,
		["art"] = plain,
		["withfrom"] = boolean,
		["withdot"] = boolean,
		["withcap"] = boolean,
	}
end

function export.paramdoc_t(frame)
	local params = create_paramdoc_params()
	local args = m_parameters.process(frame:getParent().args, params)
	return m_form_of_doc.paramdoc(args)
end

local function create_usagedoc_params()
	local params = create_paramdoc_params()
	params["exlang"] = {list = true}
	return params
end

function export.usagedoc_t(frame)
	local params = create_usagedoc_params()
	local args = m_parameters.process(frame:getParent().args, params)
	return m_form_of_doc.usagedoc(args)
end

local function create_fulldoc_params()
	local params = create_introdoc_params()
	local usageparams = create_usagedoc_params()
	for k, v in pairs(usageparams) do
		params[k] = v
	end
	params["shortcut"] = {type = "title", list = true}
	return params
end

function export.fulldoc_t(frame)
	local params = create_fulldoc_params()
	local args = m_parameters.process(frame:getParent().args, params)
	return m_form_of_doc.fulldoc(args)
end

local function create_infldoc_params()
	local params = create_fulldoc_params()
	params["pldesc"] = nil
	local plain = {}
	params["sgdesc"] = plain
	params["form"] = plain
	return params
end

function export.infldoc_t(frame)
	local params = create_infldoc_params()
	local args = m_parameters.process(frame:getParent().args, params)
	return m_form_of_doc.infldoc(args)
end

function export.tagtable_t(frame)
	return m_form_of_doc.tagtable()
end

function export.non_alias_shortcut_table_t(frame)
	return m_form_of_doc.non_alias_shortcut_table()
end

function export.lang_specific_tables_t(frame)
	return m_form_of_doc.lang_specific_tables()
end

function export.postable_t(frame)
	return m_form_of_doc.postable()
end

function export.lang_independent_category_table_t(frame)
	return m_form_of_doc.lang_independent_category_table()
end

function export.lang_independent_label_table_t(frame)
	return m_form_of_doc.lang_independent_label_table()
end

return export