Модуль:Сайт: различия между версиями
Перейти к навигации
Перейти к поиску
StasR (обсуждение | вклад) Нет описания правки |
StasR (обсуждение | вклад) Нет описания правки |
||
(не показано 11 промежуточных версий этого же участника) | |||
Строка 2: | Строка 2: | ||
local tabType = { | local tabType = { | ||
site = { what = '[%s сайт ', where = 'на [%s сайте ', }, | site = { what = '[%s сайт ', where = 'на [%s сайте ', from = 'по [%s сайту ', }, | ||
forum = { what = '[%s форум ', where = 'на [%s форуме ', }, | forum = { what = '[%s форум ', where = 'на [%s форуме ', from = 'на [%s форуме ', }, | ||
stalin = { what = '«[%s Сталинские списки]»', where = 'в «[%s Сталинских списках]»', }, -- просто для примера | stalin = { what = '«[%s Сталинские списки]»', where = 'в «[%s Сталинских списках]»', from = 'по сайту «[%s Сталинские списки]»', }, -- просто для примера | ||
ref = { what = '[%s Справочник ', where = 'в [%s Справочнике ', }, | ref = { what = '[%s Справочник ', where = 'в [%s Справочнике ', from = 'по [%s Справочнику ', }, | ||
unknow = { what = '[[Категория:Незарегистрированный сайт]] | obd = { what = '[%s ', where = 'в [%s ', from = 'по [%s ', }, | ||
unknow = { what = 'сайт[[Категория:Незарегистрированный сайт]] %s', | |||
where = 'на[[Категория:Незарегистрированный сайт]] сайте %s', | |||
from = 'по[[Категория:Незарегистрированный сайт]] сайту %s', }, | |||
} | } | ||
local tabSite = { | local tabSite = { | ||
['myisk.net'] = { type = 'site', name = '«Таловская трагедия»]', }, | |||
['www.alexanderyakovlev.org'] = { type = 'site', name = 'Фонда А. Н. Яковлева]', }, | ['www.alexanderyakovlev.org'] = { type = 'site', name = 'Фонда А. Н. Яковлева]', }, | ||
['www.nkvdgugb.ru'] = { type = 'site', name = 'А. М. Григоряна]', }, | ['www.nkvdgugb.ru'] = { type = 'site', name = 'А. М. Григоряна]', }, | ||
['www.knowbysight.info'] = { type = 'ref', name = 'по истории Коммунистической партии и Советского Союза]', }, | ['www.knowbysight.info'] = { type = 'ref', name = 'по истории Коммунистической партии и Советского Союза]', }, | ||
['forum.mozohin.ru'] = { type = 'forum', 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 = '', }, | ['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 = '', }, | 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 | |||
Строка 28: | Строка 75: | ||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local url = mw.text.trim( args[1] or '' ) | local url = mw.text.trim( args[1] or '' ) | ||
return pp.link( whatwhere, url ) | |||
--[[ | |||
local uri = mw.uri.new( url ) | local uri = mw.uri.new( url ) | ||
if not uri then | if not uri then | ||
Строка 37: | Строка 86: | ||
end | end | ||
return mw.ustring.format( tabType[site.type][whatwhere] .. site.name, url ) | return mw.ustring.format( tabType[site.type][whatwhere] .. site.name, url ) | ||
--]] | |||
end | end | ||
return pp | return pp |
Текущая версия от 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