Эстәлеккә күсергә

Модуль:FormatRow

Википедия — ирекле энциклопедия мәғлүмәте

Для документации этого модуля может быть создана страница Модуль:FormatRow/doc

local p = {}

--[[
  Функция выводит каждый неименованный параметр как строку таблицы в вики-разметке
  Именованные параметры:
    odd  - стиль для нечётных строк
    even - стиль для чётных строк
    each - дополнительный стиль для каждой строки
]]
function p.AsRows(frame)
	local args = frame.args;
	if args[1] == nil then
		args = frame:getParent().args;
	end
	local params = {
		even = args['even'] or args['нс'], 
		odd  = args['odd']  or args['чс'],
		each = args['each'] or args['кс']
	}
	local rows = {}
	local num = 1;
	local cnt = 1;
	value = args[num];
    while value ~= nil do
    	value = mw.text.trim(value)
    	if value ~= '' then
	    	local style = '';
	    	if (cnt % 2) == 0 then
	    	  style = params.even or '';
	    	else
	    	  style = params.odd or '';
	    	end
	    	if params.each ~= nil then
	    		style = params.each .. '; ' .. style;
	    	end
	    	local row = '|-'
	    	if style ~= '' then
	    		row = row .. ' style ="' .. style .. '"';
	    	end
	    	row = row .. '\n';
	  		table.insert(rows, row .. value);
	  		cnt = cnt+1
  		end
    	num = num+1;
        value = args[num]
    end
 	return table.concat(rows, '\n');
end

return p