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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
кажется, наиболее нормальный способ разрешить установку ключей сортировки вне шаблона; break вместо return для блока, не устанавливаем ключ сортировки в случае отсутствия необходимости
отмена правки 126404432 участника IKhitron (обс.)
Метка: отмена
 
(не показана 1 промежуточная версия этого же участника)
(нет различий)

Текущая версия от 21:49, 1 ноября 2022

Документация

Этот модуль предназначен для автоматической установки ключа сортировки в случае, когда название статьи начинается со слова, сортировка по которому нежелательна. К примеру, при использовании вызова {{#invoke:AdjustSortKey|main|Залив|Бухта|Губа}}, статья с названием Залив Пильтун будет отображаться вместо раздела категории З, в разделе П.

local p = {}

function p.main(frame)
	local title = mw.title.getCurrentTitle().text -- frame:getTitle()
	local pattern = ''
	for k, v in pairs(frame.args) do
		pattern = '^' .. v .. '%s+«?(.-)»?([^»]-)$'
		-- mw.log('pattern = "' .. pattern .. '"')
		local key = mw.ustring.gsub(title, pattern, '%1%2', 1) 
		if key ~= title then
			frame:callParserFunction{
				name = 'DEFAULTSORT',
				args = {
					key,
					'noreplace',
				},
			};
			-- mw.log('key = "' .. key .. '"')
			break
		end
	end
	-- mw.log('title = "' .. title .. '"')
end

return p