<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://station14.ru/history/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ExampleList?feed=atom</id>
	<title>Модуль:ExampleList - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://station14.ru/history/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ExampleList?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://station14.ru/history/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ExampleList"/>
	<updated>2026-04-11T13:02:12Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://station14.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ExampleList&amp;diff=77039&amp;oldid=prev</id>
		<title>Pok: Новая страница: «-- source: https://ru.wikipedia.org/wiki/Модуль:ExampleList -- license: CC BY-SA 4.0   local p = {}  -- используется для того, чтобы можно было удалять элементы из таблицы local function copy(other) 	local res = {} 	for k, v in pairs(other) do 		res[k] = v 	end 	return res end  -- вызов шаблона, при ошибке возвращает пустую строку local function expand(f...»</title>
		<link rel="alternate" type="text/html" href="https://station14.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:ExampleList&amp;diff=77039&amp;oldid=prev"/>
		<updated>2025-04-05T13:44:29Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «-- source: https://ru.wikipedia.org/wiki/Модуль:ExampleList -- license: CC BY-SA 4.0   local p = {}  -- используется для того, чтобы можно было удалять элементы из таблицы local function copy(other) 	local res = {} 	for k, v in pairs(other) do 		res[k] = v 	end 	return res end  -- вызов шаблона, при ошибке возвращает пустую строку local function expand(f...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- source: https://ru.wikipedia.org/wiki/Модуль:ExampleList&lt;br /&gt;
