יחידה:תכונות טבלה

גרסה מ־23:08, 26 ביוני 2024 מאת יוסף בן מלמד (שיחה | תרומות) (גרסה אחת יובאה)
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)

ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:תכונות טבלה/תיעוד

local function param_to_class(param, val)
	local map = {
		['הסתרה'] = 'mw-collapsible mw-collapsed',
		['מיון'] = 'sortable',
		['סירוגין'] = 'ctd-oddgrey',
		['ריחוף'] = 'ctd-hover',
	}
	if map[param] then return map[param] end
	if param == 'classes' then return val end

	local features = {
		['שמאל'] = 'left',
		['מרכוז'] = 'center',
		['הדגשה'] = 'bold',
		['ללא שבירה'] = 'nowrap',
		['מרכוז משמאל'] = 'center-ltr',
	}
	for feature, code in pairs(features) do
		if param == 'עמודות ' .. feature then
			local cols, tab = mw.text.split(val, '%s*,%s*'), {}
			for _, col in ipairs(cols) do table.insert(tab, mw.ustring.format('ctd-%s-%s', code, col)) end
			return table.concat(tab, ' ')
		end
	end
	return ''
end



local function params_to_classes(args) 
	local classes = {}
	for param, val in pairs(args) do
		table.insert(classes, param_to_class(param, val))
	end
	return  'class="' ..  table.concat(classes, ' ') .. '"'
end

local function classes(frame)
	local args = {} -- collect arguments from the template, then the usage, so the template can set default values, and the usage can override
	for name, val in pairs(frame.args) do args[name] = val end
	for name, val in pairs(frame:getParent().args) do args[name] = val end
	return params_to_classes(args)
end

return {
	['תכונות'] = classes,
}