Модуль:Колдонуучу:Абдырашит Сатылганов/Макалалар

Википедия дан

Documentation for this module may be created at Модуль:Колдонуучу:Абдырашит Сатылганов/Макалалар/doc

local p = {}

local data = mw.loadData('Module:Колдонуучу:Абдырашит Сатылганов/Макалалар/data')
local frame = mw.getCurrentFrame()

local themes = {
	'Физика',
	'Астрономия',
	'Экзопланеталар',
	'Биология',
	'География',
	'Зоология',
	'Химия',
	'Илимий чөйрө',
	'Тасмалар',
	'Персоналар',
	'Кыргызстан',
	'Жалал-Абад',
	'Технка',
	'Саясат',
	'Баскетбол',
	'Хоккей',
	'Футбол',
	'Олимпиада',
	'Флорбол',
	'Жана башкалар'
	}

-- жадыбалдын башжазуусун форматтайт
p.makeHeader = function()
	return mw.ustring.format('%s%s',
		'\n{| class="standard sortable"\n|-\n',
		'! Макаланын аталышы !! Макаланын көлөмү, кБ !! Менин салымыдын пайызы\n|-\n'
		)
end

-- жадыбалдын төлөсүн форматтайт
p.makeFooter = function()
	return mw.ustring.format('%s',
		'\n|}\n'
		)
end

-- теманын башжазуусун форматтайт
p.makeSubheader = function(name)
	return mw.ustring.format('%s%s',
		'\n|-\n! colspan=3 |', name
		)
end

-- жадыбалдын талаасын форматтайт
p.makeLine = function(title)
	return mw.ustring.format('%s%s%s%s%s%s%s',
		'\n|-\n| [[', title, ']]',
		'\n| style="text-align:right;" |', frame:callParserFunction('PAGESIZE:' .. title),
		'\n| style="text-align:right;" |', tostring(data[title].part)
		)
end

-- темалардын маалыматы үчүн макалалардын тизмесин форматтайт
p.makeSubList = function(name)
	local list = ''
	for i, v in pairs(data) do
		if v.theme == name then
			list = list .. p.makeLine(i)
		end
	end
	return list
end

-- теманын башжазуусу менен баардык макалалардын тизмесин форматтайт
p.makeList = function()
	local list = ''
	for i, t in pairs(themes) do
		list = list .. p.makeSubheader(t)
		list = list .. p.makeSubList(t)
	end
	return list
end

-- жадыбалдын жыйынтыгын форматтайт
p.makeTable = function()
	return mw.ustring.format('%s%s%s',
		p.makeHeader(),
		p.makeList(),
		p.makeFooter()
	)
end

return p