Modul:grammar-export

Definition från Wiktionary, den fria ordlistan.
Hoppa till navigering Hoppa till sök

Dokumentation för denna modul finns på /dok (redigera), /test


Syfte[redigera]

Samla export av böjningsformer från mallar genom moduler på ett ställe.

Användning[redigera]

Se Modul:grammar#Externa skript.

local h3 = require("Modul:h3")
local export = {}

local function getTemplateInfo(tname)
	local langcode = ""
	local tparts = mw.text.split(tname, "-")

	for i,v in ipairs(tparts) do
		if h3.hasH3(v) then
			return {
				lang = langcode,
				h3 = v,
				modulename = langcode .. "-" .. v
			}
		else
			langcode = langcode .. (langcode == "" and v or "-" .. v)
		end
	end
end

function export.getJson(frame)
	local templatename = frame.args["template"]

	if templatename == "g-länk" then
		local module = require("Modul:grammar-link")
		
		local lang = frame.args["1"] or ""
		local h3 = frame.args["2"] or ""
		local type = frame.args["typ"] or "infl"
		local text = frame.args["3"]

		local list = module.linkExport(text, type, lang, h3)
		local typekey = type == "infl" and "infl" or "x_" .. type

		local export = {
			lang = lang,
			h3 = h3,
			forms = {
				[typekey] = table.concat(list, ", ")
			}
		}

		return mw.text.jsonEncode(export)
	else
		local info = getTemplateInfo(templatename)

		local module = require("Modul:" .. info.modulename)
		local json = module.getJson(frame)

		return '{"lang":"' .. info.lang
			.. '","h3":"' .. info.h3
			.. '","forms":' .. json
			.. '}'
	end
end

return export