Модуль:AdjustSortKey

Материал из Тептар — свободной энциклопедии
Перейти к навигации Перейти к поиску

Этот модуль предназначен для автоматической установки ключа сортировки в случае, когда название статьи начинается со слова, сортировка по которому нежелательна. К примеру, при использовании вызова {{#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