local p = {}
function p. mainCareerList(frame) ▼
-- load configuration from a separate file
local rowsargs = ''frame.args▼
local config = mw.loadData('Module:CareerList/config') ▼
local siteNamesite = string. upperlower( args.site) ▼
local id = params[3]args.id or '' ▼
local alias = args.alias or args[1]
local notes = params[5]args.notes or ' N/A' ▼
-- получаем конфигурацию сайтов
-- helper function to get the config value for a site
▲ local configsites = mw.loadData('Module:CareerList/config')
local function getConfigValue(site, key)
returnlocal config[site]siteData and= configsites[site][key]
if not siteData then
-- helper function to format the alias or notes field
local function formatText(text)
return text ~= '' and text or 'N/A'
end
-- заменяем переменную $1 в URL на значение id
-- helper function to generate the table row
local url = siteData.url:gsub('%$1', id)
local function generateTableRow(site, id, alias, notes, rowColor)
local siteColor = getConfigValue(site, 'color')
-- формируем ссылку
local cellColor = site == 'Website' and '#E7E7E7' or '#DADADA'
local rowStylelink = string.format('background-color:[%s %s;]', rowColorurl, args.site)
local siteStyle = string.format('background-color: %s;', siteColor or cellColor)
-- формируем ячейки таблицы
▲ local siteName = string.upper(site)
local urlcells = getConfigValue(site, 'url'):gsub('%$1', id){
siteData.label,
<tr style="%s">link,
<td style="%s">%s</td>alias,
notes
<td style="%s"><a href="%s">%s</a></td>
<td style="%s">%s</td>
<td style="%s">%s</td>
-- возвращаем сформированную строку таблицы
return string.format(' <table|-\n| style="%s "> || %s </table>', tableStyle|| %s || %s', rowsunpack(cells)) ▼
]], rowStyle, siteStyle, siteName, cellColor, url, site, cellColor, alias, cellColor, formatText(notes))
end
-- main function to generate the tablep.CareerListTop(frame)
local args = frame.args
local list = args.list or ''
▲ return string.format([ =[
local rowColor = '#FFFFFF'
{| class="wikitable"
for row in mw.text.gsplit(list, '%{%{CareerList') do
|+ %s
local params = mw.text.split(row, '|')
! Категория
local site = params[2] or ''
! Ссылка
▲ local id = params[3] or ''
! Псевдоним
local alias = params[4] or mw.title.getCurrentTitle().text
! Заметки
▲ local notes = params[5] or ''
%s]=], args.title or '', list)
rows = rows .. generateTableRow(site, id, alias, notes, rowColor)
rowColor = rowColor == '#FFFFFF' and '#F3F3F3' or '#FFFFFF'
local tableStyle = 'background-color: #F2F2F2; width: 100%;'
▲ return string.format('<table style="%s">%s</table>', tableStyle, rows)
end
|