Модул:Infobox/bulleted block
Ин модул ҳуҷҷатгузории кофӣ надорад.
Вы можете помочь проекту, создав описание модуля: что он делает, как его использовать, какие параметры он принимает, в какие категории добавляет. Это поможет другим использовать его. P.S. Также не забываем про категорию и интервики. P.P.S. Некоторые советы по оформлению есть на странице проекта «Документирование шаблонов». |
local p = {}
-- takes strings or nils; returns a string
function makeText(frame, text, wikidata, from)
if wikidata and wikidata ~= ''then
return frame:expandTemplate{title='Wikidata', args={wikidata, text or '', from=from or ''}}
else
return text or ''
end
end
-- from [[tg:Модул:Infobox]]
local function maxNumber ( args )
local maxNumber = 0
for argName, _ in pairs(args) do
local argNumber = mw.ustring.match(argName, '^[^0-9]+([0-9]+)$')
if argNumber and tonumber(argNumber) > maxNumber then
maxNumber = tonumber(argNumber)
end
end
return maxNumber
end
function p.main(frame)
local args = frame:getParent().args
local maxNumberArgs = maxNumber(args)
local texts = {}
for i = 1, maxNumberArgs do
if args['матн' .. i] then
texts[i] = makeText(frame, args['матн' .. i], args['викидода' .. i], args['from'])
end
end
local textsAreEmpty = true
for i = 1, maxNumberArgs do
if texts[i] and texts[i] ~= '' then
textsAreEmpty = false
end
end
local results = {}
if not textsAreEmpty and args['зерсарлавҳа'] and args['зерсарлавҳа'] ~= '' then
results['матн1'] = args['зерсарлавҳа']
results['сабки_матн1'] = 'padding-bottom:0; border-bottom:0; text-align:left; font-weight:bold;'
end
local mainText = makeText(frame, args['матн'], args['викидода'], args['from'])
if mainText == '' and args['нишонагузорӣ'] and args['нишонагузорӣ'] ~= '' and not textsAreEmpty then
mainText = ' '
end
if mainText and mainText ~= '' then
results['нишонагузорӣ2'] = args['нишонагузорӣ']
results['сабки_нишонагузорӣ2'] = 'padding-bottom:0; border-bottom:0;'
results['матн2'] = mainText
results['сабки_матн2'] = 'padding-bottom:0; border-bottom:0;'
end
for i = 1, maxNumberArgs do
if texts[i] and texts[i] ~= '' then
results['нишонагузорӣ' .. (i+2)] = ' • ' .. (args['нишонагузорӣ' .. i] or '')
results['матн' .. (i+2)] = texts[i]
local last = true
for j = i+1, maxNumberArgs do
if texts[j] and texts[j] ~= '' then
last = false
end
end
if last then
results['сабки_нишонагузорӣ' .. (i+2)] = 'font-weight:normal; padding-top:0; border-top:0;'
results['сабки_матн' .. (i+2)] = 'padding-top:0; border-top:0;'
else
results['сабки_нишонагузорӣ' .. (i+2)] = 'font-weight:normal; padding-bottom:0; border-bottom:0; padding-top:0; border-top:0;'
results['сабки_матн' .. (i+2)] = 'padding-bottom:0; border-bottom:0; padding-top:0; border-top:0;'
end
end
end
return frame:expandTemplate{title='Қуттӣ/блок', args=results}
end
return p