Документация
local p = {}
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local NS_CAT = mw.site.namespaces[14].name
local START = 'Начало'
local function link(name, text, par)
return '[' .. tostring(mw.uri.fullUrl(NS_CAT .. ':' .. name, par)) .. ' ' .. text .. ']'
end
local function td_link_template(pagename, td, v, text)
td:wikitext(link(pagename, text or v, {from = v}))
end
function p.years(frame)
local args = getArgs(frame)
local pagename = args.name or args['имя'] or mw.title.getCurrentTitle().text
local min_val = tonumber(args.min or args['мин'] or -1000)
local max_val = tonumber(args.max or args['макс'] or 2000)
local step = tonumber(args.step or args['шаг'] or 200)
local bc_step = tonumber(args.bcstep or args['шаг до н. э.'] or 200)
local prefix = args.prefix or args['префикс'] or '*'
prefix = mw.ustring.gsub(prefix, '<пробел>', ' ')
local use_letters = yesno(args.letters or args['А']) --русская А
local wt = mw.html.create('table'):attr('role', 'presentation'):addClass('plainlinks'):css('border', '1px solid #a2a9b1'):css('background-color', '#f9f9f9'):css('padding', '5px'):css('font-size', '95%'):css('margin-left', 'auto'):css('margin-right', 'auto')
local row = wt:tag('tr')
row:tag('td'):wikitext(link(pagename, START, {}))
local i = min_val
repeat
if i < 0 then
td_link_template(pagename, row:tag('td'), prefix..tostring(-10000-i), tostring(i))
i = i + bc_step
else
td_link_template(pagename, row:tag('td'), prefix..tostring(i), tostring(i))
i = i + step
end
until i > max_val
if use_letters then
td_link_template(pagename, row:tag('td'), 'А', 'Др. категории')
end
return tostring(wt)
end
return p