Модуль:Авторы

Материал из Викитеки — свободной библиотеки

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

local p = {}

local frame = mw.getCurrentFrame()
local args, pargs = frame.args, frame:getParent().args
local data = mw.loadData( "Модуль:Авторы/Data" )
local names, pseudonyms = data.names, data.pseudonyms
local page = mw.title.getCurrentTitle()
local prefix = mw.text.split( page.text, '/' )[1]
local map = { ["Викитека:Проект:БСЭ1"] = "БСЭ1", ["Энциклопедический словарь Гранат"] = "ЭСГ", }
if map[prefix] then prefix = map[prefix] end
local pseudo = pargs[1] or false
local src = pseudonyms[prefix] or pseudonyms[false]
local name = src[pseudo] or pseudo
mw.logObject(src,"src");mw.logObject(name,"name")

function p.PD_year( frame )
	if not name then return end
	local namedata = names[name]; if not namedata then return end
	local D, R, W = tonumber(namedata.D), tonumber(namedata.R), namedata.W
	local year
	if D and R then
		if R > D then year = R else year = D end
	elseif D or R then
		year = D or R
	else
		return
	end
	if W then year = year + 75 else year = year + 71 end
	return year
end

function is ( var ) if ( var == '' or var == nil ) then return nil else return var end end

return p