<?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:Hatnote?feed=atom</id>
	<title>Модуль:Hatnote - История изменений</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:Hatnote?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:Hatnote"/>
	<updated>2026-04-11T16:42:23Z</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:Hatnote&amp;diff=112889&amp;oldid=prev</id>
		<title>Pok в 08:44, 8 ноября 2025</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:Hatnote&amp;diff=112889&amp;oldid=prev"/>
		<updated>2025-11-08T08:44:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:44, 8 ноября 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot;&gt;Строка 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local current_title = mw.title.getCurrentTitle()&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local current_title = mw.title.getCurrentTitle()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local tracking_categories = {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local tracking_categories = {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	no_prefix = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Википедия&lt;/del&gt;:Страницы с модулем Hatnote без указания префикса&#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	no_prefix = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SS14W&lt;/ins&gt;:Страницы с модулем Hatnote без указания префикса&#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	no_links = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Википедия&lt;/del&gt;:Страницы с модулем Hatnote без ссылок&#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	no_links = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SS14W&lt;/ins&gt;:Страницы с модулем Hatnote без ссылок&#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	red_link = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Википедия&lt;/del&gt;:Страницы с модулем Hatnote с красной ссылкой&#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	red_link = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SS14W&lt;/ins&gt;:Страницы с модулем Hatnote с красной ссылкой&#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	bad_format = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Википедия&lt;/del&gt;:Страницы с модулем Hatnote с некорректно заполненными параметрами&#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	bad_format = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SS14W&lt;/ins&gt;:Страницы с модулем Hatnote с некорректно заполненными параметрами&#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	unparsable_link = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Википедия&lt;/del&gt;:Страницы с модулем Hatnote с нечитаемой ссылкой&#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	unparsable_link = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SS14W&lt;/ins&gt;:Страницы с модулем Hatnote с нечитаемой ссылкой&#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	formatted = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Википедия&lt;/del&gt;:Страницы с модулем Hatnote с готовым форматированием&#039;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	formatted = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SS14W&lt;/ins&gt;:Страницы с модулем Hatnote с готовым форматированием&#039;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pok</name></author>
	</entry>
	<entry>
		<id>https://station14.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Hatnote&amp;diff=77030&amp;oldid=prev</id>
		<title>Pok: Новая страница: «-- source: https://ru.wikipedia.org/wiki/Модуль:Hatnote -- license: CC BY-SA 4.0   local get_args = require(&#039;Module:Arguments&#039;).getArgs local mError local yesno = function (v) return require(&#039;Module:Yesno&#039;)(v, true) end  local p, tr = {}, {} local current_title = mw.title.getCurrentTitle() local tracking_categories = { 	no_prefix = &#039;Википедия:Страницы с модулем Hatnote без указания префикса&#039;, 	no_links = &#039;В...»</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:Hatnote&amp;diff=77030&amp;oldid=prev"/>
		<updated>2025-04-05T13:39:27Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «-- source: https://ru.wikipedia.org/wiki/Модуль:Hatnote -- license: CC BY-SA 4.0   local get_args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs local mError local yesno = function (v) return require(&amp;#039;Module:Yesno&amp;#039;)(v, true) end  local p, tr = {}, {} local current_title = mw.title.getCurrentTitle() local tracking_categories = { 	no_prefix = &amp;#039;Википедия:Страницы с модулем Hatnote без указания префикса&amp;#039;, 	no_links = &amp;#039;В...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- source: https://ru.wikipedia.org/wiki/Модуль:Hatnote&lt;br /&gt;
-- license: CC BY-SA 4.0 &lt;br /&gt;
&lt;br /&gt;
local get_args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local mError&lt;br /&gt;
local yesno = function (v) return require(&amp;#039;Module:Yesno&amp;#039;)(v, true) end&lt;br /&gt;
&lt;br /&gt;
local p, tr = {}, {}&lt;br /&gt;
local current_title = mw.title.getCurrentTitle()&lt;br /&gt;
local tracking_categories = {&lt;br /&gt;
	no_prefix = &amp;#039;Википедия:Страницы с модулем Hatnote без указания префикса&amp;#039;,&lt;br /&gt;
	no_links = &amp;#039;Википедия:Страницы с модулем Hatnote без ссылок&amp;#039;,&lt;br /&gt;
	red_link = &amp;#039;Википедия:Страницы с модулем Hatnote с красной ссылкой&amp;#039;,&lt;br /&gt;
	bad_format = &amp;#039;Википедия:Страницы с модулем Hatnote с некорректно заполненными параметрами&amp;#039;,&lt;br /&gt;
	unparsable_link = &amp;#039;Википедия:Страницы с модулем Hatnote с нечитаемой ссылкой&amp;#039;,&lt;br /&gt;
	formatted = &amp;#039;Википедия:Страницы с модулем Hatnote с готовым форматированием&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Общая категория для страниц значений: [[Категория:Страницы значений по алфавиту]]&lt;br /&gt;
local disambig_cat = &amp;#039;Страницы значений по алфавиту&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local function index(t1, t2)&lt;br /&gt;
	return setmetatable(t1, {__index = t2})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function concat(e1, e2) &lt;br /&gt;
	return tostring(e1) .. tostring(e2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tr.define_categories(tracked_cases)&lt;br /&gt;
	local categories = setmetatable({}, {&lt;br /&gt;
		__tostring = function (self) return table.concat(self) end, &lt;br /&gt;
		__concat = concat&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	function categories:add(element, nocat)&lt;br /&gt;
		if not nocat then&lt;br /&gt;
			local cat_name&lt;br /&gt;
			if tracked_cases and tracked_cases[element] then&lt;br /&gt;
				cat_name = tracked_cases[element]&lt;br /&gt;
			else&lt;br /&gt;
				cat_name = element&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(self, string.format(&amp;#039;[[Категория:%s]]&amp;#039;, cat_name))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tr.error(msg, categories, preview_only)&lt;br /&gt;
	local current_frame = mw.getCurrentFrame()&lt;br /&gt;
	local parent_frame = current_frame:getParent()&lt;br /&gt;
	local res_frame_title = parent_frame and parent_frame:getTitle() ~= current_title.prefixedText and&lt;br /&gt;
		parent_frame:getTitle() or&lt;br /&gt;
		current_frame:getTitle()&lt;br /&gt;
	if not preview_only or current_frame:preprocess(&amp;#039;{{REVISIONID}}&amp;#039;) == &amp;#039;&amp;#039; then&lt;br /&gt;
		mError = require(&amp;#039;Module:Error&amp;#039;)&lt;br /&gt;
		return mError.error{&lt;br /&gt;
			tag = &amp;#039;div&amp;#039;,&lt;br /&gt;
			string.format(&amp;#039;Ошибка в [[%s]]: %s.&amp;#039; &lt;br /&gt;
				.. (preview_only and &amp;#039;&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;Это сообщение показывается только во время предпросмотра.&amp;lt;/small&amp;gt;&amp;#039; or &amp;#039;&amp;#039;), res_frame_title, msg)&lt;br /&gt;
		} .. categories&lt;br /&gt;
	else &lt;br /&gt;
		return categories&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.parse_link(frame)&lt;br /&gt;
	local args = get_args(frame)&lt;br /&gt;
	local link = args[1]:gsub(&amp;#039;\n&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	local label&lt;br /&gt;
	&lt;br /&gt;
	link = mw.text.trim(link:match(&amp;#039;^%[%[([^%]]+)%]%]$&amp;#039;) or link)&lt;br /&gt;
	if link:sub(1, 1) == &amp;#039;/&amp;#039; then&lt;br /&gt;
		label = link&lt;br /&gt;
		link = current_title.prefixedText .. link&lt;br /&gt;
	end&lt;br /&gt;
	link = link:match(&amp;#039;:?(.+)&amp;#039;)&lt;br /&gt;
	if link:match(&amp;#039;|&amp;#039;) then&lt;br /&gt;
		link, label = link:match(&amp;#039;^([^%|]+)%|(.+)$&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not mw.title.new(link) then&lt;br /&gt;
		return nil, nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return link, label&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.format_link(frame)&lt;br /&gt;
	-- {{ссылка на раздел}}&lt;br /&gt;
	local args = get_args(frame)&lt;br /&gt;
	local link, section, label = args[1], args[2], args[3]&lt;br /&gt;
	&lt;br /&gt;
	if not link then&lt;br /&gt;
		link = current_title.prefixedText&lt;br /&gt;
		if section then&lt;br /&gt;
			link = &amp;#039;#&amp;#039; .. section&lt;br /&gt;
			label = label or &amp;#039;§&amp;amp;nbsp;&amp;#039; .. section&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local parsed_link, parsed_label = p.parse_link{link}&lt;br /&gt;
		if parsed_link then&lt;br /&gt;
			link = parsed_link&lt;br /&gt;
		else&lt;br /&gt;
			return link&lt;br /&gt;
		end&lt;br /&gt;
		if section and not link:match(&amp;#039;#&amp;#039;) then&lt;br /&gt;
			link = link .. &amp;#039;#&amp;#039; .. section&lt;br /&gt;
			if parsed_label then&lt;br /&gt;
				parsed_label = parsed_label .. &amp;#039;#&amp;#039; .. section&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		label = (label or parsed_label or link):gsub(&amp;#039;^([^#]-)#(.+)$&amp;#039;, &amp;#039;%1 §&amp;amp;nbsp;%2&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if label and label ~= link then&lt;br /&gt;
		return string.format(&amp;#039;[[:%s|%s]]&amp;#039;, link, label)&lt;br /&gt;
	else&lt;br /&gt;
		return string.format(&amp;#039;[[:%s]]&amp;#039;, link)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.remove_precision(frame)&lt;br /&gt;
	-- {{без уточнения}}&lt;br /&gt;
	local args = get_args(frame)&lt;br /&gt;
	local title = args[1]&lt;br /&gt;
	&lt;br /&gt;
	return title:match(&amp;#039;^(.+)%s+%b()$&amp;#039;) or title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.is_disambig(frame)&lt;br /&gt;
	local args = get_args(frame)&lt;br /&gt;
	local title = args[1]&lt;br /&gt;
	local page = mw.title.new(title)&lt;br /&gt;
	&lt;br /&gt;
	if not page or not page.exists or mw.title.equals(page, current_title) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for _, c in ipairs( page.categories ) do&lt;br /&gt;
		if c == disambig_cat then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.list(frame)&lt;br /&gt;
	local args = get_args(frame, {trim = false})&lt;br /&gt;
	local list_sep = args.list_sep or args[&amp;#039;разделитель списка&amp;#039;] or &amp;#039;, &amp;#039;&lt;br /&gt;
	local last_list_sep = yesno(args.natural_join) ~= false and &amp;#039; и &amp;#039; or list_sep&lt;br /&gt;
	local links_ns = args.links_ns or args[&amp;#039;ПИ ссылок&amp;#039;]&lt;br /&gt;
	local bold_links = yesno(args.bold_links or args[&amp;#039;ссылки болдом&amp;#039;])&lt;br /&gt;
&lt;br /&gt;
	local res_list = {}&lt;br /&gt;
	local tracked = {&lt;br /&gt;
		red_link = false,&lt;br /&gt;
		bad_format = false,&lt;br /&gt;
		formatted = false,&lt;br /&gt;
		unparsable_link = false&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while args[i] do&lt;br /&gt;
		local link = args[i]&lt;br /&gt;
		local label = args[&amp;#039;l&amp;#039; .. i]&lt;br /&gt;
		&lt;br /&gt;
		local element = &amp;#039;&amp;#039;&lt;br /&gt;
		if link:match(&amp;#039;&amp;lt;span&amp;#039;) then -- TODO: переписать&lt;br /&gt;
			tracked.formatted = true&lt;br /&gt;
			element = link -- for {{не переведено}}&lt;br /&gt;
		else&lt;br /&gt;
			local bad_format = (link:match(&amp;#039;|&amp;#039;) or link:match(&amp;#039;[%[%]]&amp;#039;)) ~= nil&lt;br /&gt;
			local parsed_link, parsed_label = p.parse_link{link}&lt;br /&gt;
			&lt;br /&gt;
			if parsed_link then&lt;br /&gt;
				tracked.bad_format = tracked.bad_format or bad_format&lt;br /&gt;
				if links_ns then&lt;br /&gt;
					parsed_label = parsed_label or parsed_link&lt;br /&gt;
					parsed_link = mw.site.namespaces[links_ns].name .. &amp;#039;:&amp;#039; .. parsed_link&lt;br /&gt;
				end&lt;br /&gt;
			&lt;br /&gt;
				local title = mw.title.new(parsed_link)&lt;br /&gt;
				tracked.red_link = tracked.red_link or not (title.isExternal or title.exists)&lt;br /&gt;
				element = p.format_link{parsed_link, nil, label or parsed_label}&lt;br /&gt;
			else&lt;br /&gt;
				tracked.unparsable_link = true&lt;br /&gt;
				element = link&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if bold_links then&lt;br /&gt;
			element = string.format(&amp;#039;&amp;lt;b&amp;gt;%s&amp;lt;/b&amp;gt;&amp;#039;, element)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		table.insert(res_list, element)&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return setmetatable(res_list, {&lt;br /&gt;
		__index = tracked,&lt;br /&gt;
		__tostring = function (self) return mw.text.listToText(self, list_sep, last_list_sep) end,&lt;br /&gt;
		__concat = concat,&lt;br /&gt;
		__pairs = function (self) return pairs(tracked) end&lt;br /&gt;
	})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.hatnote(frame)&lt;br /&gt;
	local args = get_args(frame)&lt;br /&gt;
	local text = args[1]&lt;br /&gt;
	local id = args.id&lt;br /&gt;
	local extraclasses = args.extraclasses&lt;br /&gt;
	local hide_disambig = yesno(args.hide_disambig)&lt;br /&gt;
	&lt;br /&gt;
	local res = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:attr(&amp;#039;role&amp;#039;, &amp;#039;note&amp;#039;)&lt;br /&gt;
		:attr(&amp;#039;id&amp;#039;, id)&lt;br /&gt;
		:addClass(&amp;#039;hatnote&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;navigation-not-searchable&amp;#039;)&lt;br /&gt;
		:addClass(extraclasses)&lt;br /&gt;
		:wikitext(text)&lt;br /&gt;
	&lt;br /&gt;
	if hide_disambig then&lt;br /&gt;
		res:addClass(&amp;#039;dabhide&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame, _tracking_categories)&lt;br /&gt;
	local args = get_args(frame, {trim = false})&lt;br /&gt;
	&lt;br /&gt;
	local prefix = args.prefix or args[&amp;#039;префикс&amp;#039;]&lt;br /&gt;
	local prefix_plural = args.prefix_plural or args[&amp;#039;префикс мн. ч.&amp;#039;]&lt;br /&gt;
	local sep = args.sep or args[&amp;#039;разделитель&amp;#039;] or &amp;#039; &amp;#039;&lt;br /&gt;
	local dot = yesno(args.dot or args[&amp;#039;точка&amp;#039;]) and &amp;#039;.&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
	local nocat = yesno(args.nocat)&lt;br /&gt;
	local preview_error = yesno(args.preview_error)&lt;br /&gt;
	local empty_list_message = args.empty_list_message or &amp;#039;Не указано ни одной страницы&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	categories = tr.define_categories(index(_tracking_categories or {}, tracking_categories))&lt;br /&gt;
&lt;br /&gt;
	if not prefix then&lt;br /&gt;
		categories:add(&amp;#039;no_prefix&amp;#039;, nocat)&lt;br /&gt;
		return tr.error(&amp;#039;Не указан префикс&amp;#039;, categories)&lt;br /&gt;
	end&lt;br /&gt;
	if not args[1] then&lt;br /&gt;
		categories:add(&amp;#039;no_links&amp;#039;, nocat)&lt;br /&gt;
		return tr.error(empty_list_message, categories, preview_error)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args[2] and prefix_plural then&lt;br /&gt;
		prefix = prefix_plural&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local list = p.list(args)&lt;br /&gt;
	&lt;br /&gt;
	for k, v in pairs(list) do&lt;br /&gt;
		if type(v) == &amp;#039;boolean&amp;#039; and v then&lt;br /&gt;
			categories:add(k, nocat)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return p.hatnote(index({prefix .. sep .. list .. dot}, args)) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return index(p, tr)&lt;/div&gt;</summary>
		<author><name>Pok</name></author>
	</entry>
</feed>