<?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%3AExampleList</id>
		<title>Модуль:ExampleList - История изменений</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%3AExampleList"/>
		<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:ExampleList&amp;action=history"/>
		<updated>2026-05-01T05:40:12Z</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:ExampleList&amp;diff=1584&amp;oldid=prev</id>
		<title>QBA-bot: Защитил страницу Модуль:ExampleList: критический шаблон или модуль (каскадная защита) ([Редактирование=только автоподтверждённые] (бессрочно) [Переименование=только автоподтверждённые] (бессрочно))</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:ExampleList&amp;diff=1584&amp;oldid=prev"/>
				<updated>2019-04-25T13:33:35Z</updated>
		
		<summary type="html">&lt;p&gt;Защитил страницу &lt;a href=&quot;/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ExampleList&quot; title=&quot;Модуль:ExampleList&quot;&gt;Модуль:ExampleList&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;
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;
	yesno = require('Module:Yesno')&lt;br /&gt;
	local trim = not (yesno(frame:getParent().args.trim or frame:getParent().args._trim, false) == false)  -- по умолчанию true&lt;br /&gt;
	local args = copy(getArgs(frame, {trim = false, removeBlanks = false}))  -- copy(frame.args)&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == 'number' then&lt;br /&gt;
			v = v&lt;br /&gt;
				:gsub('^ *\n+', '')&lt;br /&gt;
				:gsub('\n+ *$', '')&lt;br /&gt;
			if trim then&lt;br /&gt;
				v = v&lt;br /&gt;
					:gsub('^ +', '')&lt;br /&gt;
					:gsub(' +$', '')&lt;br /&gt;
			end&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local tname = args.t or args._t or args.template or args._template&lt;br /&gt;
	local ucFirst = yesno(args.u or args._u, false)&lt;br /&gt;
	local opener = args.opener or args._opener&lt;br /&gt;
	local sep = args.sep or args._sep&lt;br /&gt;
	local prefix = args.prefix or args._prefix&lt;br /&gt;
	local postfix = args.postfix or args._postfix&lt;br /&gt;
	local style = args.style or args._style&lt;br /&gt;
	local nobr = args.nobr or args._nobr&lt;br /&gt;
	local nocat = args.nocat or args._nocat&lt;br /&gt;
	local spaced = args.spaced or args._spaced&lt;br /&gt;
	local comment_sep = args.comment_sep or args._comment_sep&lt;br /&gt;
	local between = args.between or args._between&lt;br /&gt;
	local inthemiddle = yesno(args.inthemiddle or args._inthemiddle, false)&lt;br /&gt;
	local wide = yesno(args.wide or args._wide, false)&lt;br /&gt;
	if not opener then&lt;br /&gt;
		if style == 'wikitable' then&lt;br /&gt;
			opener = '|-\n| '&lt;br /&gt;
		elseif style == 'pre' or style == '*pre' or style == 'pre↓' or style == '*pre↓' then&lt;br /&gt;
			opener = ''&lt;br /&gt;
			if between == nil and (style == '*pre' or style == '*pre↓') then&lt;br /&gt;
				if mw.isSubsting() then&lt;br /&gt;
					between = '{{^|3em}}'&lt;br /&gt;
				else&lt;br /&gt;
					between = '&amp;lt;div style=&amp;quot;margin-top:3em&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			opener = '* '&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if between == nil and (style == 'pre' or style == '*pre' or style == 'pre↓' or style == '*pre↓') then&lt;br /&gt;
		if mw.isSubsting() then&lt;br /&gt;
			between = '{{^|2em}}'&lt;br /&gt;
		else&lt;br /&gt;
			between = '&amp;lt;div style=&amp;quot;margin-top:2em&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&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;
	local are_comments = false&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local pre_targs = {}&lt;br /&gt;
		if type(k) == 'number' then&lt;br /&gt;
			if v ~= '' then&lt;br /&gt;
				pre_targs = mw.text.split(v, '\\')&lt;br /&gt;
				for k2, v2 in pairs(pre_targs) do&lt;br /&gt;
					local equals_pos&lt;br /&gt;
					if v2:sub(1, 1) == '_' and v2:find('=') then  -- параметры настроек шаблона {{пример}}&lt;br /&gt;
						equals_pos = v2:find('=')&lt;br /&gt;
					end&lt;br /&gt;
					if equals_pos then&lt;br /&gt;
						local param = v2:sub(1, equals_pos - 1)&lt;br /&gt;
						if param == '_comment' then are_comments = true end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local content, i = '', 0&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local pre_targs, targs = {}, {}&lt;br /&gt;
		if type(k) == 'number' then&lt;br /&gt;
			i = i + 1&lt;br /&gt;
			&lt;br /&gt;
			if are_comments then&lt;br /&gt;
				targs._comment = ''  -- значение по умолчанию&lt;br /&gt;
			end&lt;br /&gt;
			if v ~= '' then&lt;br /&gt;
				pre_targs = mw.text.split(v, '\\')&lt;br /&gt;
				for k2, v2 in pairs(pre_targs) do&lt;br /&gt;
					local equals_pos&lt;br /&gt;
					if v2:sub(1, 1) == '_' and v2:find('=') then  -- параметры настроек шаблона {{пример}}&lt;br /&gt;
						equals_pos = v2:find('=')&lt;br /&gt;
					end&lt;br /&gt;
					if equals_pos then&lt;br /&gt;
						local param = v2:sub(1, equals_pos - 1)&lt;br /&gt;
						local value = v2:sub(equals_pos + 1)&lt;br /&gt;
						targs[param] = value&lt;br /&gt;
					else&lt;br /&gt;
						if v2:sub(1, 5) == '&amp;amp;#95;' then&lt;br /&gt;
							targs[k2] = v2:gsub('&amp;amp;#95;', '_')&lt;br /&gt;
						else&lt;br /&gt;
							targs[k2] = v2&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			table.insert(targs, 1, tname)&lt;br /&gt;
			targs._sep, targs._style, targs._nobr, targs._nocat, targs._spaced, targs._comment_sep = sep, style, nobr,&lt;br /&gt;
				nocat, spaced, comment_sep&lt;br /&gt;
			if not targs._prefix then&lt;br /&gt;
				targs._prefix = prefix&lt;br /&gt;
			end&lt;br /&gt;
			if not targs._postfix then&lt;br /&gt;
				targs._postfix = postfix&lt;br /&gt;
			end&lt;br /&gt;
			local adjusted_opener&lt;br /&gt;
			if style == 'pre' and opener == '*' and targs._before == nil then&lt;br /&gt;
				adjusted_opener = ''&lt;br /&gt;
				targs._style = '*pre'&lt;br /&gt;
			else&lt;br /&gt;
				if style == 'pre' and opener == '*' then&lt;br /&gt;
					if mw.isSubsting() then&lt;br /&gt;
						targs._before = targs._before .. '{{^|-0.5em}}'&lt;br /&gt;
					else&lt;br /&gt;
						targs._before = targs._before .. '&amp;lt;div style=&amp;quot;margin-top:-0.5em&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				adjusted_opener = opener == '*' and '* ' or opener&lt;br /&gt;
			end&lt;br /&gt;
			--[[if not targs._style then&lt;br /&gt;
				targs._style = style&lt;br /&gt;
			end]]&lt;br /&gt;
			&lt;br /&gt;
			local exampleCode&lt;br /&gt;
			if mw.isSubsting() then&lt;br /&gt;
				exampleCode = '{{пример'&lt;br /&gt;
				for name, value in pairs(targs) do&lt;br /&gt;
					if type(name) == 'number' then&lt;br /&gt;
						exampleCode = exampleCode .. '|' .. value&lt;br /&gt;
					else&lt;br /&gt;
						exampleCode = exampleCode .. '|' .. name .. '=' .. value&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				exampleCode = exampleCode .. '}}'&lt;br /&gt;
			else&lt;br /&gt;
				exampleCode = tostring(expand(frame, 'пример', targs))&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			content = content .. (i ~= 1 and (between and between .. '\n' or '\n') or '') .. adjusted_opener .. exampleCode&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if style == 'wikitable' then&lt;br /&gt;
		local table_content = ''&lt;br /&gt;
		if not inthemiddle then&lt;br /&gt;
			table_content = '{| class=&amp;quot;wikitable '&lt;br /&gt;
			if wide then table_content = table_content .. 'wide' end&lt;br /&gt;
			table_content = table_content .. '&amp;quot;\n! Код !! Результат'&lt;br /&gt;
			if are_comments then table_content = table_content .. ' !! Комментарий' end&lt;br /&gt;
		end&lt;br /&gt;
		content = table_content .. '\n' .. content&lt;br /&gt;
		if not inthemiddle then&lt;br /&gt;
			content = content .. '\n|}'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return content&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>QBA-bot</name></author>	</entry>

	</feed>