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

Перейти к навигации Перейти к поиску
фикс вики-ссылок в параметрах, отслеживание таких случаев
imported>Grain of sand
(yesno по умолчанию true, как в шаблоне; section_link() → format_link(), возможность указать текст ссылки 3-м параметром, обработка двоеточия в начале ссылки; + |ПИ ссылок= для {{см. также категорию}}; упрощение кода; - лишние алиасы)
imported>Grain of sand
(фикс вики-ссылок в параметрах, отслеживание таких случаев)
Строка 9: Строка 9:
no_links = 'ЭАНМ:Страницы с модулем Hatnote без ссылок',
no_links = 'ЭАНМ:Страницы с модулем Hatnote без ссылок',
red_link = 'ЭАНМ:Страницы с модулем Hatnote с красной ссылкой',
red_link = 'ЭАНМ:Страницы с модулем Hatnote с красной ссылкой',
unwanted_pipe = 'ЭАНМ:Страницы с модулем Hatnote с некорректно заполненными параметрами'
bad_format = 'ЭАНМ:Страницы с модулем Hatnote с некорректно заполненными параметрами'
}
}


Строка 42: Строка 42:
return categories
return categories
end
end
end
local function parse_link(link, label)
link = link:match('%[%[:?([^%]]+)%]%]') or link:match(':?(.+)')
if link:match('|') then
link, label = link:match('^([^%|]+)%|(.+)$')
end
return link, label
end
end


Строка 56: Строка 65:
end
end
else
else
link = link:match('%[%[:?([^%]]+)%]%]') or link:match(':?(.+)')
link, label = parse_link(link, label)
if link:match('|') then
link, label = link:match('^([^%|]+)%|(.+)$')
end
if section and not link:match('#') then
if section and not link:match('#') then
link = link .. '#' .. section
link = link .. '#' .. section
Строка 108: Строка 114:
local tracked = {
local tracked = {
red_link = false,
red_link = false,
unwanted_pipe = false
bad_format = false
}
}
Строка 116: Строка 122:
local label = args['l' .. i]
local label = args['l' .. i]
         if link:match('|') then
         if link:match('|') or link:match('[%[%]]') then
         tracked.unwanted_pipe = true
         tracked.bad_format = true
link, label = link:match('^([^%|]+)%|(.+)$')
link, label = parse_link(link, label)
end
end
Строка 145: Строка 151:
return setmetatable({res}, {
return setmetatable({res}, {
__index = tracked,  
__index = tracked,
__tostring = function (self) return self[1] end,
__tostring = function (self) return self[1] end,
__concat = concat
__concat = concat
Строка 199: Строка 205:
categories:add('red_link', nocat)
categories:add('red_link', nocat)
end
end
if list.unwanted_pipe then
if list.bad_format then
categories:add('unwanted_pipe', nocat)
categories:add('bad_format', nocat)
end
end
Анонимный участник
Cookie-файлы помогают нам предоставлять наши услуги. Используя наши сервисы, вы соглашаетесь с использованием cookie-файлов.

Навигация