<?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:Get_page_content?feed=atom</id>
	<title>Модуль:Get page content - История изменений</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:Get_page_content?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:Get_page_content"/>
	<updated>2026-04-06T13:00:40Z</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:Get_page_content&amp;diff=113800&amp;oldid=prev</id>
		<title>Pok: Новая страница: «-- source: https://ru.wikipedia.org/wiki/Модуль:Get_page_content -- license: CC BY-SA 4.0   local p = {}  local monthNames = {&#039;января&#039;, &#039;февраля&#039;, &#039;марта&#039;, &#039;апреля&#039;, &#039;мая&#039;, &#039;июня&#039;, &#039;июля&#039;, &#039;августа&#039;, &#039;сентября&#039;, &#039;октября&#039;, &#039;ноября&#039;, &#039;декабря&#039;}  if not getArgs then 	getArgs = require(&#039;Модуль:Arguments&#039;).getArgs end  local pageTitle, pageTitleText, sectionHeading, _frame  --[=[ H...»</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:Get_page_content&amp;diff=113800&amp;oldid=prev"/>
		<updated>2025-11-10T15:34:33Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «-- source: https://ru.wikipedia.org/wiki/Модуль:Get_page_content -- license: CC BY-SA 4.0   local p = {}  local monthNames = {&amp;#039;января&amp;#039;, &amp;#039;февраля&amp;#039;, &amp;#039;марта&amp;#039;, &amp;#039;апреля&amp;#039;, &amp;#039;мая&amp;#039;, &amp;#039;июня&amp;#039;, &amp;#039;июля&amp;#039;, &amp;#039;августа&amp;#039;, &amp;#039;сентября&amp;#039;, &amp;#039;октября&amp;#039;, &amp;#039;ноября&amp;#039;, &amp;#039;декабря&amp;#039;}  if not getArgs then 	getArgs = require(&amp;#039;Модуль:Arguments&amp;#039;).getArgs end  local pageTitle, pageTitleText, sectionHeading, _frame  --[=[ H...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- source: https://ru.wikipedia.org/wiki/Модуль:Get_page_content&lt;br /&gt;
