Module:scripts/print

local export = {}

local function generate_table(name_to_code) local result = {} local script_data = mw.loadData("Module:scripts/data") local iterate if name_to_code then for code, data in pairs(script_data) do			if not result[data[1]] or #code == 4 then -- Sometimes, multiple scripts have the same name, e.g. 'Arab', -- 'fa-Arab', 'ur-Arab' and several others are called "Arabic". -- Prefer the one with four characters when disambiguating. result[data[1]] = code end end else for code, data in pairs(script_data) do			result[code] = data[1] end end return result end

local function dump(data, name_to_code) local output = { "return {" } local i = 1 local sorted_pairs = require "Module:table".sortedPairs for k, v in sorted_pairs(data) do		i = i + 1 output[i] = ('\t[%q] = %q,'):format(k, v)	end table.insert(output, "}") return table.concat(output, "\n") end

function export.code_to_name(frame) return require "Module:debug".highlight(dump(generate_table(false), false)) end

function export.name_to_code(frame) return require "Module:debug".highlight(dump(generate_table(true), true)) end

return export