Модуль:LPSN2

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Документация
local p = {}

function p.main(frame)
	local rang = frame.args.rang
	local latin = frame.args.latin
	local v = frame.args.v
	
	local quotes, candidatus

	latin, quotes = string.gsub(latin, '"', '')
	latin, candidatus = string.gsub(latin, '^[Cc]andidatus +', '')
	
	local args = {
		lang = 'en',
		showlang = '1',
		accessdate = v
	}

	if (frame.args.noiw ~= '') then	
		args.work = 'LPSN'
		args.publisher = 'Leibniz Institute DSMZ'
	else
		args.work = frame:expandTemplate({title = 'iw', args = {'LPSN'}})
		args.publisher = frame:expandTemplate({title = 'iw', args = {'Немецкая коллекция микроорганизмов и клеточных культур Ассоциации Лейбница', 'Leibniz Institute DSMZ', 'de', 'Deutsche Sammlung von Mikroorganismen und Zellkulturen'}})
	end

	args.url = 'https://lpsn.dsmz.de/' .. string.lower(rang .. '/' .. string.gsub(latin, ' ', '-'))

	if candidatus == 0 then
		latin = "''" .. latin .. "''"
	else
		latin = "''Candidatus'' " .. latin
	end
	if quotes + candidatus > 0 then
		latin = '"' .. latin .. '"'
	end

	args.title = rang .. ' ' .. latin

    return frame:expandTemplate({title = 'Cite web 2', args = args})
end

return p