Анонимный участник
Модуль: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 с красной ссылкой', | ||
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, label = parse_link(link, label) | ||
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, | ||
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. | tracked.bad_format = true | ||
link, label = link | 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. | if list.bad_format then | ||
categories:add(' | categories:add('bad_format', nocat) | ||
end | end | ||