Модуль:Сайт: различия между версиями

Материал из Кадровый состав НКВД 1935-1939
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 25: Строка 25:
['obd-memorial.ru']          = { type = 'obd',    name = ' ОБД МО]', },
['obd-memorial.ru']          = { type = 'obd',    name = ' ОБД МО]', },
unknow                        = { type = 'unknow', name = '', },
unknow                        = { type = 'unknow', name = '', },
['memo.ru']                  = 'memo',
['www.memo.ru']              = 'memo',
memo                          = { { re = '^/history/nkvd/kto2/', type = 'ref', name = 'Н. Петрова «Кто руководил органами ГБ (1941−54)]', },
                              { re = '^/history/NKVD/kto2/', type = 'ref', name = 'Н. Петрова «Кто руководил органами ГБ (1941−54)]', },
                              { re = '^/history/nkvd/kto/', type = 'ref', name = 'Н. Петрова и К. Скоркина «Кто руководил НКВД (1934−41)]', },
                              { re = '^/history/NKVD/kto/', type = 'ref', name = 'Н. Петрова и К. Скоркина «Кто руководил НКВД (1934−41)]', },
                            },
}
}


Строка 34: Строка 41:
end
end
local site = tabSite[uri.host]
local site = tabSite[uri.host]
if type( site ) == 'string' then
local arr, relpath = tabSite[site], uri.path
site = nil
for _, v in ipairs( arr ) do
if string.match( relpath, v.re ) then
site = v
break
end
end
end
if not site then
if not site then
site = tabSite.unknow
site = tabSite.unknow
end
end
return mw.ustring.format( tabType[site.type][whatwhere] .. site.name, url )
if type( site ) == 'table' then
return mw.ustring.format( tabType[site.type][whatwhere] .. site.name, url )
end
end
end



Версия от 02:11, 9 марта 2017

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

local pp = {}

local tabType = {
	site = { what = '[%s сайт ', where = 'на [%s сайте ', from = 'по [%s сайту ', },
	forum = { what = '[%s форум ', where = 'на [%s форуме ', from = 'на [%s форуме ', },
	stalin = { what = '«[%s Сталинские списки]»', where = 'в «[%s Сталинских списках]»', from = 'по сайту «[%s Сталинские списки]»', }, -- просто для примера
	ref = { what = '[%s Справочник ', where = 'в [%s Справочнике ', from = 'по [%s Справочнику ', },
	obd = { what = '[%s ', where = 'в [%s ', from = 'по [%s ', },
	unknow = { what = 'сайт[[Категория:Незарегистрированный сайт]] %s', 
				where = 'на[[Категория:Незарегистрированный сайт]] сайте %s', 
				from = 'по[[Категория:Незарегистрированный сайт]] сайту %s', },
}
local tabSite = {
	['www.alexanderyakovlev.org'] = { type = 'site',   name = 'Фонда А. Н. Яковлева]', },
	['www.nkvdgugb.ru']           = { type = 'site',   name = 'А. М. Григоряна]', },
	['www.knowbysight.info']      = { type = 'ref',    name = 'по истории Коммунистической партии и Советского Союза]', },
	['forum.mozohin.ru']          = { type = 'forum',  name = 'О. Мозохина]', },
	['shieldandsword.mozohin.ru'] = { type = 'site',   name = 'В. Мзареулова]', },
	['www.centrasia.ru']          = { type = 'site',   name = 'ЦентрАзия]', },
	['www.pogranec.ru']           = { type = 'forum',  name = 'Погранец]', },
	['pogranec.ru']               = { type = 'forum',  name = 'Погранец]', },
	['stalin.memo.ru']            = { type = 'stalin', name = '', },
	['pamyat-naroda.ru']          = { type = 'obd',    name = ' ОБД МО]', },
	['podvignaroda.ru']           = { type = 'obd',    name = ' ОБД МО]', },
	['obd-memorial.ru']           = { type = 'obd',    name = ' ОБД МО]', },
	unknow                        = { type = 'unknow', name = '', },
	['memo.ru']                   = 'memo',
	['www.memo.ru']               = 'memo',
	memo                          = { { re = '^/history/nkvd/kto2/', type = 'ref', name = 'Н. Петрова «Кто руководил органами ГБ (1941−54)]', },
		                              { re = '^/history/NKVD/kto2/', type = 'ref', name = 'Н. Петрова «Кто руководил органами ГБ (1941−54)]', },
		                              { re = '^/history/nkvd/kto/', type = 'ref', name = 'Н. Петрова и К. Скоркина «Кто руководил НКВД (1934−41)]', },
		                              { re = '^/history/NKVD/kto/', type = 'ref', name = 'Н. Петрова и К. Скоркина «Кто руководил НКВД (1934−41)]', },
		                            },
}


pp.link = function( whatwhere, url )
	local uri = mw.uri.new( url )
	if not uri then
		return '<span class=error>(не смогли разобрать «' .. url .. '»)</span>'
	end
	local site = tabSite[uri.host]
	if type( site ) == 'string' then
		local arr, relpath = tabSite[site], uri.path
		site = nil
		for _, v in ipairs( arr ) do
			if string.match( relpath, v.re ) then
				site = v
				break
			end
		end
	end

	if not site then
		site = tabSite.unknow
	end
	if type( site ) == 'table' then
		return mw.ustring.format( tabType[site.type][whatwhere] .. site.name, url )
	end
		
	
end	


pp[''] = function ( frame )
	local para = frame.args
	local whatwhere = mw.text.trim( para[1] or '' )
	if whatwhere == '' then
		whatwhere = 'what'
	end

	local args = frame:getParent().args
	local url = mw.text.trim( args[1] or '' )
	return pp.link( whatwhere, url )
--[[	
	local uri = mw.uri.new( url )
	if not uri then
		return '<span class=error>(не смогли разобрать «' .. url .. '»)</span>'
	end
	local site = tabSite[uri.host]
	if not site then
		site = tabSite.unknow
	end
	return mw.ustring.format( tabType[site.type][whatwhere] .. site.name, url )
--]]
end

return pp