<?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:Example?feed=atom</id>
	<title>Модуль:Example - История изменений</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:Example?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:Example"/>
	<updated>2026-04-11T20:21:50Z</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:Example&amp;diff=77140&amp;oldid=prev</id>
		<title>Pok: Новая страница: «-- source: https://ru.wikipedia.org/wiki/Модуль:Example -- license: CC BY-SA 4.0    local p = {}  -- вызов шаблона, при ошибке возвращает пустую строку local function expand(frame, tname, targs) 	local success, result = pcall( 		frame.expandTemplate, 		frame, 		{title = tname, args = targs} 	) 	if success then 		return result 	else 		return &#039;&#039; 	end 	--return frame:expandTemplate({title = tname, args = args}) e...»</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:Example&amp;diff=77140&amp;oldid=prev"/>
		<updated>2025-04-05T15:00:25Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «-- source: https://ru.wikipedia.org/wiki/Модуль:Example -- license: CC BY-SA 4.0    local p = {}  -- вызов шаблона, при ошибке возвращает пустую строку local function expand(frame, tname, targs) 	local success, result = pcall( 		frame.expandTemplate, 		frame, 		{title = tname, args = targs} 	) 	if success then 		return result 	else 		return &amp;#039;&amp;#039; 	end 	--return frame:expandTemplate({title = tname, args = args}) e...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- source: https://ru.wikipedia.org/wiki/Модуль:Example&lt;br /&gt;
