Модуль:Участник:Artem Korzhimanov/Статьи
Перейти к навигации
Перейти к поиску
Этот модуль формирует таблицу на странице Участник:Artem Korzhimanov/Статьи.
local p = {}
local data = mw.loadData('Модуль:Участник:Artem Korzhimanov/Статьи/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