Модуль:Ведомости: различия между версиями
Перейти к навигации
Перейти к поиску
StasR (обсуждение | вклад) Нет описания правки |
StasR (обсуждение | вклад) Нет описания правки |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
local p ={} | local p ={} | ||
tools = tools or require( 'Модуль:Tools' ) | |||
local function gazeta( frame, title, vedlink ) | |||
function | |||
args = frame:getParent().args | args = frame:getParent().args | ||
local year, num = | local year, num, form = tools.parseDate( mw.text.trim( args[1] ) ), args[2] or '' , mw.text.trim( args[3] or '' ) | ||
local lnum, tnum = string.match( num, '^%s*(%d+)%s*%(%s*(%d+)%s*%)%s*$' ) | local lnum, tnum = string.match( num, '^%s*(%d+)%s*%(%s*(%d+)%s*%)%s*$' ) | ||
if lnum then | if lnum then | ||
Строка 105: | Строка 11: | ||
lnum = tonumber( num ) | lnum = tonumber( num ) | ||
end | end | ||
if not (year | if not lnum then | ||
return '<span class=error> Ошибка в | lnum = 0 | ||
end | |||
if ( year or '' ) == '' then -- or not lnum then | |||
return '<span class=error> Ошибка в ссылке на '.. title .. '. </span>' | |||
end | |||
local date | |||
if #year ~= 4 then | |||
date, year = tools.reparseDate( year ), string.sub( year, 1, 4) | |||
end | |||
local u | |||
if vedlink then | |||
vedlink = mw.loadData( 'Модуль:Ведомости/' .. vedlink ) | |||
u = vedlink[year..':'..lnum] or {} | |||
else | |||
u = {} | |||
end | end | ||
-- local u = vedlink[year..':'..lnum] or {} | |||
date = date or u.date | |||
tnum = tnum or u.tnum | tnum = tnum or u.tnum | ||
if date then | if not date then | ||
date = | date = year | ||
end | end | ||
if tnum then | if tnum then | ||
lnum = lnum .. ' (' .. tnum .. ')' | |||
end | |||
-- local text = '«Ведомости Верховного Совета СССР», ' .. date .. ', № ' .. lnum | |||
local text | |||
if lnum ~= 0 then | |||
text = '№ ' .. lnum .. ', ' .. date | |||
else | else | ||
text = date | |||
end | end | ||
local | |||
if | local link = u.link | ||
if link then | |||
link = 'https://drive.google.com/uc?export=view&id=' .. link | |||
end | end | ||
return text | |||
if form == '-' then | |||
if link then | |||
return link | |||
else | |||
return '<span class=error> Запрос несуществующей ссылки на '.. title .. '. </span>' | |||
end | |||
end | |||
local prefix = '' | |||
if form == '' then | |||
prefix = title .. ', ' | |||
elseif form ~= 'N' and form ~='№' then | |||
text = form | |||
end | |||
if link then | |||
return prefix .. '[' .. link .. ' ' .. text .. ']' | |||
else | |||
return prefix .. text | |||
end | |||
end | |||
function p.Ved( frame ) | |||
return gazeta( frame, '«Ведомости Верховного Совета СССР»', 'ved') | |||
end | |||
function p.Izv( frame ) | |||
return gazeta( frame, '«Известия ЦИК Союза ССР и ВЦИК»' ) | |||
end | |||
function p.IzvG( frame ) | |||
return gazeta( frame, '«Известия»', 'izvG' ) | |||
end | |||
function p.KZ( frame ) | |||
return gazeta( frame, '«Красная звезда»', 'kz' ) | |||
end | end | ||
return p | return p |
Версия от 21:44, 3 ноября 2017
Для документации этого модуля может быть создана страница Модуль:Ведомости/doc
local p ={}
tools = tools or require( 'Модуль:Tools' )
local function gazeta( frame, title, vedlink )
args = frame:getParent().args
local year, num, form = tools.parseDate( mw.text.trim( args[1] ) ), args[2] or '' , mw.text.trim( args[3] or '' )
local lnum, tnum = string.match( num, '^%s*(%d+)%s*%(%s*(%d+)%s*%)%s*$' )
if lnum then
lnum = tonumber( lnum )
tnum = tonumber( tnum )
else
lnum = tonumber( num )
end
if not lnum then
lnum = 0
end
if ( year or '' ) == '' then -- or not lnum then
return '<span class=error> Ошибка в ссылке на '.. title .. '. </span>'
end
local date
if #year ~= 4 then
date, year = tools.reparseDate( year ), string.sub( year, 1, 4)
end
local u
if vedlink then
vedlink = mw.loadData( 'Модуль:Ведомости/' .. vedlink )
u = vedlink[year..':'..lnum] or {}
else
u = {}
end
-- local u = vedlink[year..':'..lnum] or {}
date = date or u.date
tnum = tnum or u.tnum
if not date then
date = year
end
if tnum then
lnum = lnum .. ' (' .. tnum .. ')'
end
-- local text = '«Ведомости Верховного Совета СССР», ' .. date .. ', № ' .. lnum
local text
if lnum ~= 0 then
text = '№ ' .. lnum .. ', ' .. date
else
text = date
end
local link = u.link
if link then
link = 'https://drive.google.com/uc?export=view&id=' .. link
end
if form == '-' then
if link then
return link
else
return '<span class=error> Запрос несуществующей ссылки на '.. title .. '. </span>'
end
end
local prefix = ''
if form == '' then
prefix = title .. ', '
elseif form ~= 'N' and form ~='№' then
text = form
end
if link then
return prefix .. '[' .. link .. ' ' .. text .. ']'
else
return prefix .. text
end
end
function p.Ved( frame )
return gazeta( frame, '«Ведомости Верховного Совета СССР»', 'ved')
end
function p.Izv( frame )
return gazeta( frame, '«Известия ЦИК Союза ССР и ВЦИК»' )
end
function p.IzvG( frame )
return gazeta( frame, '«Известия»', 'izvG' )
end
function p.KZ( frame )
return gazeta( frame, '«Красная звезда»', 'kz' )
end
return p