Module:columns/sandbox

local export = {}

local m_links = require("Module:links") local m_languages = require("Module:languages")

local function format_list_items(items, lang) local result = {} for i, item in ipairs(items) do		if lang and not string.find(item, " local column_header =  local button = 

function export.create_list(args) -- Fields in args that are used: -- args.column_count, args.content, args.alphabetize, args.background_color, -- args.collapse, args.toggle_category, args.class, args.lang -- Check for required fields? if type(args) ~= "table" then error("expected table, got " .. type(args)) end args.class = args.class or "derivedterms" args.column_count = args.column_count or 1 args.toggle_category = args.toggle_category or "derived terms" local output = {} if args.header then table.insert(output, args.header) end if args.collapse then table.insert(output, (collapse_header:gsub('', args))) table.insert(output, button) end table.insert(output, (column_header:gsub('', args))) if args.alphabetize then require("Module:collation").sort(args.content, args.lang) end table.insert(output, format_list_items(args.content, args.lang)) table.insert(output, ' ') if args.collapse then table.insert(output, ' ') end return table.concat(output) end

-- This function is for compatibility with earlier version of Module:columns -- (now found in Module:columns/old). function export.create_table(...) -- Earlier arguments to create_table: -- n_columns, content, alphabetize, bg, collapse, class, title, column_width, line_start, lang local args = {} args.column_count, args.content, args.alphabetize, args.background_color, args.collapse, args.class, args.title, args.column_width, args.line_start, args.lang = ... return export.create_list(args) end

function export.display(frame) local params = { ["class"] = {}, ["collapse"] = {type = "boolean"}, ["columns"] = {type = "number"}, ["lang"] = {}, ["sort"] = {type = "boolean"}, ["title"] = {default = ""}, ["toggle_category"] = {}, }	local frame_args = require("Module:parameters").process(frame.args, params) params = { [1] = {list = true}, ["title"] = {}, ["lang"] = not frame_args["lang"] and {required = true, default = "und"} or nil, ["collapse"] = {}, }	local args = require("Module:parameters").process(frame:getParent.args, params) local lang = frame_args["lang"] or args["lang"] lang = m_languages.getByCode(lang) or m_languages.err(lang, "lang") local header if args["title"] then header = ' ' .. args["title"] .. " "	end return export.create_list { column_count = frame_args["columns"], content = args[1], alphabetize = frame_args["sort"], header = header, background_color = "#F8F8FF", collapse = frame_args["collapse"], toggle_category = frame_args["toggle_category"], class = frame_args["class"], lang = lang, } end

return export