<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://haritonov.wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AExample</id>
		<title>Модуль:Example - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://haritonov.wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AExample"/>
		<link rel="alternate" type="text/html" href="https://haritonov.wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Example&amp;action=history"/>
		<updated>2026-04-24T22:45:53Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://haritonov.wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Example&amp;diff=1558&amp;oldid=prev</id>
		<title>QBA-bot: Защитил страницу Модуль:Example: критический шаблон или модуль (каскадная защита) ([Редактирование=только автоподтверждённые] (бессрочно) [Переименование=только автоподтверждённые] (бессрочно))</title>
		<link rel="alternate" type="text/html" href="https://haritonov.wiki/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Example&amp;diff=1558&amp;oldid=prev"/>
				<updated>2019-04-25T13:31:52Z</updated>
		
		<summary type="html">&lt;p&gt;Защитил страницу &lt;a href=&quot;/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Example&quot; title=&quot;Модуль:Example&quot;&gt;Модуль:Example&lt;/a&gt;: критический шаблон или модуль (каскадная защита) ([Редактирование=только автоподтверждённые] (бессрочно) [Переименование=только автоподтверждённые] (бессрочно))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- используется для того, чтобы можно было удалять элементы из таблицы&lt;br /&gt;
local function copy(other)&lt;br /&gt;
	local res = {}&lt;br /&gt;
	for k,v in pairs(other) do&lt;br /&gt;
		res[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- вызов шаблона, при ошибке возвращает пустую строку&lt;br /&gt;
local function expand(frame, tname, targs)&lt;br /&gt;
	local success, result = pcall(&lt;br /&gt;
		frame.expandTemplate,&lt;br /&gt;
		frame,&lt;br /&gt;
		{title = tname, args = targs}&lt;br /&gt;
	)&lt;br /&gt;
	if success then&lt;br /&gt;
		return result&lt;br /&gt;
	else&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
	--return frame:expandTemplate({title = tname, args = args})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--предотвращает обработку вики-текста в отображении образца&lt;br /&gt;
local function nowiki(str)&lt;br /&gt;
	local res = str&lt;br /&gt;
	str = mw.text.unstripNoWiki(str)&lt;br /&gt;
	str = string.gsub(str, '%[', '&amp;amp;#91;')&lt;br /&gt;
	str = string.gsub(str, '%]', '&amp;amp;#93;')&lt;br /&gt;
	str = string.gsub(str, '&amp;lt;', '&amp;amp;lt;')&lt;br /&gt;
	str = string.gsub(str, '&amp;gt;', '&amp;amp;gt;')&lt;br /&gt;
	str = string.gsub(str, '{', '&amp;amp;#123;')&lt;br /&gt;
	str = string.gsub(str, '}', '&amp;amp;#125;')&lt;br /&gt;
	str = string.gsub(str, '\'', '&amp;amp;#39;')&lt;br /&gt;
	str = string.gsub(str, '&amp;quot;', '&amp;amp;quot;')&lt;br /&gt;
	str = string.gsub(str, '(://)', '&amp;lt;span&amp;gt;%1&amp;lt;/span&amp;gt;')&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--удаляет из параметров вписанные через HTML-сущности &amp;quot;&amp;lt;nowiki&amp;gt;&amp;quot; и заменяет &amp;quot;{{=}}&amp;quot; на &amp;quot;=&amp;quot; для вызова шаблона&lt;br /&gt;
local function process_nowiki_equals(str)&lt;br /&gt;
	str = str:gsub('&amp;amp;lt;nowiki&amp;gt;', ''):gsub('&amp;amp;lt;/nowiki&amp;gt;', '')&lt;br /&gt;
			 :gsub('&amp;amp;lt;nowiki&amp;amp;gt;', ''):gsub('&amp;amp;lt;/nowiki&amp;amp;gt;', '')&lt;br /&gt;
			 :gsub('&amp;amp;#123;&amp;amp;#123;&amp;amp;#61;&amp;amp;#125;&amp;amp;#125;', '=')&lt;br /&gt;
			 :gsub('&amp;amp;#123;{&amp;amp;#61;}&amp;amp;#125;', '=')&lt;br /&gt;
			 :gsub('{&amp;amp;#123;&amp;amp;#61;&amp;amp;#125;}', '=')&lt;br /&gt;
			 :gsub('{{=}}', '=')&lt;br /&gt;
			 :gsub('&amp;amp;amp;', '&amp;amp;')&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
	end&lt;br /&gt;
	local yesno = require('Module:Yesno')&lt;br /&gt;
	local args = copy(getArgs(frame, {trim = false, removeBlanks = false})) --copy(frame.args)&lt;br /&gt;
	local tag = args._tag&lt;br /&gt;
	local container = args._container or nil&lt;br /&gt;
	local ucFirst = yesno(args._u, false)&lt;br /&gt;
	local link = yesno(args._link, false)&lt;br /&gt;
	local sep = args._sep and args._sep .. ' '&lt;br /&gt;
	local endl = args._endl or ''&lt;br /&gt;
	local prefix = args._prefix or args['_pre-text'] or ''&lt;br /&gt;
	local postfix = args._postfix or args['_post-text'] or ''&lt;br /&gt;
	local nobr = yesno(args._nobr, false)&lt;br /&gt;
	local spaced = yesno(args._spaced, false)&lt;br /&gt;
	local nocat = yesno(args._nocat, false)&lt;br /&gt;
	local style = args._style&lt;br /&gt;
	if style == '' then&lt;br /&gt;
		style = nil&lt;br /&gt;
	end&lt;br /&gt;
	-- передаётся шаблоном {{стопка примеров}}, один разделитель на все примеры&lt;br /&gt;
	local comment_sep = args._comment_sep&lt;br /&gt;
	-- полезно в шаблоне {{стопка примеров}} (это просто текст в конце)&lt;br /&gt;
	local after = args._after or args._comment&lt;br /&gt;
	-- полезно в шаблоне {{стопка примеров}} (это просто текст в начале)&lt;br /&gt;
	local before = args._before and args._before .. ' ' or ''&lt;br /&gt;
	&lt;br /&gt;
	if style == 'pre' then&lt;br /&gt;
		if not (tag or container) then&lt;br /&gt;
			container = 'pre'&lt;br /&gt;
		end&lt;br /&gt;
		sep = sep or '\n'&lt;br /&gt;
	elseif style == '*pre' then&lt;br /&gt;
		if not (tag or container) then&lt;br /&gt;
			container = '*pre'&lt;br /&gt;
		end&lt;br /&gt;
		sep = sep or '\n'&lt;br /&gt;
	elseif style == 'pre↓' then&lt;br /&gt;
		if not (tag or container) then&lt;br /&gt;
			container = 'pre'&lt;br /&gt;
		end&lt;br /&gt;
		-- содержимое шаблона {{sp↓|50%||-0.5em}}&lt;br /&gt;
		sep = sep or '&amp;lt;div style=&amp;quot;margin:-0.5em 50% 0.7em;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;↓&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;\n'&lt;br /&gt;
	elseif style == '*pre↓' then&lt;br /&gt;
		if not (tag or container) then&lt;br /&gt;
			container = '*pre'&lt;br /&gt;
		end&lt;br /&gt;
		-- содержимое шаблона {{sp↓|50%||-0.5em}}&lt;br /&gt;
		sep = sep or '&amp;lt;div style=&amp;quot;margin:-0.5em 50% 0.7em;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:150%;&amp;quot;&amp;gt;↓&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;\n'&lt;br /&gt;
	elseif style == 'wikitable' then&lt;br /&gt;
		if not (tag or container) then&lt;br /&gt;
			tag = 'kbd'&lt;br /&gt;
		end&lt;br /&gt;
		sep = sep or '\n| '&lt;br /&gt;
		comment_sep = '\n| '&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not (tag or container) then&lt;br /&gt;
		tag = 'code'&lt;br /&gt;
	end&lt;br /&gt;
	if not sep then&lt;br /&gt;
		sep = '→ '&lt;br /&gt;
	end&lt;br /&gt;
	if not comment_sep then&lt;br /&gt;
		comment_sep = ' &amp;amp;nbsp;'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (after) then&lt;br /&gt;
		if not style then&lt;br /&gt;
			after = '&amp;lt;small&amp;gt;' .. after .. '&amp;lt;/small&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
		after = comment_sep .. after&lt;br /&gt;
	end&lt;br /&gt;
	if not after then&lt;br /&gt;
		after = ''&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local nwt&lt;br /&gt;
	if tag then&lt;br /&gt;
		nwt = mw.html.create(tag):tag(tag)  -- &amp;quot;no-wiki tag&amp;quot;, внутри него шаблон не вызывается&lt;br /&gt;
		if nobr then&lt;br /&gt;
			nwt:css('white-space', 'nowrap')&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local content = nowiki(prefix) .. '{{'  -- для накопления содержимого тэга&lt;br /&gt;
	&lt;br /&gt;
	local tname = args._template or args[1]&lt;br /&gt;
	if tname == nil then  -- если имя шаблона содержит знак &amp;quot;=&amp;quot; (работает, только если нет неименованных параметров)&lt;br /&gt;
		local nextfunc, static, cur = pairs(args)&lt;br /&gt;
		local k, v = nextfunc(static, cur)&lt;br /&gt;
		if k ~= nil and type(k) ~= 'number' and not k:find('^_') then  -- именованные параметры, исключая модификаторы внешнего вида&lt;br /&gt;
			tname = k .. &amp;quot;=&amp;quot; .. v&lt;br /&gt;
			args[k] = nil --больше этот параметр нам не пригодится&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if tname == '' or tname == nil then  -- при опущенном первом параметре берём имя шаблона из названия страницы&lt;br /&gt;
		local ru = mw.language.new('ru')&lt;br /&gt;
		local currentTitle = mw.title.getCurrentTitle().rootText&lt;br /&gt;
		if not ucFirst and&lt;br /&gt;
			((ru:uc(currentTitle) ~= currentTitle and  -- названия со всеми заглавными буквами&lt;br /&gt;
				not mw.ustring.match(currentTitle, '^[А-Яа-яA-Za-z]+:?[А-ЯA-Z]')  -- Книга:Литературное наследство, TranslateDate&lt;br /&gt;
			) or&lt;br /&gt;
				#currentTitle == 1&lt;br /&gt;
			)&lt;br /&gt;
		then&lt;br /&gt;
			tname = ru:lcfirst(currentTitle)&lt;br /&gt;
		else&lt;br /&gt;
			tname = currentTitle&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Имя вызываемого шаблона в неименованном первом параметре (или же взято из названия страницы или&lt;br /&gt;
	-- из именованного параметра в отсутствие неименованных — в следующей строчке вреда нет в любом случае),&lt;br /&gt;
	-- больше его обрабатывать не надо&lt;br /&gt;
	if args._template == nil then&lt;br /&gt;
		table.remove(args,1)&lt;br /&gt;
	end&lt;br /&gt;
	if link then&lt;br /&gt;
		content = content .. '[[Шаблон:' .. tname .. '|' .. tname .. ']]'&lt;br /&gt;
	else&lt;br /&gt;
		content = content .. tname&lt;br /&gt;
	end&lt;br /&gt;
	content = content .. endl&lt;br /&gt;
	&lt;br /&gt;
	local targs, equals_pos, param, value, left_shift = {}, 0, '', '', 0&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == 'number' then  -- неименованные параметры&lt;br /&gt;
			equals_pos = v:find('=')&lt;br /&gt;
			if equals_pos and v:find('{{=}}') == equals_pos-2 then&lt;br /&gt;
				equals_pos = nil&lt;br /&gt;
			end&lt;br /&gt;
			if equals_pos then  -- содержащие &amp;quot;=&amp;quot; преобразуем в именованные&lt;br /&gt;
				param = v:sub(1, equals_pos-1)&lt;br /&gt;
				value = v:sub(equals_pos+1)&lt;br /&gt;
				targs[param] = process_nowiki_equals(value)&lt;br /&gt;
				content = content .. (spaced and ' ' or '') .. '&amp;amp;#124;' .. nowiki(param) .. '=' .. nowiki(value) .. endl&lt;br /&gt;
				left_shift = left_shift + 1  -- переменная нужна, чтобы квазинумерованные параметры, переданные через &amp;quot;{{=}}&amp;quot;,&lt;br /&gt;
				                             -- не сбивали порядок&lt;br /&gt;
			else  -- истинно неименованные&lt;br /&gt;
				targs[k - left_shift] = process_nowiki_equals(v)&lt;br /&gt;
				content = content .. (spaced and ' ' or '') .. '&amp;amp;#124;' .. nowiki(v) .. endl&lt;br /&gt;
			end&lt;br /&gt;
		elseif not k:find('^_') then  -- именованные параметры, исключая модификаторы внешнего вида&lt;br /&gt;
			targs[k] = process_nowiki_equals(v)&lt;br /&gt;
			content = content .. (spaced and ' ' or '') .. '&amp;amp;#124;' .. nowiki(k) .. '=' .. nowiki(v) .. endl&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if spaced then&lt;br /&gt;
		content = content .. ' '&lt;br /&gt;
	end&lt;br /&gt;
	content = content .. '}}' .. nowiki(postfix)&lt;br /&gt;
	if container then&lt;br /&gt;
		local container_args = {}&lt;br /&gt;
		container_args[1] = content&lt;br /&gt;
		nwt = expand(frame, container, container_args)&lt;br /&gt;
	else&lt;br /&gt;
		nwt:wikitext(content):done()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if nocat then&lt;br /&gt;
		targs['nocat'] = 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	expand_result = tostring(expand(frame, tname, targs))&lt;br /&gt;
	if expand_result:sub(1, 2) == '{|' then&lt;br /&gt;
		sep = sep .. '\n'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return before .. tostring(nwt) .. ' ' .. sep .. prefix .. expand_result .. postfix .. after&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>QBA-bot</name></author>	</entry>

	</feed>