-- license: CC BY-SA 4.0 &lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local monthNames = {&amp;#039;января&amp;#039;, &amp;#039;февраля&amp;#039;, &amp;#039;марта&amp;#039;, &amp;#039;апреля&amp;#039;, &amp;#039;мая&amp;#039;, &amp;#039;июня&amp;#039;, &amp;#039;июля&amp;#039;, &amp;#039;августа&amp;#039;, &amp;#039;сентября&amp;#039;, &amp;#039;октября&amp;#039;, &amp;#039;ноября&amp;#039;, &amp;#039;декабря&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
if not getArgs then&lt;br /&gt;
	getArgs = require(&amp;#039;Модуль:Arguments&amp;#039;).getArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local pageTitle, pageTitleText, sectionHeading, _frame&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Helper function that escapes all pattern characters so that they will be treated&lt;br /&gt;
as plain text. Copied from [[:en:Module:String]].&lt;br /&gt;
]=]&lt;br /&gt;
local function escapePattern(pattern_str)&lt;br /&gt;
	return mw.ustring.gsub(pattern_str, &amp;#039;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;#039;, &amp;#039;%%%1&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Native function can return &amp;quot;Ошибка Lua: PCRE backtrack limit reached while matching pattern &amp;#039;^[	� ]*(.-)[	� ]*$&amp;#039;.&amp;quot;&lt;br /&gt;
-- in case of very long sections.&lt;br /&gt;
local function trim(str)&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;#039;^[	� ]*&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;#039;[	� ]*$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function cleanSectionHeading(heading)&lt;br /&gt;
	-- The following patterns reproduce [[Участник:Jack who built the house/transferHeadingToSummary.js]]&lt;br /&gt;
	heading = mw.ustring.gsub(heading, &amp;#039;%[%[:?[^|%]]*|([^%]]*)%]%]&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
	heading = mw.ustring.gsub(heading, &amp;#039;%[%[:?([^%]]*)%]%]&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
	heading = mw.ustring.gsub(heading, &amp;quot;&amp;#039;&amp;#039;&amp;#039;(.-)&amp;#039;&amp;#039;&amp;#039;&amp;quot;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
	heading = mw.ustring.gsub(heading, &amp;quot;&amp;#039;&amp;#039;(.-)&amp;#039;&amp;#039;&amp;quot;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
	heading = mw.ustring.gsub(heading, &amp;#039;&amp;lt;/?%w+ ?/?&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	heading = mw.ustring.gsub(heading, &amp;#039;&amp;lt;%w+ [%w ]-=[^&amp;lt;&amp;gt;]-&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	heading = mw.ustring.gsub(heading, &amp;#039;  +&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
	heading = mw.text.trim(heading)&lt;br /&gt;
	return heading&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function sectionHeadingToLink(sectionHeading)&lt;br /&gt;
	local sectionHeadingLink = sectionHeading&lt;br /&gt;
	-- The following reproduces processURI function of [[Участник:Jack who built the house/copyWikilinks.js]]&lt;br /&gt;
	--[[sectionHeadingLink = mw.ustring.gsub(sectionHeadingLink, &amp;#039;&amp;lt;&amp;#039;, &amp;#039;%%3C&amp;#039;)&lt;br /&gt;
	sectionHeadingLink = mw.ustring.gsub(sectionHeadingLink, &amp;#039;&amp;gt;&amp;#039;, &amp;#039;%%3E&amp;#039;)&lt;br /&gt;
	sectionHeadingLink = mw.ustring.gsub(sectionHeadingLink, &amp;#039;%[&amp;#039;, &amp;#039;%%5B&amp;#039;)&lt;br /&gt;
	sectionHeadingLink = mw.ustring.gsub(sectionHeadingLink, &amp;#039;%]&amp;#039;, &amp;#039;%%5D&amp;#039;)&lt;br /&gt;
	sectionHeadingLink = mw.ustring.gsub(sectionHeadingLink, &amp;#039;{&amp;#039;, &amp;#039;%%7B&amp;#039;)&lt;br /&gt;
	sectionHeadingLink = mw.ustring.gsub(sectionHeadingLink, &amp;#039;|&amp;#039;, &amp;#039;%%7C&amp;#039;)&lt;br /&gt;
	sectionHeadingLink = mw.ustring.gsub(sectionHeadingLink, &amp;#039;}&amp;#039;, &amp;#039;%%7D&amp;#039;)&lt;br /&gt;
	sectionHeadingLink = mw.ustring.gsub(sectionHeadingLink, &amp;#039; &amp;#039;, &amp;#039;.C2.A0&amp;#039;)]]&lt;br /&gt;
	return &amp;#039;#&amp;#039; .. sectionHeadingLink&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function expandTemplate(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;
	return success and result or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getLastMatchWith2Captures(s, pattern)&lt;br /&gt;
	local iterator = mw.ustring.gmatch(s, pattern)&lt;br /&gt;
	local lastCapture1, lastCapture2&lt;br /&gt;
	for capture1, capture2 in iterator do&lt;br /&gt;
		lastCapture1 = capture1&lt;br /&gt;
		lastCapture2 = capture2&lt;br /&gt;
	end&lt;br /&gt;
	return lastCapture1, lastCapture2&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isEmptyClosure(closureContent)&lt;br /&gt;
	if closureContent then&lt;br /&gt;
		closureContent = closureContent&lt;br /&gt;
			:gsub(&amp;#039;&amp;lt;includeonly&amp;gt;.-&amp;lt;/includeonly&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;&amp;lt;!%-%-.-%-%-&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		closureContent = mw.text.trim(closureContent)&lt;br /&gt;
		if #closureContent &amp;lt; 10 then&lt;br /&gt;
			return true&lt;br /&gt;
		else&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function killHeadingMarkers(content)&lt;br /&gt;
	content = mw.ustring.gsub(&lt;br /&gt;
		content,&lt;br /&gt;
		string.char(127) .. &amp;#039;\&amp;#039;&amp;quot;`UNIQ%-%-h%-%d+%-%-QINU`&amp;quot;\&amp;#039;&amp;#039; .. string.char(127),&lt;br /&gt;
		&amp;#039;&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
	return content&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parsePage(args, talkpageMode)&lt;br /&gt;
	if not _frame then&lt;br /&gt;
		_frame = mw.getCurrentFrame()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	local afdMode = yesno(args[&amp;#039;режим КУ&amp;#039;], false)&lt;br /&gt;
	local pageListMode = yesno(args[&amp;#039;режим списков страниц&amp;#039;], false)&lt;br /&gt;
	local standardMode&lt;br /&gt;
	if not talkpageMode and not afdMode and not pageListMode then&lt;br /&gt;
		standardMode = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local returnAsData = not standardMode or yesno(args[&amp;#039;как данные&amp;#039;], false)&lt;br /&gt;
	&lt;br /&gt;
	local returnAsData_onlyStats&lt;br /&gt;
	if returnAsData and args[&amp;#039;только статистика&amp;#039;] then&lt;br /&gt;
		returnAsData_onlyStats = yesno(args[&amp;#039;только статистика&amp;#039;], false)&lt;br /&gt;
	else&lt;br /&gt;
		returnAsData_onlyStats = false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local subsectionHeading, resultMode&lt;br /&gt;
	if standardMode then&lt;br /&gt;
		resultMode = yesno(args[&amp;#039;итог&amp;#039;], false)&lt;br /&gt;
		subsectionHeading = args[&amp;#039;подраздел&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local standardHeading = not standardMode or yesno(args[&amp;#039;стандартный заголовок&amp;#039;], false)&lt;br /&gt;
	local shortHeadings = talkpageMode and yesno(args[&amp;#039;короткие заголовки&amp;#039;], false)&lt;br /&gt;
	&lt;br /&gt;
	local collapsed = not returnAsData and yesno(args[&amp;#039;свернуть&amp;#039;], false)&lt;br /&gt;
	local showFrame = collapsed or (not returnAsData and (yesno(args[&amp;#039;обрамление&amp;#039;]) or (yesno(args[&amp;#039;из шаблона&amp;#039;], false) and (args[&amp;#039;обрамление&amp;#039;] == nil))))&lt;br /&gt;
	&lt;br /&gt;
	local sectionHeadingLink&lt;br /&gt;
	if showFrame or (standardHeading or returnAsData_onlyStats) and not talkpageMode then&lt;br /&gt;
		sectionHeadingLink = sectionHeadingToLink(sectionHeading)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local renameHeading = args[&amp;#039;переименовать раздел&amp;#039;]&lt;br /&gt;
	&lt;br /&gt;
	local withoutHeading, standardSectionHeading&lt;br /&gt;
	if standardHeading then&lt;br /&gt;
		withoutHeading = true&lt;br /&gt;
		&lt;br /&gt;
		if afdMode then&lt;br /&gt;
			standardSectionHeading = sectionHeading .. &amp;#039; &amp;lt;span style=&amp;quot;font-size:80%;&amp;quot;&amp;gt;← [[&amp;#039; .. pageTitleText .. sectionHeadingLink .. &amp;#039;|&amp;#039; .. pageTitleText .. &amp;#039;]]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		elseif not talkpageMode then&lt;br /&gt;
			standardSectionHeading = &amp;#039;[[&amp;#039; .. pageTitleText .. sectionHeadingLink .. &amp;#039;|&amp;#039; .. (&lt;br /&gt;
					subsectionHeading&lt;br /&gt;
					and subsectionHeading .. &amp;#039; (&amp;#039; .. (renameHeading or sectionHeading) .. &amp;#039;)&amp;#039;&lt;br /&gt;
					or (sectionHeading == &amp;#039;top&amp;#039; and &amp;#039;&amp;lt;i&amp;gt;Преамбула&amp;lt;/i&amp;gt;&amp;#039; or renameHeading or sectionHeading)&lt;br /&gt;
				) .. &amp;#039;]] &amp;lt;span style=&amp;quot;font-size:80%;&amp;quot;&amp;gt;← &amp;#039; .. pageTitleText .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif not talkpageMode and args[&amp;#039;заголовок&amp;#039;] then&lt;br /&gt;
		withoutHeading = not yesno(args[&amp;#039;заголовок&amp;#039;], false)&lt;br /&gt;
	else&lt;br /&gt;
		withoutHeading = false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local level = tonumber(args[&amp;#039;уровень&amp;#039;]) or 2  -- базовый уровень при вставке разделов&lt;br /&gt;
	local additionalEqualSigns = &amp;#039;&amp;#039;&lt;br /&gt;
	if level &amp;gt; 2 then&lt;br /&gt;
		for i = 3, level do&lt;br /&gt;
			additionalEqualSigns = additionalEqualSigns .. &amp;#039;=&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local showInTOC&lt;br /&gt;
	if args[&amp;#039;показывать в содержании&amp;#039;] then&lt;br /&gt;
		showInTOC = yesno(args[&amp;#039;показывать в содержании&amp;#039;], true)&lt;br /&gt;
	elseif collapsed then&lt;br /&gt;
		showInTOC = false&lt;br /&gt;
	else&lt;br /&gt;
		showInTOC = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local showEditLink&lt;br /&gt;
	if args[&amp;#039;править&amp;#039;] then&lt;br /&gt;
		showEditLink = yesno(args[&amp;#039;править&amp;#039;], true)&lt;br /&gt;
	else&lt;br /&gt;
		showEditLink = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local showStatsLine&lt;br /&gt;
	if standardHeading and args[&amp;#039;строка статистики&amp;#039;] then&lt;br /&gt;
		showStatsLine = yesno(args[&amp;#039;строка статистики&amp;#039;], false)&lt;br /&gt;
	else&lt;br /&gt;
		showStatsLine = false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--local additionalLabels = afdMode or args[&amp;#039;дополнительные ярлыки&amp;#039;]&lt;br /&gt;
	&lt;br /&gt;
	local sectionContent&lt;br /&gt;
	local data = {}&lt;br /&gt;
	local allData = talkpageMode and {}&lt;br /&gt;
	if pageTitle.exists then&lt;br /&gt;
		local fullContent = (talkpageMode and &amp;#039;&amp;#039; or &amp;#039;\n== top ==&amp;#039;) .. &amp;#039;\n&amp;#039; .. pageTitle:getContent() .. &amp;#039;\n= technical heading =\n&amp;#039;&lt;br /&gt;
		fullContent = mw.ustring.gsub(&amp;#039;\n&amp;#039; .. fullContent, &amp;#039;(\n(=+)[^\n]-%2[ \t\f\v]*)&amp;lt;!%-%-.-%-%-&amp;gt;&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
		&lt;br /&gt;
		local iterator&lt;br /&gt;
		local rootSectionID&lt;br /&gt;
		if talkpageMode then -- соответствие заголовков второго уровня заголовкам вообще для talkpageMode&lt;br /&gt;
			rootSectionID = {}&lt;br /&gt;
			iterator = mw.ustring.gmatch(fullContent, &amp;#039;\n(=+)[^\n]-%1&amp;#039;)&lt;br /&gt;
			local i, j = 0, 0&lt;br /&gt;
			for equalSigns in iterator do&lt;br /&gt;
				i = i + 1&lt;br /&gt;
				if equalSigns == &amp;#039;==&amp;#039; then&lt;br /&gt;
					j = j + 1&lt;br /&gt;
					rootSectionID[j] = i&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			iterator = mw.ustring.gmatch(fullContent, &amp;#039;\n((==)([^=][^\n]-)==)&amp;#039;)&lt;br /&gt;
		else&lt;br /&gt;
			iterator = mw.ustring.gmatch(fullContent, &amp;#039;\n((=+)([^\n]-)%2)&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local headingNum = 0&lt;br /&gt;
		for fullMatch, equalSigns, match in iterator do&lt;br /&gt;
			headingNum = headingNum + 1&lt;br /&gt;
			data = {}&lt;br /&gt;
			match = mw.text.trim(match)&lt;br /&gt;
			&lt;br /&gt;
			local thisHeading = mw.text.encode(cleanSectionHeading(match), &amp;#039;&amp;lt;&amp;gt;%[%]{|}&amp;#039;)&lt;br /&gt;
			if thisHeading == sectionHeading or talkpageMode then&lt;br /&gt;
				-- получаем содержимое раздела&lt;br /&gt;
				local equalSignsPattern = &amp;#039;=&amp;#039;&lt;br /&gt;
				for i = 2, #equalSigns do&lt;br /&gt;
					equalSignsPattern = equalSignsPattern .. &amp;#039;=?&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				sectionContent =&lt;br /&gt;
					mw.ustring.match(fullContent,&lt;br /&gt;
						   (withoutHeading and &amp;#039;&amp;#039; or &amp;#039;(&amp;#039;)&lt;br /&gt;
						.. escapePattern(fullMatch) .. &amp;#039;[ \t\f\v]*\n+&amp;#039;&lt;br /&gt;
						.. (withoutHeading and &amp;#039;(&amp;#039; or &amp;#039;&amp;#039;)&lt;br /&gt;
						.. &amp;#039;.-)\n&amp;#039; .. equalSignsPattern .. &amp;#039;[^=][^\n]-=+[ \t\f\v]*\n&amp;#039;) or &amp;#039;&amp;#039; --will fail at &amp;quot;===&amp;quot; or the like&lt;br /&gt;
				sectionContent = sectionContent:gsub(&amp;#039;&amp;lt;onlyinclude&amp;gt;.-&amp;lt;/onlyinclude&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
				sectionContent = sectionContent:gsub(&amp;#039;&amp;lt;includeonly&amp;gt;(.-)&amp;lt;/includeonly&amp;gt;&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
				&lt;br /&gt;
				local subsectionHeadingNum&lt;br /&gt;
				if subsectionHeading then -- withoutHeading тут неактуально — standardHeading всегда true&lt;br /&gt;
					local beforeContent&lt;br /&gt;
					beforeContent, sectionContent = mw.ustring.match(sectionContent .. &amp;#039;\n= technical heading =\n&amp;#039;, &amp;#039;(.-)\n&amp;#039; .. equalSigns .. &amp;#039;=[ \t\f\v]*&amp;#039; .. escapePattern(subsectionHeading) .. &amp;#039;[ \t\f\v]*=+[ \t\f\v]*\n+(.-)\n&amp;#039; .. equalSignsPattern .. &amp;#039;[^=][^\n]-=+[ \t\f\v]*\n&amp;#039;)&lt;br /&gt;
					subsectionHeadingNum = 0&lt;br /&gt;
					for match2 in mw.ustring.gmatch(&amp;#039;\n&amp;#039; .. beforeContent, &amp;#039;\n=+[^\n]-=+&amp;#039;) do&lt;br /&gt;
						subsectionHeadingNum = subsectionHeadingNum + 1&lt;br /&gt;
					end&lt;br /&gt;
					if not sectionContent then&lt;br /&gt;
						sectionContent = &amp;#039;&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				local closureHeading, resultMode_closureHeadingNum&lt;br /&gt;
				if resultMode then&lt;br /&gt;
					local beforeContent, newSectionContent, closureContent&lt;br /&gt;
					local closureTitles = {&amp;#039;Итог&amp;#039;, &amp;#039;Окончательный итог&amp;#039;, &amp;#039;Автоитог&amp;#039;}&lt;br /&gt;
					if withoutHeading and not standardHeading then&lt;br /&gt;
						for i = 1, #closureTitles do -- через or несколько match&amp;#039;ей тут нельзя, так как возвращаются несколько значений&lt;br /&gt;
							if i == 1 or not newSectionContent then&lt;br /&gt;
								beforeContent, closureHeading, newSectionContent = mw.ustring.match(sectionContent .. &amp;#039;\n= technical heading =\n&amp;#039;, &amp;#039;(.*)\n&amp;#039; .. equalSigns .. &amp;#039;=[ \t\f\v]*(&amp;#039; .. closureTitles[i] .. &amp;#039;[^\n]-)[ \t\f\v]*=+[ \t\f\v]*\n+(.-)\n&amp;#039; .. equalSignsPattern .. &amp;#039;[^=][^\n]-=+[ \t\f\v]*\n&amp;#039;)&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					else&lt;br /&gt;
						for i = 1, #closureTitles do -- через or несколько match&amp;#039;ей тут нельзя, так как возвращаются несколько значений&lt;br /&gt;
							if i == 1 or not newSectionContent then&lt;br /&gt;
								beforeContent, newSectionContent, closureHeading, closureContent = mw.ustring.match(sectionContent .. &amp;#039;\n= technical heading =\n&amp;#039;, &amp;#039;(.*)\n(&amp;#039; .. equalSigns .. &amp;#039;=[ \t\f\v]*(&amp;#039; .. closureTitles[i] .. &amp;#039;[^\n]-)[ \t\f\v]*=+[ \t\f\v]*\n(.-))\n&amp;#039; .. equalSignsPattern .. &amp;#039;[^=][^\n]-=+[ \t\f\v]*\n&amp;#039;)&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if newSectionContent then&lt;br /&gt;
						sectionContent = newSectionContent&lt;br /&gt;
						newSectionContent = nil&lt;br /&gt;
						resultMode_closureHeadingNum = 0&lt;br /&gt;
						for match2 in mw.ustring.gmatch(&amp;#039;\n&amp;#039; .. beforeContent, &amp;#039;\n=+[^\n]-=+&amp;#039;) do&lt;br /&gt;
							resultMode_closureHeadingNum = resultMode_closureHeadingNum + 1&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						-- проверяем, не пустая ли секция итога&lt;br /&gt;
						emptyClosure = isEmptyClosure(closureContent or sectionContent)&lt;br /&gt;
						if emptyClosure then&lt;br /&gt;
							closureHeading = nil&lt;br /&gt;
							&lt;br /&gt;
							if not returnAsData_onlyStats then&lt;br /&gt;
								sectionContent = &amp;quot;&amp;#039;&amp;#039;Похоже, что итога пока нет.&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					else&lt;br /&gt;
						if not returnAsData_onlyStats then&lt;br /&gt;
							sectionContent = &amp;quot;&amp;#039;&amp;#039;Похоже, что итога пока нет.&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
						else&lt;br /&gt;
							sectionContent = &amp;#039;&amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				-- извлекаем данные:&lt;br /&gt;
				-- о сообщениях&lt;br /&gt;
				if showStatsLine or returnAsData then&lt;br /&gt;
					local iterator2 = mw.ustring.gmatch(&amp;#039;\n&amp;#039; .. sectionContent, &amp;#039;\n([^\n]+)((%d%d):(%d%d), (%d%d?) (%w+) (%d%d%d%d)) %(UTC%)&amp;#039;) --(%d%d? %w+ %d%d%d%d)&lt;br /&gt;
					local msgCount, authors = 0, {}&lt;br /&gt;
					local lastMsgDate, lastMsgDateString, lastMsgAuthor&lt;br /&gt;
					for precedingText, fullDateString, h, i, d, mesyats, y in iterator2 do&lt;br /&gt;
						msgCount = msgCount + 1&lt;br /&gt;
						h = tonumber(h)&lt;br /&gt;
						i = tonumber(i)&lt;br /&gt;
						d = tonumber(d)&lt;br /&gt;
						y = tonumber(y)&lt;br /&gt;
						local m = 1&lt;br /&gt;
						for k, v in pairs(monthNames) do&lt;br /&gt;
							if v == mesyats then&lt;br /&gt;
								m = k&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						local patterns = {&lt;br /&gt;
							&amp;#039;()%[%[[УуUu]:([^|%]#]+)&amp;#039;,&lt;br /&gt;
							&amp;#039;()%[%[[Уу]частни[кц]а?:([^|%]#]+)&amp;#039;,&lt;br /&gt;
							&amp;#039;()%[%[[Uu]ser:([^|%]#]+)&amp;#039;,&lt;br /&gt;
							&amp;#039;()%[%[[Оо][Уу]:([^|%]#]+)&amp;#039;,                    &lt;br /&gt;
							&amp;#039;()%[%[[Оо]бсуждение[ _]участника:([^|%]#]+)&amp;#039;,  &lt;br /&gt;
							&amp;#039;()%[%[[Uu]ser[ _]talk:([^|%]#]+)&amp;#039;,&lt;br /&gt;
							&amp;#039;()%[%[Special:Contributions/([^|%]#]+)&amp;#039;, -- анонимы&lt;br /&gt;
							&amp;#039;()%[%[[^|]+|([^%]]+)%]%]&amp;#039;                -- случаи типа [[w:en:Wikipedia:TWL/Coordinators|The Wikipedia Library Team]]&lt;br /&gt;
						}&lt;br /&gt;
						local lastPos = 0&lt;br /&gt;
						local author&lt;br /&gt;
						for k, v in pairs(patterns) do&lt;br /&gt;
							pos, mention = getLastMatchWith2Captures(precedingText, v)&lt;br /&gt;
							if pos and pos &amp;gt; lastPos then&lt;br /&gt;
								lastPos = pos&lt;br /&gt;
								author = mention&lt;br /&gt;
							end&lt;br /&gt;
							&lt;br /&gt;
							-- чтобы «обс» / «вкл» и т. п. из последнего паттерна&lt;br /&gt;
							-- не вытесняли ники&lt;br /&gt;
							if k == #patterns - 1 and author then break end&lt;br /&gt;
						end&lt;br /&gt;
						if author then&lt;br /&gt;
							author = mw.text.encode(author)&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						if&lt;br /&gt;
							   not lastMsgDate&lt;br /&gt;
							or (y &amp;gt; lastMsgDate.y)&lt;br /&gt;
							or (y == lastMsgDate.y and m &amp;gt; lastMsgDate.m)&lt;br /&gt;
							or (y == lastMsgDate.y and m == lastMsgDate.m and d &amp;gt; lastMsgDate.d)&lt;br /&gt;
							or (y == lastMsgDate.y and m == lastMsgDate.m and d == lastMsgDate.d and h &amp;gt; lastMsgDate.h)&lt;br /&gt;
							or (y == lastMsgDate.y and m == lastMsgDate.m and d == lastMsgDate.d and h == lastMsgDate.h and i &amp;gt; lastMsgDate.i)&lt;br /&gt;
						then&lt;br /&gt;
							lastMsgDate = {y = y, m = m, d = d, h = h, i = i}&lt;br /&gt;
							lastMsgDateString = fullDateString&lt;br /&gt;
							lastMsgAuthor = author or &amp;#039;?&amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
						&lt;br /&gt;
						local found = false&lt;br /&gt;
						for k, v in pairs(authors) do&lt;br /&gt;
							if v == author then&lt;br /&gt;
								found = true&lt;br /&gt;
								break&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						if not found then&lt;br /&gt;
							table.insert(authors, author)&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					--local authorsList = table.concat(authors, &amp;#039;, &amp;#039;)&lt;br /&gt;
					if msgCount &amp;gt; 0 then&lt;br /&gt;
						if returnAsData then&lt;br /&gt;
							data.msgCount = msgCount&lt;br /&gt;
							--data.lastMsgDate = lastMsgDate&lt;br /&gt;
							data.lastMsgDateString = lastMsgDateString&lt;br /&gt;
							data.lastMsgDateTimestamp = os.time({year = lastMsgDate.y, month = lastMsgDate.m, day = lastMsgDate.d, hour = lastMsgDate.h, min = lastMsgDate.i})&lt;br /&gt;
							data.lastMsgAuthor = lastMsgAuthor&lt;br /&gt;
							data.lastMsgAnchor = string.format(&amp;#039;%.4d%.2d%.2d%.2d%.2d_%s&amp;#039;, lastMsgDate.y, lastMsgDate.m, lastMsgDate.d, lastMsgDate.h, lastMsgDate.i, lastMsgAuthor)&lt;br /&gt;
							data.authors = authors&lt;br /&gt;
						end&lt;br /&gt;
						if showStatsLine then&lt;br /&gt;
							sectionContent = &amp;#039;\&amp;#039;\&amp;#039;Последнее сообщение: &amp;#039; .. lastMsgDateString .. &amp;#039; от &amp;#039; .. lastMsgAuthor .. &amp;#039;. Всего &amp;#039; .. msgCount .. &amp;#039; {{plural: &amp;#039; .. msgCount .. &amp;#039;|сообщение|сообщения|сообщений}} от &amp;#039; .. #authors .. &amp;#039; {{plural: &amp;#039; .. #authors .. &amp;#039;|автора|авторов}}.\&amp;#039;\&amp;#039;\n&amp;#039; .. sectionContent&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				-- ...для ярлыков&lt;br /&gt;
				local preclosureHeading, challengedClosureHeading, partialClosureHeading, warningHeading&lt;br /&gt;
				if afdMode then&lt;br /&gt;
					closureHeading = mw.ustring.match(match, &amp;#039;^&amp;lt;s&amp;gt;.*&amp;#039;)&lt;br /&gt;
				elseif pageListMode then&lt;br /&gt;
					warningHeading =&lt;br /&gt;
						   mw.ustring.match(match, &amp;#039;^Предупреждение.*&amp;#039;)&lt;br /&gt;
						or mw.ustring.match(match, &amp;#039;^Блокировка.*&amp;#039;)&lt;br /&gt;
						or mw.ustring.match(match, &amp;#039;^Нарушение авторских прав.*&amp;#039;)&lt;br /&gt;
						or mw.ustring.match(match, &amp;#039;^Нарушение АП.*&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				-- экономим ресурсы и совершаем максимум два действия за один обход регуляркой:&lt;br /&gt;
				-- извлечение данных для ярлыков и формирование заголовков с корректной ссылкой на правку&lt;br /&gt;
				local i = 0&lt;br /&gt;
				local emptyClosure&lt;br /&gt;
				sectionContent = mw.ustring.gsub(&amp;#039;\n&amp;#039; .. sectionContent, &amp;#039;\n((=+)([^\n]-)%2)&amp;#039;, function (fullMatch2, equalSigns2, match2)&lt;br /&gt;
					i = i + 1&lt;br /&gt;
					match2 = mw.text.trim(match2)&lt;br /&gt;
					&lt;br /&gt;
					if returnAsData and not resultMode and not emptyClosure then&lt;br /&gt;
						if not closureHeading and #equalSigns2 == #equalSigns + 1 then&lt;br /&gt;
							closureHeading =&lt;br /&gt;
								   mw.ustring.match(match2, &amp;#039;^Итог.*&amp;#039;)&lt;br /&gt;
								or mw.ustring.match(match2, &amp;#039;^Окончательный итог.*&amp;#039;)&lt;br /&gt;
								or mw.ustring.match(match2, &amp;#039;^Автоитог.*&amp;#039;)&lt;br /&gt;
								--or mw.ustring.match(match2, &amp;#039;^Автоматический итог.*&amp;#039;)&lt;br /&gt;
							&lt;br /&gt;
							if closureHeading then&lt;br /&gt;
								-- проверяем, не пустая ли секция итога&lt;br /&gt;
								local closureContent = mw.ustring.match(sectionContent .. &amp;#039;\n= technical heading =\n&amp;#039;, &amp;#039;\n===+[ \t\f\v]*Итог[^\n]-[ \t\f\v]*=+[ \t\f\v]*\n+(.-)\n=+[^\n]-=+[ \t\f\v]*\n&amp;#039;)&lt;br /&gt;
								emptyClosure = isEmptyClosure(closureContent);&lt;br /&gt;
								if emptyClosure then&lt;br /&gt;
									closureHeading = nil&lt;br /&gt;
									challengedClosureHeading = nil&lt;br /&gt;
									preclosureHeading = nil&lt;br /&gt;
									partialClosureHeading = nil&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						if not closureHeading then  -- not closureHeading and additionalLabels&lt;br /&gt;
							if afdMode and not partialClosureHeading and #equalSigns2 == #equalSigns + 2 then&lt;br /&gt;
								partialClosureHeading =&lt;br /&gt;
									   mw.ustring.match(match2, &amp;#039;^Итог.*&amp;#039;)&lt;br /&gt;
								 	or mw.ustring.match(match2, &amp;#039;^Окончательный итог.*&amp;#039;)&lt;br /&gt;
								 	or mw.ustring.match(match2, &amp;#039;^Автоитог.*&amp;#039;)&lt;br /&gt;
									or mw.ustring.match(match2, &amp;#039;^Автоматический итог.*&amp;#039;)&lt;br /&gt;
							end&lt;br /&gt;
							if not challengedClosureHeading and #equalSigns2 == #equalSigns + 1 then&lt;br /&gt;
								challengedClosureHeading =&lt;br /&gt;
									   mw.ustring.match(match2, &amp;#039;^Оспоренный [иИ]тог.*&amp;#039;)&lt;br /&gt;
									or mw.ustring.match(match2, &amp;#039;^Опротестованный [иИ]тог.*&amp;#039;)&lt;br /&gt;
								 --or mw.ustring.match(match2, &amp;#039;^Не [иИ]тог.*&amp;#039;)&lt;br /&gt;
								if challengedClosureHeading then&lt;br /&gt;
									preclosureHeading = nil&lt;br /&gt;
									partialClosureHeading = nil&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
							if not challengedClosureHeading and #equalSigns2 == #equalSigns + 1 then&lt;br /&gt;
								preclosureHeading =&lt;br /&gt;
									   mw.ustring.match(match2, &amp;#039;^Предварительный итог.*&amp;#039;)&lt;br /&gt;
									or mw.ustring.match(match2, &amp;#039;^Пред[иы]тог.*&amp;#039;)&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
						if closureHeading and #equalSigns2 == #equalSigns + 1 then&lt;br /&gt;
							challengedClosureHeading =&lt;br /&gt;
								mw.ustring.match(match2, &amp;#039;^Оспаривание [иИтога]*&amp;#039;)&lt;br /&gt;
							if challengedClosureHeading then&lt;br /&gt;
								closureHeading = nil&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					local editLink2&lt;br /&gt;
					if showEditLink then&lt;br /&gt;
						editLink2 = pageTitle:fullUrl(&amp;#039;action=edit&amp;amp;section=&amp;#039; ..&lt;br /&gt;
							(talkpageMode and rootSectionID[headingNum] + i or headingNum - 1 + i)&lt;br /&gt;
						  + (not withoutHeading and -1 or 0)&lt;br /&gt;
						  + (resultMode_closureHeadingNum and resultMode_closureHeadingNum or 0)&lt;br /&gt;
						  + (subsectionHeadingNum and subsectionHeadingNum or 0)&lt;br /&gt;
						) -- «- 1», так как, за исключением talkpageMode, мы вставляем искусственную первую секцию&lt;br /&gt;
					end&lt;br /&gt;
					return &amp;#039;\n&amp;#039; .. expandTemplate(&amp;#039;fake heading&amp;#039;, {&lt;br /&gt;
						[&amp;#039;sub&amp;#039;] = #equalSigns2 + level - 2,&lt;br /&gt;
						renameHeading or match2,&lt;br /&gt;
						[&amp;#039;real heading&amp;#039;] = showInTOC and additionalEqualSigns .. &amp;#039;== &amp;#039; .. (renameHeading or match2) .. &amp;#039; ==&amp;#039; .. additionalEqualSigns or &amp;#039;&amp;#039;,&lt;br /&gt;
						[&amp;#039;edit link&amp;#039;] = showEditLink and editLink2 or &amp;#039;&amp;#039;,&lt;br /&gt;
						[&amp;#039;in frame&amp;#039;] = (showFrame and (not withoutHeading or standardHeading) and i == 1 and &amp;#039;1&amp;#039; or &amp;#039;&amp;#039;)&lt;br /&gt;
					})&lt;br /&gt;
				end)&lt;br /&gt;
				&lt;br /&gt;
				if returnAsData then&lt;br /&gt;
					data.closureHeading = closureHeading&lt;br /&gt;
					data.preclosureHeading = preclosureHeading&lt;br /&gt;
					data.challengedClosureHeading = challengedClosureHeading&lt;br /&gt;
					data.partialClosureHeading = partialClosureHeading&lt;br /&gt;
					data.warningHeading = warningHeading&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				local thisHeadingLink = sectionHeadingLink and sectionHeadingLink or sectionHeadingToLink(thisHeading)&lt;br /&gt;
				if returnAsData then&lt;br /&gt;
					data.sectionHeadingLink = thisHeadingLink&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				local editLink&lt;br /&gt;
				editLink = pageTitle:fullUrl(&amp;#039;action=edit&amp;amp;section=&amp;#039; .. (talkpageMode and rootSectionID[headingNum] or headingNum - 1))&lt;br /&gt;
				if returnAsData then&lt;br /&gt;
					data.sectionEditLink = editLink&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				-- формируем заголовок&lt;br /&gt;
				if not returnAsData_onlyStats and standardHeading then&lt;br /&gt;
					if talkpageMode then&lt;br /&gt;
						if shortHeadings then&lt;br /&gt;
							standardSectionHeading = &amp;#039;[[&amp;#039; .. pageTitleText .. thisHeadingLink .. &amp;#039;|&amp;#039; .. thisHeading .. &amp;#039;]]&amp;#039;&lt;br /&gt;
						else&lt;br /&gt;
							standardSectionHeading = &amp;#039;[[&amp;#039; .. pageTitleText .. thisHeadingLink .. &amp;#039;|&amp;#039; .. thisHeading .. &amp;#039;]] &amp;lt;span style=&amp;quot;font-size:80%;&amp;quot;&amp;gt;← &amp;#039; .. pageTitleText .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
					elseif afdMode then&lt;br /&gt;
						standardSectionHeading = match .. &amp;#039; &amp;lt;span style=&amp;quot;font-size:80%;&amp;quot;&amp;gt;← [[&amp;#039; .. pageTitleText .. thisHeadingLink .. &amp;#039;|&amp;#039; .. pageTitleText .. &amp;#039;]]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					sectionContent = expandTemplate(&amp;#039;fake heading&amp;#039;, {&lt;br /&gt;
						[&amp;#039;sub&amp;#039;] = 2 + level - 2,&lt;br /&gt;
						renameHeading or standardSectionHeading,&lt;br /&gt;
						[&amp;#039;real heading&amp;#039;] = showInTOC and additionalEqualSigns .. &amp;#039;== &amp;#039; .. (renameHeading or standardSectionHeading) .. &amp;#039; ==&amp;#039; .. additionalEqualSigns or &amp;#039;&amp;#039;,&lt;br /&gt;
						[&amp;#039;edit link&amp;#039;] = showEditLink and editLink or &amp;#039;&amp;#039;&lt;br /&gt;
					}) .. &amp;#039;\n&amp;#039; .. sectionContent&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				sectionContent = trim(sectionContent)&lt;br /&gt;
				&lt;br /&gt;
				if talkpageMode then&lt;br /&gt;
					data.sectionHeading = thisHeading&lt;br /&gt;
					if not returnAsData_onlyStats then&lt;br /&gt;
						data.sectionContent = sectionContent&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if talkpageMode and data.sectionHeading then&lt;br /&gt;
				table.insert(allData, data)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if not talkpageMode and (returnAsData or not returnAsData_onlyStats) then&lt;br /&gt;
			if sectionContent == &amp;#039;&amp;#039; then&lt;br /&gt;
				if subsectionHeading then&lt;br /&gt;
					local sectionNotExistMessage = &amp;#039;На странице [[&amp;#039; .. pageTitleText .. &amp;#039;]] в разделе «&amp;#039; .. sectionHeading .. &amp;#039;» не найден подраздел «&amp;#039; .. subsectionHeading .. &amp;#039;». Возможно, тема была заархивирована.&amp;#039;&lt;br /&gt;
					if returnAsData then&lt;br /&gt;
						data.sectionNotExistMessage = sectionNotExistMessage&lt;br /&gt;
					end&lt;br /&gt;
					if not returnAsData_onlyStats then&lt;br /&gt;
						sectionContent = &amp;#039;== &amp;#039; .. (renameHeading or standardSectionHeading) .. &amp;quot; ==\n&amp;#039;&amp;#039;&amp;quot; .. sectionNotExistMessage .. &amp;quot;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
					end&lt;br /&gt;
				elseif not returnAsData_onlyStats then&lt;br /&gt;
					sectionContent = &amp;#039;== &amp;#039; .. (renameHeading or standardSectionHeading) .. &amp;quot; ==\n&amp;#039;&amp;#039;&amp;lt;span class=\&amp;quot;error\&amp;quot;&amp;gt;Не удалось получить содержимое раздела «&amp;#039; .. sectionHeading .. &amp;#039;» на странице [[&amp;#039; .. pageTitleText .. &amp;#039;]] (хотя он был найден).&amp;lt;/span&amp;gt;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not sectionContent then&lt;br /&gt;
				local sectionNotExistMessage = &amp;#039;На странице [[&amp;#039; .. pageTitleText .. &amp;#039;]] не найден раздел «&amp;#039; .. sectionHeading .. &amp;#039;».&amp;#039;&lt;br /&gt;
				if not (&lt;br /&gt;
					   mw.ustring.find(pageTitleText, &amp;#039;^Википедия:К удалению/&amp;#039;)&lt;br /&gt;
					or mw.ustring.find(pageTitleText, &amp;#039;^Википедия:К восстановлению/&amp;#039;)&lt;br /&gt;
					or mw.ustring.find(pageTitleText, &amp;#039;^Википедия:К переименованию/&amp;#039;)&lt;br /&gt;
					or mw.ustring.find(pageTitleText, &amp;#039;^Википедия:К объединению/&amp;#039;)&lt;br /&gt;
					or mw.ustring.find(pageTitleText, &amp;#039;^Википедия:К разделению/&amp;#039;)&lt;br /&gt;
					or mw.ustring.find(pageTitleText, &amp;#039;^Википедия:К улучшению/&amp;#039;)&lt;br /&gt;
				) then&lt;br /&gt;
					sectionNotExistMessage = sectionNotExistMessage .. &amp;#039; Возможно, он был заархивирован.&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				if returnAsData then&lt;br /&gt;
					data.sectionNotExistMessage = sectionNotExistMessage&lt;br /&gt;
				end&lt;br /&gt;
				if not returnAsData_onlyStats then&lt;br /&gt;
					sectionContent = (standardHeading and &amp;#039;== &amp;#039; .. (renameHeading or standardSectionHeading) .. &amp;#039; ==\n&amp;#039; or &amp;#039;&amp;#039;) .. &amp;quot;&amp;#039;&amp;#039;&amp;quot; .. sectionNotExistMessage .. &amp;quot;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local pageNotExistMessage = &amp;#039;Страницы [[&amp;#039; .. pageTitleText .. &amp;#039;]] не существует.&amp;#039;&lt;br /&gt;
		if not talkpageMode and not returnAsData_onlyStats then&lt;br /&gt;
			sectionContent = (standardHeading and &amp;#039;== &amp;#039; .. (renameHeading or standardSectionHeading) .. &amp;#039; ==\n&amp;#039; or &amp;#039;&amp;#039;) .. &amp;quot;&amp;#039;&amp;#039;&amp;quot; .. pageNotExistMessage .. &amp;quot;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		if returnAsData then&lt;br /&gt;
			if talkpageMode then&lt;br /&gt;
				allData.pageNotExistMessage = pageNotExistMessage&lt;br /&gt;
			else&lt;br /&gt;
				data.pageNotExistMessage = pageNotExistMessage&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if returnAsData then&lt;br /&gt;
		if talkpageMode then&lt;br /&gt;
			return allData&lt;br /&gt;
		else&lt;br /&gt;
			if not returnAsData_onlyStats then&lt;br /&gt;
				data.sectionContent = sectionContent&lt;br /&gt;
			end&lt;br /&gt;
			return data&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if collapsed then&lt;br /&gt;
			sectionContent =&lt;br /&gt;
			   	   &amp;#039;&amp;lt;blockquote style=&amp;quot;margin:0; padding:0; background:transparent; overflow:visible; font-weight:bold; text-align:center; margin:0 5em;&amp;quot;&amp;gt;Содержимое раздела «[[&amp;#039; .. pageTitleText .. sectionHeadingLink .. &amp;#039;|&amp;#039; .. sectionHeading .. &amp;#039;]]» на странице «&amp;#039; .. pageTitleText .. &amp;#039;»&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			   	.. &amp;#039;&amp;lt;table class=&amp;quot;collapsible collapsed&amp;quot; style=&amp;quot;width:100%; margin-top:-22.4px; border-collapse:collapse;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
			   	.. &amp;#039;&amp;lt;tr&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;th style=&amp;quot;padding:0;&amp;quot;&amp;gt;&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;tr&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;td style=&amp;quot;padding:0; padding-top:1em;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;div style=&amp;quot;border-left:2px solid #a2a9b1; padding-left:0.75em;&amp;quot;&amp;gt;&amp;#039; .. sectionContent .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;/table&amp;gt;&amp;#039;&lt;br /&gt;
		elseif showFrame then&lt;br /&gt;
			sectionContent =&lt;br /&gt;
			      &amp;#039;\&amp;#039;\&amp;#039;Ниже приведено содержимое раздела «[[&amp;#039; .. pageTitleText .. sectionHeadingLink .. &amp;#039;|&amp;#039; .. sectionHeading .. &amp;#039;]]» на странице «&amp;#039; .. pageTitleText .. &amp;#039;»:\&amp;#039;\&amp;#039;&amp;#039;&lt;br /&gt;
			   .. &amp;#039;&amp;lt;blockquote style=&amp;quot;margin:0; padding:0; background:transparent; overflow:visible; border-left:2px solid #a2a9b1; padding-left:0.75em;&amp;quot;&amp;gt;&amp;#039; .. sectionContent .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		return sectionContent&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._parse_section_content(args)&lt;br /&gt;
	if not args[1] then return &amp;#039;&amp;#039; end&lt;br /&gt;
	if type(args[1]) ~= &amp;#039;table&amp;#039; and args[1]:find(&amp;#039;#&amp;#039;) then&lt;br /&gt;
		pageTitle, sectionHeading = args[1]:match(&amp;#039;(.-)#(.+)&amp;#039;)&lt;br /&gt;
		if pageTitle then&lt;br /&gt;
			pageTitle = mw.title.new(pageTitle)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		pageTitle = type(args[1]) == &amp;#039;table&amp;#039; and args[1] or mw.title.new(args[1])&lt;br /&gt;
		sectionHeading = args[2]&lt;br /&gt;
	end&lt;br /&gt;
	if pageTitle then&lt;br /&gt;
		pageTitle.fragment = &amp;#039;&amp;#039;&lt;br /&gt;
		pageTitleText = pageTitle.prefixedText&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not pageTitle or not sectionHeading then return &amp;#039;&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	return parsePage(args, false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._parse_talkpage_content(args)&lt;br /&gt;
	pageTitle = type(args[1]) == &amp;#039;table&amp;#039; and args[1] or mw.title.new(args[1])&lt;br /&gt;
	if pageTitle then&lt;br /&gt;
		pageTitle.fragment = &amp;#039;&amp;#039;&lt;br /&gt;
		pageTitleText = pageTitle.prefixedText&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not pageTitle then return &amp;#039;&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	return parsePage(args, true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.parse_section_content(frame)&lt;br /&gt;
	_frame = frame&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return killHeadingMarkers(frame:preprocess(p._parse_section_content(args)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.parse_raw_section_content(frame)&lt;br /&gt;
	_frame = frame&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return killHeadingMarkers(p._parse_section_content(args))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[function p.parse_talkpage_content(frame)&lt;br /&gt;
	_frame = frame&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return killHeadingMarkers(frame:preprocess(p._parse_talkpage_content(args)))&lt;br /&gt;
end]]&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Pok</name></author>
	</entry>
</feed>