Dokumentizo por ica modulo povas kreesar ye Modulo:etiketi/dokumentado

local m_labeldata = mw.loadData("Module:etiketi/donaji")
local m_utilities = require("Module:utilaji")

local export = {}

local function show_categories(data, lang, script, sort_key, script2, sort_key2, term_mode)
	local categories = {}
	local categories2 = {}
	
	for i, cat in ipairs(data.topical_categories or {}) do
		table.insert(categories, lang:getCode() .. ":" .. cat)
		
		if script then
			table.insert(categories, lang:getCode() .. ":" .. cat .. " in " .. script .. " script")
		end
		
		if script2 then
			table.insert(categories2, lang:getCode() .. ":" .. cat .. " in " .. script2 .. " script")
		end
	end
	
	for i, cat in ipairs(data.sense_categories or {}) do
		cat = (term_mode and (cat .. " terms") or ("terms with " .. cat .. " senses"))
		table.insert(categories, lang:getCanonicalName() .. "-" .. cat)
		
		if script then
			table.insert(categories, lang:getCanonicalName() .. " " .. cat .. " in " .. script .. " script")
		end
		
		if script2 then
			table.insert(categories2, lang:getCanonicalName() .. " " .. cat .. " in " .. script2 .. " script")
		end
	end

	for i, cat in ipairs(data.pos_categories or {}) do
		table.insert(categories, lang:getCanonicalName() .. "-" .. cat)
		
		if script then
			table.insert(categories, lang:getCanonicalName() .. " " .. cat .. " in " .. script .. " script")
		end
		
		if script2 then
			table.insert(categories2, lang:getCanonicalName() .. " " .. cat .. " in " .. script2 .. " script")
		end
	end
	
	for i, cat in ipairs(data.regional_categories or {}) do
		table.insert(categories, cat .. "-" .. lang:getCanonicalName())
		
		if script then
			table.insert(categories, cat .. " " .. lang:getCanonicalName() .. " in " .. script .. " script")
		end
		
		if script2 then
			table.insert(categories2, cat .. " " .. lang:getCanonicalName() .. " in " .. script2 .. " script")
		end
	end
	
	for i, cat in ipairs(data.plain_categories or {}) do
		table.insert(categories, cat)
		
		if script then
			table.insert(categories, cat .. " in " .. script .. " script")
		end
		
		if script2 then
			table.insert(categories2, cat .. " in " .. script2 .. " script")
		end
	end
	
	return m_utilities.format_categories(categories, lang, sort_key) .. m_utilities.format_categories(categories2, lang, sort_key2)
end

function export.show_labels(labels, lang, script, script2, sort_key, sort_key2, nocat, term_mode)
	if #labels < 1 then
		if mw.title.getCurrentTitle().nsText == "Shablono" then
			labels = {"example"}
		else
			error("You must specify at least one label.")
		end
	end
	
	-- Show the labels
	local omit_preComma = false
	local omit_postComma = true
	local omit_preSpace = false
	local omit_postSpace = true
	local m_links = require("Module:ligili")
	
	for i, label in ipairs(labels) do
		omit_preComma = omit_postComma
		omit_postComma = false
		omit_preSpace = omit_postSpace
		omit_postSpace = false
		
		local deprecated = false
		if m_labeldata.deprecated[label] then
			deprecated = true
		end
		if m_labeldata.aliases[label] then
			label = m_labeldata.aliases[label]
		end
		if m_labeldata.deprecated[label] then
			deprecated = true
		end
			
		local data = m_labeldata.labels[label] or {}
			
		label = m_links.english_links(data.display or label)
		
		local omit_comma = omit_preComma or data.omit_preComma
		omit_postComma = data.omit_postComma
		local omit_space = omit_preSpace or data.omit_preSpace
		omit_postSpace = data.omit_postSpace
		
		if deprecated then
			label = '<span class="deprecated-label">' .. label .. '</span>'
			if not nocat then
				label = label .. m_utilities.format_categories({ "Entries with deprecated labels" }, lang)
			end
		end
		
		label = (omit_comma and "" or '<span class="ib-comma">,</span>') .. (omit_space and "" or "&#32;") .. label
		
		labels[i] = label .. (nocat and "" or show_categories(data, lang, script, sort_key, script2, sort_key2, term_mode))
	end
	
	return
		"<span class=\"ib-brac\">(</span><span class=\"ib-content\">" ..
		table.concat(labels, "") ..
		"</span><span class=\"ib-brac\">)</span>"
end

return export