Модуль:Ссылки

Материал из Кадровый состав НКВД 1935-1939
Перейти к навигации Перейти к поиску

Для документации этого модуля может быть создана страница Модуль:Ссылки/doc

local p = {}
tools = require( 'Модуль:Tools' )

p[''] = function ( frame )
	local Args, tmp = tools.checkargs( frame:getParent().args,
        { ['публикация'] = true, ['источник'] = true, ['архив'] = true, } )
    if not Args then
		return tools.errorMsg( 'Ссылки', 'Неизвестный параметр «' .. tmp .. '»', '' )
    end
	local out = {}
	if Args['публикация'] then
		out[#out+1] = 'опубликовано: <span class="nkvd-value">' 
			.. Args['публикация'] .. '</span>'
	end
	if Args['источник'] then
		out[#out+1] = 'воспроизводится по: <span class="nkvd-value">' 
			.. Args['источник'] .. '</span>'
	end
	if Args['архив'] then
		out[#out+1] = '<span class="nkvd-value">' 
			.. Args['архив'] .. '</span>'
	end
	return '<span class="nkvd-links">' .. table.concat( out, ' &bull; ' ) .. '</span>'
end

p.Main = function ( frame )
	local Args, tmp = tools.checkargs( frame:getParent().args,
        { true, ['первоисточник'] = true, ['источник'] = true, ['архив'] = true, 
        	['дополнение'] = true, ['сноска'] = true, } )
    if not Args then
		return tools.errorMsg( 'ссылка', 'Неизвестный параметр «' .. tmp .. '»', '' )
    end
	if Args[1] and Args['источник'] then
		return tools.errorMsg( 'ссылка', 'Источник задан и как позиционный параметр, и как ключевой', '' )
	end
	local out 
	if Args['первоисточник'] then
		out = '<span class="nkvd-value">' .. Args['первоисточник'] 
			.. '</span> (воспроизводится по: <span class="nkvd-value">' 
			.. ( Args[1] and Args['источник'] ) .. '</span>)'
	else
		out = '<span class="nkvd-value">' .. ( Args[1] and Args['источник'] ) .. '</span>'
	end
	if Args['архив'] then
		if out then
			out = out .. '; '
		else
			out = ''
		end
		out = out .. '<span class="nkvd-archive">' ..  Args['архив'] .. '</span>'
	end
	return '<span class="nkvd-links">' .. out .. tools.commonParams( Args['дополнение'], Args['сноска']  )
		.. '</span>'
end

return p