<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://ru.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%A4%D0%98%D0%9E%2F%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0</id>
	<title>Модуль:ФИО/песочница - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://ru.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%A4%D0%98%D0%9E%2F%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0"/>
	<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A4%D0%98%D0%9E/%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&amp;action=history"/>
	<updated>2026-04-07T23:37:07Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A4%D0%98%D0%9E/%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=15805&amp;oldid=prev</id>
		<title>Импортёр: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A4%D0%98%D0%9E/%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=15805&amp;oldid=prev"/>
		<updated>2024-05-02T08:21:14Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:21, 2 мая 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Импортёр</name></author>
	</entry>
	<entry>
		<id>http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A4%D0%98%D0%9E/%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=15804&amp;oldid=prev</id>
		<title>ru&gt;Andras: Новая страница: «local get_args = require(&#039;Модуль:Arguments&#039;).getArgs local mHatnote = require(&#039;Модуль:Hatnote/песочница&#039;) local current_title = mw.title.getCurrentTitle().text  local p = {} local hatnote_args = { 	hide_disambig = true, 	dot = true, 	empty_list_message = &#039;Не найдено ни одной страницы разрешения неоднозначности&#039;, 	preview_error = true } local templates = { 	&#039;[сС]писок однофам...»</title>
		<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A4%D0%98%D0%9E/%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=15804&amp;oldid=prev"/>
		<updated>2023-07-03T17:27:04Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «local get_args = require(&amp;#039;Модуль:Arguments&amp;#039;).getArgs local mHatnote = require(&amp;#039;Модуль:Hatnote/песочница&amp;#039;) local current_title = mw.title.getCurrentTitle().text  local p = {} local hatnote_args = { 	hide_disambig = true, 	dot = true, 	empty_list_message = &amp;#039;Не найдено ни одной страницы разрешения неоднозначности&amp;#039;, 	preview_error = true } local templates = { 	&amp;#039;[сС]писок однофам...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local get_args = require(&amp;#039;Модуль:Arguments&amp;#039;).getArgs&lt;br /&gt;
local mHatnote = require(&amp;#039;Модуль:Hatnote/песочница&amp;#039;)&lt;br /&gt;
local current_title = mw.title.getCurrentTitle().text&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local hatnote_args = {&lt;br /&gt;
	hide_disambig = true,&lt;br /&gt;
	dot = true,&lt;br /&gt;
	empty_list_message = &amp;#039;Не найдено ни одной страницы разрешения неоднозначности&amp;#039;,&lt;br /&gt;
	preview_error = true&lt;br /&gt;
}&lt;br /&gt;
local templates = {&lt;br /&gt;
	&amp;#039;[сС]писок однофамильцев&amp;#039;,&lt;br /&gt;
	&amp;#039;[сС]писок т[ёе]зок&amp;#039;,&lt;br /&gt;
	&amp;#039;[сС]писок полных т[ёе]зок&amp;#039;,&lt;br /&gt;
	&amp;#039;[сС]писок однофамильцев-т[её]зок&amp;#039;,&lt;br /&gt;
	&amp;#039;[сС]писок т[её]зок-однофамильцев&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
local disambig_box_names = {&lt;br /&gt;
	&amp;#039;[нН]еоднозначность&amp;#039;,&lt;br /&gt;
	&amp;#039;[мМ]ногозначность&amp;#039;,&lt;br /&gt;
	&amp;#039;[dD]isambig&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
local disambig_box_params = {&lt;br /&gt;
	&amp;#039;[фФ]амилии&amp;#039;,&lt;br /&gt;
	&amp;#039;[оО]днофамильцы&amp;#039;,&lt;br /&gt;
	&amp;#039;[тТ][ёе]зки&amp;#039;,&lt;br /&gt;
	&amp;#039;[оО]днофамильцы-т[ёе]зки&amp;#039;,&lt;br /&gt;
	&amp;#039;[пП]олные т[ёе]зки&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
local tracking_categories = {&lt;br /&gt;
	bad_link = &amp;#039;РуСказки:Страницы с шаблоном ФИО со ссылкой на общие неоднозначности&amp;#039;,&lt;br /&gt;
	no_links = &amp;#039;РуСказки:Страницы с шаблоном ФИО без ссылок&amp;#039;,&lt;br /&gt;
	disambig_not_found = &amp;#039;РуСказки:Страницы с модулем ФИО со ссылкой на другую статью&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function is_surname_disambig(title)&lt;br /&gt;
	local page = mw.title.new(title)&lt;br /&gt;
	&lt;br /&gt;
	if not page.exists or mw.title.equals(page, mw.title.getCurrentTitle()) then&lt;br /&gt;
		return false &lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local mRedirect = require(&amp;#039;Module:Redirect&amp;#039;)&lt;br /&gt;
	if mRedirect.luaIsRedirect(title) then&lt;br /&gt;
		title = mRedirect.getTarget(page)&lt;br /&gt;
		page = mw.title.new(title)&lt;br /&gt;
		if not page.exists or mw.title.equals(page, mw.title.getCurrentTitle()) then&lt;br /&gt;
			return false &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local page_content = page:getContent():gsub(&amp;#039;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	for i, template in ipairs(templates) do&lt;br /&gt;
		if mw.ustring.match(page_content, &amp;#039;{{&amp;#039; .. template) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for i, name in ipairs(disambig_box_names) do&lt;br /&gt;
		for j, param in ipairs(disambig_box_params) do&lt;br /&gt;
			if mw.ustring.match(page_content, string.format(&amp;#039;{{%s[^}]*%s&amp;#039;, name, param)) then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
    &lt;br /&gt;
function get_items(_title)&lt;br /&gt;
	local title = mHatnote.remove_precision{_title}&lt;br /&gt;
	local surname = title:match(&amp;#039;^[^,]+&amp;#039;)&lt;br /&gt;
	local surname_with_name = title:match(&amp;#039;^[^,]+,%s[^%s]+&amp;#039;)&lt;br /&gt;
	local full_name = title:match(&amp;#039;^[^,]+,%s[^%s]+%s[^%s]+&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	return {surname, surname_with_name, full_name}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function find_disambig(title, categories, check_nil, nocat)&lt;br /&gt;
	local disambig_page&lt;br /&gt;
	local without = mHatnote.remove_precision{title}&lt;br /&gt;
	local with = without .. &amp;#039; (значения)&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	if is_surname_disambig(title) then&lt;br /&gt;
		disambig_page = title&lt;br /&gt;
	elseif without ~= title and is_surname_disambig(without) then&lt;br /&gt;
		disambig_page = without&lt;br /&gt;
	elseif with ~= title and is_surname_disambig(with) then&lt;br /&gt;
		disambig_page = with&lt;br /&gt;
		&lt;br /&gt;
	elseif title ~= with and mHatnote.is_disambig{title} then&lt;br /&gt;
		categories:add(&amp;#039;bad_link&amp;#039;, nocat)&lt;br /&gt;
		disambig_page = title&lt;br /&gt;
	elseif mw.title.new(with).exists then&lt;br /&gt;
		categories:add(&amp;#039;bad_link&amp;#039;, nocat)&lt;br /&gt;
		disambig_page = with&lt;br /&gt;
	elseif without ~= title and mHatnote.is_disambig{without} then&lt;br /&gt;
		categories:add(&amp;#039;bad_link&amp;#039;, nocat)&lt;br /&gt;
		disambig_page = without&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not disambig_page and check_nil then&lt;br /&gt;
		categories:add(&amp;#039;disambig_not_found&amp;#039;, nocat)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return disambig_page, without&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p[&amp;#039;ФИО&amp;#039;] = function (frame)&lt;br /&gt;
	local args = get_args(frame)&lt;br /&gt;
	local title = args.title or args[1] or current_title&lt;br /&gt;
	local categories = mHatnote.define_categories(tracking_categories)&lt;br /&gt;
	local nocat = args.nocat&lt;br /&gt;
	&lt;br /&gt;
	hatnote_args.prefix = &amp;#039;На РуСказках есть статьи о других людях с такой фамилией, см.&amp;#039;&lt;br /&gt;
	hatnote_args.list_sep = &amp;#039;; &amp;#039;&lt;br /&gt;
	hatnote_args.natural_join = false&lt;br /&gt;
	hatnote_args.nocat = nocat&lt;br /&gt;
&lt;br /&gt;
	local lNum = 0&lt;br /&gt;
	for i, v in ipairs(get_items(title)) do&lt;br /&gt;
		link, label = find_disambig(v, categories, false, nocat)&lt;br /&gt;
		if link and link ~= title and link ~= current_title then&lt;br /&gt;
			lNum = lNum + 1&lt;br /&gt;
			hatnote_args[lNum], hatnote_args[&amp;#039;l&amp;#039; .. lNum] = link, label&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return mHatnote.main(hatnote_args, tracking_categories) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function template_by_type(frame, disambig_type, num)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = get_args(frame)&lt;br /&gt;
		local categories = mHatnote.define_categories(tracking_categories)&lt;br /&gt;
		local nocat = args.nocat&lt;br /&gt;
		local prefixes = mw.loadData(&amp;#039;Модуль:Другие значения/префиксы&amp;#039;)&lt;br /&gt;
		local prefix = prefixes[disambig_type]&lt;br /&gt;
		if type(prefix) == &amp;#039;table&amp;#039; then&lt;br /&gt;
			if args[2] then&lt;br /&gt;
				hatnote_args.prefix = prefix.plural&lt;br /&gt;
			else&lt;br /&gt;
				hatnote_args.prefix = prefix.singular&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			hatnote_args.prefix = prefix&lt;br /&gt;
		end&lt;br /&gt;
		hatnote_args.nocat = nocat&lt;br /&gt;
		&lt;br /&gt;
		if not args[1] then&lt;br /&gt;
			local link = get_items(current_title)[num]&lt;br /&gt;
			local found_disambig, auto_label = find_disambig(link, categories, true, nocat)&lt;br /&gt;
			&lt;br /&gt;
			hatnote_args[1] = found_disambig or link&lt;br /&gt;
			hatnote_args[&amp;#039;l1&amp;#039;] = args[&amp;#039;l1&amp;#039;] or auto_label&lt;br /&gt;
		else&lt;br /&gt;
			local i = 1&lt;br /&gt;
			while args[i] do&lt;br /&gt;
				local link, label = mHatnote.parse_link{args[i]}&lt;br /&gt;
				if link then&lt;br /&gt;
					local found_disambig, auto_label = find_disambig(link, categories, true, nocat)&lt;br /&gt;
					&lt;br /&gt;
					hatnote_args[i] = found_disambig or link&lt;br /&gt;
					hatnote_args[&amp;#039;l&amp;#039; .. i] = label or args[&amp;#039;l&amp;#039; .. i] or auto_label&lt;br /&gt;
				else&lt;br /&gt;
					hatnote_args[i] = args[i]&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				i = i + 1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return mHatnote.main(hatnote_args, tracking_categories) .. categories&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p[&amp;#039;однофамильцы&amp;#039;] = template_by_type(frame, &amp;#039;фамилия&amp;#039;, 1)&lt;br /&gt;
p[&amp;#039;однофамильцы-тёзки&amp;#039;] = template_by_type(frame, &amp;#039;имя и фамилия&amp;#039;, 2)&lt;br /&gt;
p[&amp;#039;полные тёзки&amp;#039;] = template_by_type(frame, &amp;#039;фио&amp;#039;, 3)&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ru&gt;Andras</name></author>
	</entry>
</feed>