Модуль:Ведомости: различия между версиями
Перейти к навигации
Перейти к поиску
StasR (обсуждение | вклад) Нет описания правки |
StasR (обсуждение | вклад) Нет описания правки |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
local p ={} | local p ={} | ||
tools = tools or require( 'Модуль:Tools' ) | tools = tools or require( 'Модуль:Tools' ) | ||
local function gazeta( frame, title, vedlink ) | |||
local | |||
function | |||
args = frame:getParent().args | args = frame:getParent().args | ||
local year, num, form = tools.parseDate( args[1] ), args[2], mw.text.trim( args[3] or '' ) | 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, '^ *(%d+)%s*%(%s*(%d+)%s*%) *$' ) | local lnum, tnum = string.match( num, '^%s*(%d+)%s*%(%s*(%d+)%s*%)%s*$' ) | ||
if lnum then | if lnum then | ||
lnum = tonumber( lnum ) | lnum = tonumber( lnum ) | ||
Строка 106: | Строка 11: | ||
lnum = tonumber( num ) | lnum = tonumber( num ) | ||
end | end | ||
if ( year or '' ) == '' or not lnum then | 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 | end | ||
local date | local date | ||
Строка 113: | Строка 22: | ||
date, year = tools.reparseDate( year ), string.sub( year, 1, 4) | date, year = tools.reparseDate( year ), string.sub( year, 1, 4) | ||
end | end | ||
local u = vedlink[year..':'..lnum] or {} | 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 | date = date or u.date | ||
tnum = tnum or u.tnum | tnum = tnum or u.tnum | ||
Строка 123: | Строка 39: | ||
end | end | ||
-- local text = '«Ведомости Верховного Совета СССР», ' .. date .. ', № ' .. lnum | -- local text = '«Ведомости Верховного Совета СССР», ' .. date .. ', № ' .. lnum | ||
local text = '№ ' .. lnum .. ', ' .. date | local text | ||
if lnum ~= 0 then | |||
text = '№ ' .. lnum .. ', ' .. date | |||
else | |||
text = date | |||
end | |||
local link = u.link | local link = u.link | ||
if link then | if link then | ||
Строка 133: | Строка 55: | ||
return link | return link | ||
else | else | ||
return '<span class=error> Запрос несуществующей ссылки на | return '<span class=error> Запрос несуществующей ссылки на '.. title .. '. </span>' | ||
end | end | ||
end | end | ||
Строка 139: | Строка 61: | ||
local prefix = '' | local prefix = '' | ||
if form == '' then | if form == '' then | ||
prefix = ' | prefix = title .. ', ' | ||
elseif form ~= 'N' and form ~='№' then | elseif form ~= 'N' and form ~='№' then | ||
text = form | text = form | ||
Строка 151: | Строка 73: | ||
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 | 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