Модул:Infobox — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (Primeni kategoriju za RTI i kada nije specifikovan nijedan odsek)
м (string -> ustring)
Ред 11: Ред 11:
local function catSemester(cats, arg)
local function catSemester(cats, arg)
local semester = tonumber(mw.ustring.match(arg, '%d+'))
local semester = tonumber(mw.ustring.match(arg, '%d+'))
local matchSI = mw.string.match(arg, '%d+ %(СИ%)')
local matchSI = mw.ustring.match(arg, '%d+ %(СИ%)')
local matchRTI = mw.string.match(arg, '(%d+) %(РТИ%)')
local matchRTI = mw.ustring.match(arg, '(%d+) %(РТИ%)')
if (not matchRTI) or matchSI then
if (not matchRTI) or matchSI then
cat(cats, data.semesters[semester] .. ' семестар')
cat(cats, data.semesters[semester] .. ' семестар')

Верзија на датум 19. фебруар 2022. у 23:26

Модул за аутокатегоризацију на основу података прослеђених у инфокутију за предмет. Овај модул такође довлачи потребне податке за рад из модула са подацима.


local p = {}

local data = mw.loadData('Module:Infobox/data')

local function cat(cats, name)
	table.insert(cats, '[[Категорија:')
	table.insert(cats, name)
	table.insert(cats, ']]')
end

local function catSemester(cats, arg)
	local semester = tonumber(mw.ustring.match(arg, '%d+'))
	local matchSI = mw.ustring.match(arg, '%d+ %(СИ%)')
	local matchRTI = mw.ustring.match(arg, '(%d+) %(РТИ%)')
	if (not matchRTI) or matchSI then
		cat(cats, data.semesters[semester] .. ' семестар')
	end
	if (not matchSI) or matchRTI then
		cat(cats, data.semesters[tonumber(matchRTI)] .. ' семестар (РТИ)')
	end
end

function p.main(frame)
	local cats = {}
	local args = frame:getParent().args
	catSemester(cats, args['семестар'])
	return table.concat(cats)
end

return p