<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.dzmuh.com/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3APersonMetaCat</id>
	<title>Модуль:PersonMetaCat - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dzmuh.com/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3APersonMetaCat"/>
	<link rel="alternate" type="text/html" href="https://wiki.dzmuh.com/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:PersonMetaCat&amp;action=history"/>
	<updated>2026-05-06T02:38:09Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.dzmuh.com/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:PersonMetaCat&amp;diff=11517&amp;oldid=prev</id>
		<title>Dzmuh: Новая страница: «local p = {} local cc = nil --не вызывать раньше времени local roman = nil --не вызывать раньше времени local tt = nil --не вызывать раньше времени  local only_p = 'Единственный параметр' local mdash = ' — ' local first_p = 'Первый параметр' local second_p = 'второй'  local NS_TEMPLATE = 10 local NS_CATEGORY = 14 local COUNTRY = 'страна' local...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.dzmuh.com/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:PersonMetaCat&amp;diff=11517&amp;oldid=prev"/>
		<updated>2023-04-01T08:52:45Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «local p = {} local cc = nil --не вызывать раньше времени local roman = nil --не вызывать раньше времени local tt = nil --не вызывать раньше времени  local only_p = &amp;#039;Единственный параметр&amp;#039; local mdash = &amp;#039; — &amp;#039; local first_p = &amp;#039;Первый параметр&amp;#039; local second_p = &amp;#039;второй&amp;#039;  local NS_TEMPLATE = 10 local NS_CATEGORY = 14 local COUNTRY = &amp;#039;страна&amp;#039; local...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local cc = nil --не вызывать раньше времени&lt;br /&gt;
