Module:User:Victar/links-list

local export = {} local m_languages = require("Module:languages")

function export.show(frame)

local list_with_holes = { list = true, allow_holes = true } local params = { ["columns"] = {type = "number"}, ["inline"] = {type = "boolean", default = false}, ["limit"] = {type = "number"} }	local frame_args = require("Module:parameters").process(frame.args, params) params = { [1] = { required = true, default = "en" }, [2] = { required = true, list = true, allow_holes = true }, ["accel"] = {}, ["alt"] = list_with_holes, ["g"] = list_with_holes, ["t"] = list_with_holes, ["id"] = list_with_holes, ["lit"] = list_with_holes, ["pos"] = list_with_holes, ["gloss"] = { alias_of = "t" }, ["tr"] = list_with_holes, ["ts"] = list_with_holes, ["sc"] = {}, ["columns"] = {type = "number"}, ["inline"] = {type = "boolean", default = false}, ["limit"] = {type = "number"} }	local args = require("Module:parameters").process(frame:getParent.args, params) local terms if args[2].maxindex > 0 then terms = args[2] else terms = {"beer and skittles", "beer belly", "beer-bust", "beer can", "beered-up", "beer garden", "beer goggles", "beer gut", "beer hall", "beerily", "beerish", "beerless", "beer mat", "beer muscles", "beer o'clock", "beer parlour", "beerstone", "beery", "bock beer", "champagne taste on a beer budget", "craft beer", "cry in one's beer", "ginger beer", "keg beer", "ice beer", "near beer", "root beer", "small beer", "spruce beer"} terms.maxindex = #terms end local sc = args["sc"] local columns = frame_args["columns"] or args["columns"] local inline = frame_args["inline"] or args["inline"] local limit = frame_args["limit"] or args["limit"] local lang = args[1] lang = m_languages.getByCode(lang) or m_languages.err(lang, "lang") if sc then sc = require("Module:scripts").getByCode(sc) or error("The script code \"" .. sc .. "\" is not valid.") end local links = {} local maxindex = {} if limit then maxindex = limit else maxindex = math.max(terms.maxindex, args.tr.maxindex, args.ts.maxindex) end local link_data = {} for i = 1, maxindex do		link_data[i] = { lang = lang, sc = sc, term = terms[i], accel = args.accel, alt = args.alt[i], g = args.g[i], id = args.id[i], lit = args.lit[i], pos = args.pos[i], gloss = args.t[i], tr = args.tr[i], ts = args.ts[i], }	end -- Assume no non-BMP characters for now. local compare = require "Module:collation".make_compare_func(lang) table.sort(link_data,		function (a, b)			if a.term and b.term then				return compare(a.term, b.term)			else				return a.term ~= nil			end		end) local links = {} local full_link = require "Module:links".full_link for i = 1, maxindex do		links[i] = full_link(link_data[i]) end local class = {} if inline then columns = false table.insert(class, "horizontal") end if columns == 2 then table.insert(class, "column-count-2") elseif columns == 3 then table.insert(class, "column-count-3") end local links = table.concat(links, "\n") local class = table.concat(class, " ") return "\n" .. links .. "\n" end

return export