Модуль:AdjustSortKey

Материал из Тептар — свободной энциклопедии
Версия от 12:44, 13 февраля 2022; Adam (обсуждение | вклад) (Новая страница: «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 =...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

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