-- license: CC BY-SA 4.0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local p = {}&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;
--удаляет из параметров вписанные через 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;#039;&amp;amp;lt;nowiki&amp;gt;&amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;&amp;amp;lt;/nowiki&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			 :gsub(&amp;#039;&amp;amp;lt;nowiki&amp;amp;gt;&amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;&amp;amp;lt;/nowiki&amp;amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			 :gsub(&amp;#039;&amp;amp;#123;&amp;amp;#123;&amp;amp;#61;&amp;amp;#125;&amp;amp;#125;&amp;#039;, &amp;#039;=&amp;#039;)&lt;br /&gt;
			 :gsub(&amp;#039;&amp;amp;#123;{&amp;amp;#61;}&amp;amp;#125;&amp;#039;, &amp;#039;=&amp;#039;)&lt;br /&gt;
			 :gsub(&amp;#039;{&amp;amp;#123;&amp;amp;#61;&amp;amp;#125;}&amp;#039;, &amp;#039;=&amp;#039;)&lt;br /&gt;
			 :gsub(&amp;#039;{{=}}&amp;#039;, &amp;#039;=&amp;#039;)&lt;br /&gt;
			 :gsub(&amp;#039;&amp;amp;amp;&amp;#039;, &amp;#039;&amp;amp;&amp;#039;)&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
	local template_code = require(&amp;#039;Module:Template call code&amp;#039;)._main&lt;br /&gt;
	local copy = require(&amp;#039;Module:TableTools&amp;#039;).shallowClone&lt;br /&gt;
	&lt;br /&gt;
	local args = copy(getArgs(frame, {trim = false, removeBlanks = false}))&lt;br /&gt;
	local alias =  args._alias&lt;br /&gt;
	local tag = args._tag&lt;br /&gt;
	local sep = args._sep and args._sep .. &amp;#039; &amp;#039;&lt;br /&gt;
	local prefix = args._prefix or args[&amp;#039;_pre-text&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local postfix = args._postfix or args[&amp;#039;_post-text&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local nocat = yesno(args._nocat, false)&lt;br /&gt;
	local style = args._style&lt;br /&gt;
	if style == &amp;#039;&amp;#039; 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;
	local comment = args._comment&lt;br /&gt;
	-- полезно в шаблоне {{стопка примеров}} (это просто текст в конце)&lt;br /&gt;
	local after = args._after or &amp;#039;&amp;#039;&lt;br /&gt;
	-- полезно в шаблоне {{стопка примеров}} (это просто текст в начале)&lt;br /&gt;
	local before = args._before and args._before .. &amp;#039; &amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	if 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;
		tag = tag or &amp;#039;pre&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if style == &amp;#039;pre&amp;#039; or style == &amp;#039;*pre&amp;#039; then&lt;br /&gt;
		sep = sep or &amp;#039;\n&amp;#039;&lt;br /&gt;
	elseif style == &amp;#039;pre↓&amp;#039; or style == &amp;#039;*pre↓&amp;#039; then&lt;br /&gt;
		sep = sep or expand(frame, &amp;#039;sp-down&amp;#039;, {&amp;#039;&amp;#039;, &amp;#039;-0.5em&amp;#039;})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if style == &amp;#039;*pre&amp;#039; or style == &amp;#039;*pre↓&amp;#039; then&lt;br /&gt;
		before = &amp;#039;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;#039; .. expand(frame, &amp;#039;chrome bullet hack&amp;#039;, {}) .. before&lt;br /&gt;
		after = after .. &amp;#039;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if style == &amp;#039;wikitable&amp;#039; then&lt;br /&gt;
		tag = tag or &amp;#039;kbd&amp;#039;&lt;br /&gt;
		sep = sep or &amp;#039;\n| &amp;#039;&lt;br /&gt;
		comment_sep = &amp;#039;\n| &amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	tag = tag or &amp;#039;code&amp;#039;&lt;br /&gt;
	sep = sep or &amp;#039;→ &amp;#039;&lt;br /&gt;
	comment_sep = comment_sep or &amp;#039; &amp;amp;nbsp;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	if comment then&lt;br /&gt;
		if not style then&lt;br /&gt;
			comment = &amp;#039;&amp;lt;small&amp;gt;&amp;#039; .. comment .. &amp;#039;&amp;lt;/small&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		after = comment_sep .. comment .. after&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local _args = copy(args)&lt;br /&gt;
	_args._style = args._codestyle&lt;br /&gt;
	_args._comment = args._codecomment&lt;br /&gt;
	_args._tag = tag&lt;br /&gt;
	_args._prefix = prefix&lt;br /&gt;
	_args._postfix = postfix&lt;br /&gt;
	_args._nowiki = true&lt;br /&gt;
	if args._alias then&lt;br /&gt;
		table.insert(_args, 1, args._alias)&lt;br /&gt;
	elseif args._template then&lt;br /&gt;
		table.insert(_args, 1, args._template)&lt;br /&gt;
	end&lt;br /&gt;
	local nwt = template_code(_args, {withoutParams = false})&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) ~= &amp;#039;number&amp;#039; and not k:find(&amp;#039;^_&amp;#039;) then  -- именованные параметры, исключая модификаторы внешнего вида&lt;br /&gt;
			tname = k .. &amp;quot;=&amp;quot; .. v&lt;br /&gt;
			args[k] = nil --больше этот параметр нам не пригодится&lt;br /&gt;
		end&lt;br /&gt;
	elseif not args._template then&lt;br /&gt;
		-- Имя вызываемого шаблона в неименованном первом параметре (или же взято из названия страницы или&lt;br /&gt;
		-- из именованного параметра в отсутствие неименованных — в следующей строчке вреда нет в любом случае),&lt;br /&gt;
		-- больше его обрабатывать не надо&lt;br /&gt;
		table.remove(args, 1)&lt;br /&gt;
	end&lt;br /&gt;
	if tname == &amp;#039;&amp;#039; or tname == nil then  -- при опущенном первом параметре берём имя шаблона из названия страницы&lt;br /&gt;
		tname = mw.title.getCurrentTitle().rootText&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local targs, equals_pos, param, value, left_shift = {}, 0, &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, 0&lt;br /&gt;
&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;
			equals_pos = v:find(&amp;#039;=&amp;#039;)&lt;br /&gt;
			if equals_pos and v:find(&amp;#039;{{=}}&amp;#039;) == 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;
				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;
			end&lt;br /&gt;
		elseif not k:find(&amp;#039;^_&amp;#039;) then  -- именованные параметры, исключая модификаторы внешнего вида&lt;br /&gt;
			targs[k] = process_nowiki_equals(v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if nocat then&lt;br /&gt;
		targs[&amp;#039;nocat&amp;#039;] = 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local expand_result = tostring(expand(frame, tname, targs))&lt;br /&gt;
	if expand_result:sub(1, 2) == &amp;#039;{|&amp;#039; then&lt;br /&gt;
		sep = sep .. &amp;#039;\n&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return before .. tostring(nwt) .. &amp;#039; &amp;#039; .. sep .. prefix .. expand_result .. postfix .. after&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Pok</name></author>
	</entry>
</feed>