local roman = nil --не вызывать раньше времени&lt;br /&gt;
local tt = nil --не вызывать раньше времени&lt;br /&gt;
&lt;br /&gt;
local only_p = 'Единственный параметр'&lt;br /&gt;
local mdash = ' — '&lt;br /&gt;
local first_p = 'Первый параметр'&lt;br /&gt;
local second_p = 'второй'&lt;br /&gt;
&lt;br /&gt;
local NS_TEMPLATE = 10&lt;br /&gt;
local NS_CATEGORY = 14&lt;br /&gt;
local COUNTRY = 'страна'&lt;br /&gt;
local CENTURY = 'век'&lt;br /&gt;
&lt;br /&gt;
local params = {&lt;br /&gt;
	[COUNTRY] = 'название страны в именительном падеже',&lt;br /&gt;
	[CENTURY] = 'номер века арабскими цифрами'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local COUNTRY_NOM_PLACEHOLDER = '&amp;lt;страна&amp;gt;'&lt;br /&gt;
local CENTURY_NOM_PLACEHOLDER = '&amp;lt;век&amp;gt;'&lt;br /&gt;
local COUNTRY_GEN_PLACEHOLDER = '&amp;lt;страны&amp;gt;'&lt;br /&gt;
local CENTURY_GEN_PLACEHOLDER = '&amp;lt;века&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
local function error_string(s)&lt;br /&gt;
	return '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;' .. s .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function param_name(p)&lt;br /&gt;
	return params[p] or error_string('Неизвестный параметр' .. mdash .. p)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function expand(frame, tname, targs)&lt;br /&gt;
	return frame:expandTemplate({title = tname, args = targs})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function cat_link(cat) &lt;br /&gt;
	return '[[:К:' .. cat .. '|' .. cat .. ']]'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function link(x)&lt;br /&gt;
	return '[[' .. x .. ']]'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function _doc(first, second, cat, level)&lt;br /&gt;
	local ret = 'Шаблон для создания подкатегорий '&lt;br /&gt;
	if level and level == 2 then&lt;br /&gt;
		ret = ret .. 'второго уровня '&lt;br /&gt;
	end&lt;br /&gt;
	ret = ret .. 'категории '.. cat_link(cat) .. '‎. '&lt;br /&gt;
	if first == nil then&lt;br /&gt;
		ret = ret .. error_string('Необходимо перечислить параметры вызова')&lt;br /&gt;
	elseif second == nil then&lt;br /&gt;
		ret = ret .. only_p .. mdash .. param_name(first)&lt;br /&gt;
	else -- first ~= nil, second ~= nil&lt;br /&gt;
		ret = ret .. first_p .. mdash .. param_name(first) .. ', ' .. second_p .. mdash .. param_name(second)&lt;br /&gt;
	end&lt;br /&gt;
	return ret .. '.'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.doc(frame)&lt;br /&gt;
	getArgs = getArgs or require('Module:Arguments').getArgs&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local level = args.level&lt;br /&gt;
	local cat = args.cat or '{{{cat}}}' --чтобы видеть сразу&lt;br /&gt;
	local first = args[1]&lt;br /&gt;
	local second = args[2]&lt;br /&gt;
	return _doc(first, second, cat, level)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_roman_century(century)&lt;br /&gt;
	roman = roman or require('Module:Roman').convert&lt;br /&gt;
	return century and (roman(century) .. ' век') or error_string('Укажите век')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function replace_placeholders(s, country, country_gen, century)&lt;br /&gt;
	local century_roman = nil&lt;br /&gt;
	local ret = s&lt;br /&gt;
	if ret:find(COUNTRY_NOM_PLACEHOLDER) then&lt;br /&gt;
		ret = mw.ustring.gsub(ret, COUNTRY_NOM_PLACEHOLDER, country)&lt;br /&gt;
	end&lt;br /&gt;
	if ret:find(COUNTRY_GEN_PLACEHOLDER) then&lt;br /&gt;
		ret = mw.ustring.gsub(ret, COUNTRY_GEN_PLACEHOLDER, country_gen)&lt;br /&gt;
	end&lt;br /&gt;
	if ret:find(CENTURY_NOM_PLACEHOLDER) then&lt;br /&gt;
		century_roman = get_roman_century(century)&lt;br /&gt;
		ret = mw.ustring.gsub(ret, CENTURY_NOM_PLACEHOLDER, century_roman)&lt;br /&gt;
	end&lt;br /&gt;
	if ret:find(CENTURY_GEN_PLACEHOLDER) then&lt;br /&gt;
		local century_roman_gen = (century_roman or get_roman_century(century)) .. 'а'&lt;br /&gt;
		ret = mw.ustring.gsub(ret, CENTURY_GEN_PLACEHOLDER, century_roman_gen)&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.process_cat(cat_desc, country, country_gen, century)&lt;br /&gt;
	local split = mw.text.split(cat_desc, '!', true)&lt;br /&gt;
	if split == nil or #split == 0 then&lt;br /&gt;
		return ''&lt;br /&gt;
	elseif #split == 1 then&lt;br /&gt;
		return 'К:' .. replace_placeholders(split[1], country, country_gen, century)&lt;br /&gt;
	elseif #split &amp;gt;= 2 then&lt;br /&gt;
		return 'К:' .. replace_placeholders(split[1], country, country_gen, century) .. '|' .. replace_placeholders(split[2], country, country_gen, century)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_country_gen(frame, country)&lt;br /&gt;
	cc = cc or require('Module:CountryCases')&lt;br /&gt;
	return country and cc._genitive(frame, country) or error_string('Укажите страну')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.category_desc(frame, args, country, century)&lt;br /&gt;
	local country_gen = get_country_gen(frame, country)&lt;br /&gt;
	local ret = {expand(frame, 'метакатегория')}&lt;br /&gt;
	tt = tt or require('Module:TableTools')&lt;br /&gt;
	local n = tt.length(args)&lt;br /&gt;
	for i = 1, n do&lt;br /&gt;
		local s = p.process_cat(args[i], country, country_gen, century)&lt;br /&gt;
		if mw.ustring.len(s) &amp;gt; 0 then&lt;br /&gt;
			ret[#ret+1] = link(s)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret, '\n')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.single_category(frame)&lt;br /&gt;
	getArgs = getArgs or require('Module:Arguments').getArgs&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local cat = args[1]&lt;br /&gt;
	local country = args[COUNTRY]&lt;br /&gt;
	local century = args[CENTURY]&lt;br /&gt;
	return p.process_cat(cat, country, get_country_gen(frame, country), century)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.proffesionMetacat(frame)&lt;br /&gt;
	getArgs = getArgs or require('Module:Arguments').getArgs&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
	if ns == NS_TEMPLATE then&lt;br /&gt;
		local ret = {}&lt;br /&gt;
		table.insert(ret, expand(frame, 'doc/begin', {'Шаблон:Метакатегория профессии'}))&lt;br /&gt;
		table.insert(ret, expand(frame, 'onLua', {'PersonMetaCat', 'proffesionMetacat'}))&lt;br /&gt;
		table.insert(ret, _doc(COUNTRY, nil, mw.text.split(args[1], '!')[1]))&lt;br /&gt;
		table.insert(ret, expand(frame, 'doc/end'))&lt;br /&gt;
		table.insert(ret, '[[К:Шаблоны:Для метакатегорий персоналий]]')&lt;br /&gt;
		return table.concat(ret, '\n')&lt;br /&gt;
	elseif ns == NS_CATEGORY then&lt;br /&gt;
		local country = args[COUNTRY]&lt;br /&gt;
		return p.category_desc(frame, args, country, nil)&lt;br /&gt;
	end&lt;br /&gt;
	return error_string('Шаблон предназначен для категорий')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dzmuh</name></author>
	</entry>
</feed>