Модуль:Створення статей щоденно
Перейти до навігації
Перейти до пошуку
Документація модуля[створити]
Зараз цей модуль не має відповідної документації. Якщо вам відомі призначення та засади використання цього модуля, будь ласка, напишіть хоча б коротеньку документацію. |
Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього шаблону. Підсторінки цієї сторінки. |
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
local scale = args['шкала'] == 'відносна' and 'relative' or 'absolute'
-- Перелік Вікіпедій для таблиці
local languages = {
{ 'en', 'Англійська', 'США' },
{ 'de', 'Німецька', 'Німеччина' },
{ 'fr', 'Французька', 'Франція' },
{ 'uk', 'Українська', 'Україна' },
{ 'nl', 'Нідерландська', 'Нідерланди' },
{ 'ru', 'Російська', 'Росія' },
{ 'it', 'Італійська', 'Італія' },
{ 'es', 'Іспанська', 'Іспанія' },
{ 'pl', 'Польська', 'Польша' },
{ 'ja', 'Японська', 'Японія' },
{ 'ar', 'Арабська', 'Арабська' },
}
local numberOf, todayNumberOf, today, maxToday = {}, {}, {}, 0
for k, v in pairs(languages) do
numberOf[k] = frame:expandTemplate{ title = 'NUMBEROF', args = { 'ARTICLES', v[1] } }
todayNumberOf[k] = frame:expandTemplate{ title = 'TODAYNUMBEROF', args = { 'ARTICLES', v[1] } }
today[k] = numberOf[k] - todayNumberOf[k]
if today[k] > maxToday then
maxToday = today[k]
end
end
local bars = ''
local minWidth = 400;
for k, v in pairs(today) do
bars = bars .. '\n' .. frame:expandTemplate{ title = 'bar pixel', args = {
'[[' .. languages[k][2] .. ' Вікіпедія|' .. languages[k][2] .. ']]',
'#cfe3ff',
scale == 'relative' and math.max(today[k] / maxToday * minWidth, 0) or today[k],
'',
today[k]
} }
end
local lang = mw.language.new('uk')
local result = frame:expandTemplate{ title = 'bar box', args = {
title = 'Сьогодні створено статей<br><span style="font-weight:normal;">' ..
lang:ucfirst(lang:formatDate('l, j xg Y, H:i "(UTC)"')) .. '</span>',
titlebar = '#cfe3ff',
left1 = 'Вікіпедія',
right2 = 'Статей',
barwidth = tostring(minWidth) .. 'px',
bars = bars,
caption = frame:preprocess('\'\'<div style="width:' .. math.max(
minWidth + 154,
scale == 'relative' and minWidth + 154 or (minWidth + 154 + (maxToday - minWidth))
) .. 'px;">' ..
'Розділи, у яких число статей може бути занадто великим чи малим для конкретного відображення в гістограмі:</div>\'\'' ..
'[[Шведська Вікіпедія|Шведська]] — {{#expr: {{NUMBEROF|ARTICLES|sv}}-{{TODAYNUMBEROF|ARTICLES|sv}}}}<br>' ..
'[[Варайська Вікіпедія|Варайська]] — {{#expr: {{NUMBEROF|ARTICLES|war}}-{{TODAYNUMBEROF|ARTICLES|war}}}}<br>' ..
'[[Себуанська Вікіпедія|Себуанська]] — {{#expr: {{NUMBEROF|ARTICLES|ceb}}-{{TODAYNUMBEROF|ARTICLES|ceb}}}}')
} }
mw.logObject(result)
return '<div style="overflow:auto; width:100%;">\n{|\n|-\n|' .. result .. '\n|}</div>'
end
return p