Модуль:Сайт: различия между версиями
Перейти к навигации
Перейти к поиску
StasR (обсуждение | вклад) Нет описания правки |
StasR (обсуждение | вклад) Нет описания правки |
||
Строка 22: | Строка 22: | ||
['pogranec.ru'] = { type = 'forum', name = 'Погранец]', }, | ['pogranec.ru'] = { type = 'forum', name = 'Погранец]', }, | ||
['stalin.memo.ru'] = { type = 'stalin', name = '', }, | ['stalin.memo.ru'] = { type = 'stalin', name = '', }, | ||
['base.memo.ru'] = { type = 'site', name = '«Жертвы политического террора в СССР»]', }, | |||
['pamyat-naroda.ru'] = { type = 'obd', name = ' ОБД МО]', }, | ['pamyat-naroda.ru'] = { type = 'obd', name = ' ОБД МО]', }, | ||
['podvignaroda.ru'] = { type = 'obd', name = ' ОБД МО]', }, | ['podvignaroda.ru'] = { type = 'obd', name = ' ОБД МО]', }, |
Текущая версия от 00:16, 26 мая 2019
Для документации этого модуля может быть создана страница Модуль:Сайт/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 = {
['myisk.net'] = { type = 'site', name = '«Таловская трагедия»]', },
['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 = '', },
['base.memo.ru'] = { type = 'site', name = '«Жертвы политического террора в СССР»]', },
['pamyat-naroda.ru'] = { type = 'obd', name = ' ОБД МО]', },
['podvignaroda.ru'] = { type = 'obd', name = ' ОБД МО]', },
['obd-memorial.ru'] = { type = 'obd', name = ' ОБД МО]', },
['eao.memo27reg.org'] = { type = 'site', 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