Module:etymology-only languages, csv format

local languages = require("Module:languages/data/all") local families = require("Module:families/data") local etym_data = require('Module:etymology_languages/data')

-- based on Module:list_of_languages

local export = {}

function export.show(frame) local rows = {}

local codes_list = {} local items = {}

for code, data in pairs(etym_data) do       if not codes_list[data] then codes_list[data] = {} table.insert(items, data) end table.insert(codes_list[data], code) end

table.sort(items, function (apple, orange)           return apple[1] < orange[1]        end)

local function make_parent_link(code) if languages[code] then return (languages[code][1]) elseif families[code] then return (families[code][1]) elseif etym_data[code] then return (etym_data[code][1]) elseif code then return ' ' else return '[missing]' end end

local sep = ";" local minor_sep = ","

local column_names = "line" ..sep.. "code" ..sep.. "canonical name" ..sep.. "parent" ..sep.. "other names"

for line, data in ipairs(items) do       local codes = codes_list[data]

table.sort(codes)

local row = {}

table.insert(row, line) table.insert(row, table.concat(codes, minor_sep)) table.insert(row, data[1]) table.insert(row, make_parent_link(data[3])) table.insert(row, data.otherNames and table.concat(data.otherNames, minor_sep) or "") table.insert(rows, table.concat(row, sep)) end return " \n" .. column_names .. "\n" .. table.concat(rows, "\n") .. " " end

return export