Module:definition/templates

local export = {}

local m_definition = require("Module:definition")

-- Used for Template:&lit. function export.and_lit_t(frame) local parent_args = frame.getParent and frame:getParent.args or frame local compat = parent_args["lang"] local offset = compat and 0 or 1 local params = { [compat and "lang" or 1] = {required = true, default = "und"}, [1 + offset] = {list = true, allow_holes = true}, ["alt"] = {list = true, allow_holes = true, require_index = true}, ["sc"] = {}, ["qualifier"] = {}, ["dot"] = {}, ["nodot"] = {type = "boolean"}, ["nocap"] = {type = "boolean"}, }	local args = require("Module:parameters").process(parent_args, params) local lang = args[compat and "lang" or 1] lang = require("Module:languages").getByCode(lang) or require("Module:languages").err(lang, 1) local sc = args["sc"] sc = (sc and (require("Module:scripts").getByCode(sc) or error("The script code \"" .. sc .. "\" is not valid.")) or nil)

-- Find the maximum index among any of the list parameters. local maxmaxindex = 0 for k, v in pairs(params) do		if v.list and v.allow_holes and not v.alias_of and args[k].maxindex > maxmaxindex then maxmaxindex = args[k].maxindex end end

local terms = {} for i=1,maxmaxindex do		table.insert(terms, {			term = args[1 + offset][i],			alt = args["alt"][i],			lang = lang,			sc = sc		}) end if next(terms) == nil then -- if no terms were provided title = mw.title.getCurrentTitle.text for word in title:gmatch("[^%s]+") do -- insert all words of the title table.insert(terms, {				term = word,				lang = lang,				sc = sc			}) end end

return m_definition.and_lit(terms, args["qualifier"], args["dot"], args["nodot"], args["nocap"]) end

return export