Модул:Infobox — разлика између измена
Пређи на навигацију
Пређи на претрагу
м (Ne mora eksplicitno da se kaže za koji odsek ukoliko može da se zaključi iz parametra za odsek) |
м (pairs() iterira po tabeli) |
||
Ред 11: | Ред 11: | ||
local function decomposeDepartments(arg) | local function decomposeDepartments(arg) | ||
local decomposed = {} | local decomposed = {} | ||
for _, v in pairs(arg) do | for _, v in pairs(mw.text.split(arg, ', ', true)) do | ||
decomposed[v] = true | decomposed[v] = true | ||
end | end |
Верзија на датум 19. фебруар 2022. у 23:35
Модул за аутокатегоризацију на основу података прослеђених у инфокутију за предмет. Овај модул такође довлачи потребне податке за рад из модула са подацима.
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 decomposeDepartments(arg)
local decomposed = {}
for _, v in pairs(mw.text.split(arg, ', ', true)) do
decomposed[v] = true
end
return decomposed
end
local function catSemester(cats, arg, departments)
local semester = tonumber(mw.ustring.match(arg, '%d+'))
local matchSI = mw.ustring.match(arg, '%d+ %(СИ%)')
local matchRTI = mw.ustring.match(arg, '(%d+) %(РТИ%)')
if (not departments['РТИ']) or matchSI then
cat(cats, data.semesters[semester] .. ' семестар')
end
if (not departments['СИ']) or matchRTI then
local semesterRTI = matchRTI and tonumber(matchRTI) or semester
cat(cats, data.semesters[semesterRTI] .. ' семестар (РТИ)')
end
end
function p.main(frame)
local cats = {}
local args = frame:getParent().args
local departments = decomposeDepartments(args['одсек'])
catSemester(cats, args['семестар'], departments)
return table.concat(cats)
end
return p