ФЭНДОМ


-- <pre>
-- утилиты для ru.community
 
local p = {}
 
function p.formatLink(frame)
    -- возвращает форматированную и очищенную ссылку на вики
    --  используя по возможности (всегда, если не wikia.org) интерссылку
    -- URL: имя вики; возможные значения:
    --  язык.вики, вики/язык, [http[s]://]язык.вики.(fandom|wikia).com,
    --  [http[s]://]вики.(fandom|wikia).com/язык
    --  или то же самое, но без языка
    --  для wikia.org меняется только протокол (x:// -> https://)
    local args = frame.args or frame
    local wiki, lang
    local t = #((args or {}).URL or {}) > 0 and args.URL or 'адрес не указан'
    t = mw.ustring.lower(mw.ustring.match(t, '://(.*)') or t)
    -- очистка от мусора
    t = mw.text.split(t, '/wiki/')[1]
    t = mw.text.split(t, '/[dfw]/')[1]
    -- для wikia.org обработка прекращается
    if mw.ustring.find(t, '%.wikia%.org') then
        return '[https://' .. t .. ' ' .. t .. ']'
    end
    -- продолжение чистки
    t = mw.ustring.gsub(t, '%.fandom%.com', '')
    t = mw.ustring.gsub(t, '%.wikia%.com', '')
    -- здесь должно остаться только lang.wiki или wiki/lang
    if mw.ustring.find(t, '%.') then
        -- lang.wiki
        t = mw.text.split(t, '%.')
        wiki = t[2]
        lang = t[1]
    elseif mw.ustring.find(t, '/') then
        -- wiki/lang
        t = mw.text.split(t, '/')
        wiki = t[1]
        lang = t[2]
    else
        -- просто wiki, без языка и блек-джека
        wiki = t
    end
    lang = lang and lang .. '.' or ''
    return '[[w:c:' .. lang .. wiki .. '|' .. lang .. wiki .. ']]'
end-- formatLink
 
return p
Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA , если не указано иное.