-- license: CC BY-SA 4.0 &lt;br /&gt;
&lt;br /&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 &amp;#039;&amp;#039;&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(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	yesno = require(&amp;#039;Module:Yesno&amp;#039;)&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) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			v = v&lt;br /&gt;
				:gsub(&amp;#039;^ *\n+&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
				:gsub(&amp;#039;\n+ *$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			if trim then&lt;br /&gt;
				v = v&lt;br /&gt;
					:gsub(&amp;#039;^ +&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
					:gsub(&amp;#039; +$&amp;#039;, &amp;#039;&amp;#039;)&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 g_alias = args._alias&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;
	local class = args.class or args._class&lt;br /&gt;
	if not opener then&lt;br /&gt;
		if style == &amp;#039;wikitable&amp;#039; then&lt;br /&gt;
			opener = &amp;#039;|-\n| &amp;#039;&lt;br /&gt;
		elseif style == &amp;#039;pre&amp;#039; or style == &amp;#039;*pre&amp;#039; or style == &amp;#039;pre↓&amp;#039; or style == &amp;#039;*pre↓&amp;#039; then&lt;br /&gt;
			opener = &amp;#039;&amp;#039;&lt;br /&gt;
			if between == nil and (style == &amp;#039;*pre&amp;#039; or style == &amp;#039;*pre↓&amp;#039;) then&lt;br /&gt;
				if mw.isSubsting() then&lt;br /&gt;
					between = &amp;#039;{{^|3em}}&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					between = &amp;#039;&amp;lt;div style=&amp;quot;margin-top:3em&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			opener = &amp;#039;* &amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if between == nil and (style == &amp;#039;pre&amp;#039; or style == &amp;#039;*pre&amp;#039; or style == &amp;#039;pre↓&amp;#039; or style == &amp;#039;*pre↓&amp;#039;) then&lt;br /&gt;
		if mw.isSubsting() then&lt;br /&gt;
			between = &amp;#039;{{^|2em}}&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			between = &amp;#039;&amp;lt;div style=&amp;quot;margin-top:2em&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if tname == &amp;#039;&amp;#039; or tname == nil then  -- при опущенном первом параметре берём имя шаблона из названия страницы&lt;br /&gt;
		local ru = mw.language.new(&amp;#039;ru&amp;#039;)&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, &amp;#039;^[А-Яа-яA-Za-z]+:?[А-ЯA-Z]&amp;#039;)  -- Книга:Литературное наследство, 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) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				pre_targs = mw.text.split(v, &amp;#039;\\&amp;#039;)&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) == &amp;#039;_&amp;#039; and v2:find(&amp;#039;=&amp;#039;) then  -- параметры настроек шаблона {{пример}}&lt;br /&gt;
						equals_pos = v2:find(&amp;#039;=&amp;#039;)&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 == &amp;#039;_comment&amp;#039; 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 = &amp;#039;&amp;#039;, 0&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local pre_targs, targs = {}, {}&lt;br /&gt;
		if type(k) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			i = i + 1&lt;br /&gt;
			&lt;br /&gt;
			if are_comments then&lt;br /&gt;
				targs._comment = &amp;#039;&amp;#039;  -- значение по умолчанию&lt;br /&gt;
			end&lt;br /&gt;
			if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				pre_targs = mw.text.split(v, &amp;#039;\\&amp;#039;)&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) == &amp;#039;_&amp;#039; and v2:find(&amp;#039;=&amp;#039;) then  -- параметры настроек шаблона {{пример}}&lt;br /&gt;
						equals_pos = v2:find(&amp;#039;=&amp;#039;)&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;#039;&amp;amp;#95;&amp;#039; then&lt;br /&gt;
							targs[k2] = v2:gsub(&amp;#039;&amp;amp;#95;&amp;#039;, &amp;#039;_&amp;#039;)&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;
			-- если задан локальный алиас, то он используется вместо _template и глобального alias (консенсусная реализация, не меняю)&lt;br /&gt;
			-- иначе используется _template = tname и _alias = g_alias, если последний задан&lt;br /&gt;
			-- пример: {{стопка примеров|t=Википедия:Часто_используемые_источники/Статус|_alias=/Статус|...}} даст&lt;br /&gt;
			-- &amp;lt;code&amp;gt;{{/Статус|...}}&amp;lt;/code&amp;gt; → {{Википедия:Часто_используемые_источники/Статус|...}}&lt;br /&gt;
			local targs_tname = targs._alias &lt;br /&gt;
			local local_alias = nil&lt;br /&gt;
			if not targs_tname then&lt;br /&gt;
				targs_tname = tname&lt;br /&gt;
				local_alias = g_alias&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			targs._sep, targs._style, targs._nobr, targs._nocat, targs._spaced, targs._comment_sep, targs._template, targs._alias = sep, style, nobr,&lt;br /&gt;
			nocat, spaced, comment_sep, targs_tname, local_alias&lt;br /&gt;
				&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 == &amp;#039;pre&amp;#039; and opener == &amp;#039;*&amp;#039; and targs._before == nil then&lt;br /&gt;
				adjusted_opener = &amp;#039;&amp;#039;&lt;br /&gt;
				targs._style = &amp;#039;*pre&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				if style == &amp;#039;pre&amp;#039; and opener == &amp;#039;*&amp;#039; then&lt;br /&gt;
					if mw.isSubsting() then&lt;br /&gt;
						targs._before = targs._before .. &amp;#039;{{^|-0.5em}}&amp;#039;&lt;br /&gt;
					else&lt;br /&gt;
						targs._before = targs._before .. &amp;#039;&amp;lt;div style=&amp;quot;margin-top:-0.5em&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				adjusted_opener = opener == &amp;#039;*&amp;#039; and &amp;#039;* &amp;#039; 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 = &amp;#039;{{пример&amp;#039;&lt;br /&gt;
				for name, value in pairs(targs) do&lt;br /&gt;
					if type(name) == &amp;#039;number&amp;#039; then&lt;br /&gt;
						exampleCode = exampleCode .. &amp;#039;|&amp;#039; .. value&lt;br /&gt;
					else&lt;br /&gt;
						exampleCode = exampleCode .. &amp;#039;|&amp;#039; .. name .. &amp;#039;=&amp;#039; .. value&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				exampleCode = exampleCode .. &amp;#039;}}&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				exampleCode = tostring(expand(frame, &amp;#039;пример&amp;#039;, targs))&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			content = content .. (i ~= 1 and (between and between .. &amp;#039;\n&amp;#039; or &amp;#039;\n&amp;#039;) or &amp;#039;&amp;#039;) .. adjusted_opener .. exampleCode&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if style == &amp;#039;wikitable&amp;#039; then&lt;br /&gt;
		local table_content = &amp;#039;&amp;#039;&lt;br /&gt;
		if not inthemiddle then&lt;br /&gt;
			table_content = &amp;#039;{| class=&amp;quot;wikitable &amp;#039;&lt;br /&gt;
			if wide then table_content = table_content .. &amp;#039;wide&amp;#039; end&lt;br /&gt;
			if class then table_content = table_content .. class end&lt;br /&gt;
			table_content = table_content .. &amp;#039;&amp;quot;\n! scope=&amp;quot;col&amp;quot; | Код !! scope=&amp;quot;col&amp;quot; | Результат&amp;#039;&lt;br /&gt;
			if are_comments then table_content = table_content .. &amp;#039; !! Комментарий&amp;#039; end&lt;br /&gt;
		end&lt;br /&gt;
		content = table_content .. &amp;#039;\n&amp;#039; .. content&lt;br /&gt;
		if not inthemiddle then&lt;br /&gt;
			content = content .. &amp;#039;\n|}&amp;#039;&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>Pok</name></author>
	</entry>
</feed>