<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://massarn.com/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3APageparser</id>
	<title>Модуль:Pageparser - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://massarn.com/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3APageparser"/>
	<link rel="alternate" type="text/html" href="https://massarn.com/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Pageparser&amp;action=history"/>
	<updated>2026-10-22T22:32:13Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://massarn.com/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Pageparser&amp;diff=2495&amp;oldid=prev</id>
		<title>Buto: Новая страница: « ---- Этот модуль содержит функции работы с текстом страницы local p = {}   --[[    Функция возвращает названия всех секций на странице      Параметры:   1. page= имя страницы (текущая по умолчанию)   2. level= уровень секции (2 по умолчанию)   3. namespace= простраство имён (статьи);...»</title>
		<link rel="alternate" type="text/html" href="https://massarn.com/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Pageparser&amp;diff=2495&amp;oldid=prev"/>
		<updated>2026-10-22T18:58:37Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: « ---- Этот модуль содержит функции работы с текстом страницы local p = {}   --[[    Функция возвращает названия всех секций на странице      Параметры:   1. page= имя страницы (текущая по умолчанию)   2. level= уровень секции (2 по умолчанию)   3. namespace= простраство имён (статьи);...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt; ---- Этот модуль содержит функции работы с текстом страницы&lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
--[[ &lt;br /&gt;
  Функция возвращает названия всех секций на странице&lt;br /&gt;
  &lt;br /&gt;
  Параметры:&lt;br /&gt;
  1. page= имя страницы (текущая по умолчанию)&lt;br /&gt;
  2. level= уровень секции (2 по умолчанию)&lt;br /&gt;
  3. namespace= простраство имён (статьи); простраство имён можно передовать внутри имени страницы через двоеточие&lt;br /&gt;
  4. delimiter= разделитель названий секций (&amp;#039;&amp;amp;nbsp;&amp;amp;#149; &amp;#039; по умолчанию)&lt;br /&gt;
  &lt;br /&gt;
  Возвращаемое значение:&lt;br /&gt;
  Строка, содержащая список всех секций, разделённых указанным разделителем&lt;br /&gt;
]]&lt;br /&gt;
function p.sections(frame)&lt;br /&gt;
	local function getParameters( frame_args, arg_list )&lt;br /&gt;
		local new_args = {};&lt;br /&gt;
		local index = 1;&lt;br /&gt;
		local value;&lt;br /&gt;
 &lt;br /&gt;
		for i,arg in ipairs( arg_list ) do&lt;br /&gt;
			value = frame_args[arg]&lt;br /&gt;
			if value == nil then&lt;br /&gt;
				value = frame_args[index];&lt;br /&gt;
				index = index + 1;&lt;br /&gt;
			end&lt;br /&gt;
			new_args[arg] = value;&lt;br /&gt;
		end&lt;br /&gt;
 &lt;br /&gt;
		return new_args;&lt;br /&gt;
	end&lt;br /&gt;
	local new_args = getParameters( frame.args, { &amp;#039;page&amp;#039;, &amp;#039;level&amp;#039;, &amp;#039;namespace&amp;#039;, &amp;#039;delimiter&amp;#039;, &amp;#039;get_numbers&amp;#039;, &amp;#039;firstonly&amp;#039;, &amp;#039;length&amp;#039; } );&lt;br /&gt;
	local page  = new_args[&amp;#039;page&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
	local namespace = new_args[&amp;#039;namespace&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
	local level = new_args[&amp;#039;level&amp;#039;] or 2;&lt;br /&gt;
	local delimiter = new_args[&amp;#039;delimiter&amp;#039;] or &amp;#039;\n&amp;#039;;&lt;br /&gt;
	local get_numbers = new_args[&amp;#039;get_numbers&amp;#039;] or false;&lt;br /&gt;
	local firstonly = new_args[&amp;#039;firstonly&amp;#039;] or false;&lt;br /&gt;
	local length = new_args[&amp;#039;length&amp;#039;] or false;&lt;br /&gt;
	local pagepointer;&lt;br /&gt;
	if page == &amp;#039;&amp;#039; then&lt;br /&gt;
		pagepointer=mw.title.getCurrentTitle()&lt;br /&gt;
		assert(pagepointer,&amp;quot;failed to access getCurrentTitle&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		pagepointer=mw.title.new(page, namespace)&lt;br /&gt;
		assert(pagepointer,&amp;quot;failed to access mw.title.new(&amp;quot;..tostring(page)..&amp;quot;)&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local text=pagepointer.getContent(pagepointer);&lt;br /&gt;
	assert (text,&amp;quot;error: failed to get text from &amp;quot;.. page)&lt;br /&gt;
	text= mw.ustring.gsub( text, &amp;quot;&amp;lt;!%-%-.-%-%-&amp;gt;&amp;quot;, &amp;quot;&amp;quot; ); -- убираем HTML комментарии&lt;br /&gt;
	local hpref = mw.ustring.rep(&amp;quot;=&amp;quot;, tonumber(level));&lt;br /&gt;
	local iterator  = mw.ustring.gmatch(text, &amp;quot;\n&amp;quot; .. hpref .. &amp;quot;%s*([^=]-)%s*&amp;quot; .. hpref ..&amp;quot;\n&amp;quot;);&lt;br /&gt;
	local sections = {};&lt;br /&gt;
	&lt;br /&gt;
	local tocNumber = 1&lt;br /&gt;
	for sectionname in iterator do&lt;br /&gt;
		table.insert(sections, sectionname .. (get_numbers and &amp;#039; [&amp;#039; .. tocNumber .. &amp;#039;]&amp;#039; or &amp;#039;&amp;#039;));&lt;br /&gt;
		tocNumber = tocNumber + 1;&lt;br /&gt;
	end&lt;br /&gt;
	if firstonly then return sections[1] elseif length then return #sections else&lt;br /&gt;
	return table.concat(sections, delimiter);&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Buto</name></author>
	</entry>
</feed>