Модуль:Песочница/stjn

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Документация
--
-- Временный модуль для определения числа страниц, содержащих только [[Шаблон:Проверенная неоднозначность]]
-- Категория мной не создана, потому что подобные страницы будут в дальнейшем массово удалены
--
require( 'strict' )
local p = {}

-- [[Категория:Википедия:Страницы обсуждений, которые содержат только шаблон Проверенная неоднозначность]]
local errorCat = 'Википедия:Страницы обсуждений, которые содержат только шаблон Проверенная неоднозначность'

-- Copied from [[Module:Redirect]]
local function caseInsensitivePattern(pattern)
	-- find an optional '%' (group 1) followed by any character (group 2)
	local p = mw.ustring.gsub(pattern, "(%%?)(.)", function(percent, letter)
		if percent ~= "" or not mw.ustring.match(letter, "%a") then
			-- if the '%' matched, or `letter` is not a letter, return "as is"
			return percent .. letter
		else
			-- else, return a case-insensitive character class of the matched letter
			return string.format("[%s%s]", mw.ustring.lower(letter), mw.ustring.upper(letter))
		end
	end)
	
	return p
end


function p.main(frame)
	local content = mw.title.getCurrentTitle():getContent()
	
	content = mw.ustring.gsub( content, '{{' .. caseInsensitivePattern( 'Проверенная неоднозначность' ) .. '%s*|.+}}', '' )
	content = mw.text.trim( content )
	
	if content == '' then
		return string.format( '[[Category:%s]]', errorCat )
	end
	
	return ''
end

return p