<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://jantanoo.info/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AInfocards</id>
	<title>Модуль:Infocards - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://jantanoo.info/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AInfocards"/>
	<link rel="alternate" type="text/html" href="https://jantanoo.info/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;action=history"/>
	<updated>2026-08-13T08:07:02Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://jantanoo.info/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=526&amp;oldid=prev</id>
		<title>Атомный трамвай: 2 версии импортировано: попробуем</title>
		<link rel="alternate" type="text/html" href="https://jantanoo.info/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=526&amp;oldid=prev"/>
		<updated>2023-02-10T18:03:32Z</updated>

		<summary type="html">&lt;p&gt;2 версии импортировано: попробуем&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;Версия от 18:03, 10 февраля 2023&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>https://jantanoo.info/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=525&amp;oldid=prev</id>
		<title>Атомный трамвай: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://jantanoo.info/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=525&amp;oldid=prev"/>
		<updated>2016-01-05T00:54:44Z</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;Версия от 00:54, 5 января 2016&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>https://jantanoo.info/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=524&amp;oldid=prev</id>
		<title>Атомный трамвай: Создание</title>
		<link rel="alternate" type="text/html" href="https://jantanoo.info/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=524&amp;oldid=prev"/>
		<updated>2014-11-20T10:02:02Z</updated>

		<summary type="html">&lt;p&gt;Создание&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local infocards = {};&lt;br /&gt;
local calculateAge = true;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that populates the argument list given that user may need to use a mix of&lt;br /&gt;
named and unnamed parameters.  This is relevant because named parameters are not&lt;br /&gt;
identical to unnamed parameters due to string trimming, and when dealing with strings&lt;br /&gt;
we sometimes want to either preserve or remove that whitespace depending on the application.&lt;br /&gt;
]]&lt;br /&gt;
function infocards._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;
&lt;br /&gt;
function infocards.isBlank( someString )&lt;br /&gt;
    return someString == nil or mw.ustring.match(someString, &amp;#039;^%s*$&amp;#039;) ~= nil;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.isDate ( frame )&lt;br /&gt;
    local new_args = infocards._getParameters( frame.args, {&amp;#039;s&amp;#039;, &amp;#039;t&amp;#039;, &amp;#039;f&amp;#039;} );&lt;br /&gt;
    local s = new_args[&amp;#039;s&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
    local t = new_args[&amp;#039;t&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
    local f = new_args[&amp;#039;f&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    local result = infocards.isDateImpl ( s )&lt;br /&gt;
    if (result) then&lt;br /&gt;
        return t&lt;br /&gt;
    else&lt;br /&gt;
        return f&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.isDateImpl ( s )&lt;br /&gt;
    local converted = infocards.convertToDate ( s );&lt;br /&gt;
    return converted ~= nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.dateOfBirth( frame )&lt;br /&gt;
    local new_args = infocards._getParameters( frame.args, {&amp;#039;dateOfBirth&amp;#039;, &amp;#039;dateOfDeath&amp;#039;, &amp;#039;nocat&amp;#039;} );&lt;br /&gt;
    local dateOfBirth = new_args[&amp;#039;dateOfBirth&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
    local dateOfDeath = new_args[&amp;#039;dateOfDeath&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
    local nocat = new_args[&amp;#039;nocat&amp;#039;] or mw.title.getCurrentTitle().nsText;&lt;br /&gt;
&lt;br /&gt;
    return infocards.dateOfBirthImpl( dateOfBirth, dateOfDeath, nocat );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.dateOfBirthImpl( dateOfBirth, dateOfDeath, nocat )&lt;br /&gt;
&lt;br /&gt;
    local appendToCategory = infocards.isBlank( nocat );&lt;br /&gt;
&lt;br /&gt;
    if ( infocards.isBlank( dateOfBirth ) ) then&lt;br /&gt;
        if ( appendToCategory ) then&lt;br /&gt;
            return &amp;#039;[[Категория:Википедия:Персоны без указанной даты рождения]]&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;#039;&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if ( mw.ustring.match( dateOfBirth, &amp;#039;^%s*неизвестн.%s*$&amp;#039; ) ~= nil&lt;br /&gt;
            or mw.ustring.match( dateOfBirth, &amp;#039;^%s*%?%s*$&amp;#039; ) ~= nil ) then&lt;br /&gt;
        if ( appendToCategory ) then&lt;br /&gt;
            return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;[[Категория:Персоналии, чья дата рождения не установлена]]&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local appendAge = calculateAge and infocards.isBlank( dateOfDeath );&lt;br /&gt;
&lt;br /&gt;
    local parsedDate = infocards.convertToDate ( dateOfBirth )&lt;br /&gt;
    if ( parsedDate == nil ) then&lt;br /&gt;
        if ( appendToCategory ) then&lt;br /&gt;
            return dateOfBirth .. &amp;#039;[[Категория:Википедия:Статьи с ручной викификацией дат в карточке]]&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            return dateOfBirth&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local result = infocards.formatDateImpl ( parsedDate, &amp;#039;bday&amp;#039;, appendToCategory and &amp;#039;Родившиеся&amp;#039; or nil )&lt;br /&gt;
&lt;br /&gt;
    if ( appendAge ) then&lt;br /&gt;
        local age = infocards.age ( parsedDate,  os.date(&amp;quot;*t&amp;quot;) )&lt;br /&gt;
        if ( age &amp;gt; 0 ) then&lt;br /&gt;
            result = result .. &amp;#039; &amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;(&amp;#039; .. age .. &amp;#039; &amp;#039; .. mw.language.new( &amp;#039;ru&amp;#039; ):plural( age, &amp;#039;год&amp;#039;, &amp;#039;года&amp;#039;, &amp;#039;лет&amp;#039;) .. &amp;#039;)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
        if ( age &amp;gt; 150 and appendToCategory ) then&lt;br /&gt;
            result = result .. &amp;#039;[[Категория:Википедия:Статьи о персоналиях с большим текущим возрастом]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.dateOfDeath( frame )&lt;br /&gt;
    local new_args = infocards._getParameters( frame.args, {&amp;#039;dateOfBirth&amp;#039;, &amp;#039;dateOfDeath&amp;#039;, &amp;#039;nocat&amp;#039;} );&lt;br /&gt;
    local dateOfBirth = new_args[&amp;#039;dateOfBirth&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
    local dateOfDeath = new_args[&amp;#039;dateOfDeath&amp;#039;] or &amp;#039;&amp;#039;;&lt;br /&gt;
    local nocat = new_args[&amp;#039;nocat&amp;#039;] or mw.title.getCurrentTitle().nsText;&lt;br /&gt;
&lt;br /&gt;
    return infocards.dateOfDeathImpl( dateOfBirth, dateOfDeath, nocat );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.dateOfDeathImpl( dateOfBirth, dateOfDeath, nocat )&lt;br /&gt;
    if ( infocards.isBlank( dateOfDeath ) ) then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local appendToCategory = infocards.isBlank( nocat );&lt;br /&gt;
&lt;br /&gt;
    if ( mw.ustring.match( dateOfDeath, &amp;#039;^%s*неизвестн.%s*$&amp;#039; ) ~= nil&lt;br /&gt;
            or mw.ustring.match( dateOfDeath, &amp;#039;^%s*%?%s*$&amp;#039; ) ~= nil ) then&lt;br /&gt;
        if ( appendToCategory ) then&lt;br /&gt;
            return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;[[Категория:Персоналии, чья дата смерти не установлена]]&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local parsedDateOfBirth = infocards.convertToDate ( dateOfBirth )&lt;br /&gt;
    local parsedDateOfDeath = infocards.convertToDate ( dateOfDeath )&lt;br /&gt;
&lt;br /&gt;
    if ( parsedDateOfDeath == nil ) then&lt;br /&gt;
        if ( appendToCategory ) then&lt;br /&gt;
            return dateOfDeath .. &amp;#039;[[Категория:Википедия:Статьи с ручной викификацией дат в карточке]]&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            return dateOfDeath&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local result = infocards.formatDateImpl ( parsedDateOfDeath, &amp;#039;dday&amp;#039;, appendToCategory and &amp;#039;Умершие&amp;#039; or nil )&lt;br /&gt;
&lt;br /&gt;
	if ( calculateAge ) then&lt;br /&gt;
		local age = infocards.age ( parsedDateOfBirth, parsedDateOfDeath )&lt;br /&gt;
		if ( age &amp;gt; 0 ) then&lt;br /&gt;
			result = result .. &amp;#039; &amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;(&amp;#039; .. age .. &amp;#039; &amp;#039; .. mw.language.new( &amp;#039;ru&amp;#039; ):plural( age, &amp;#039;год&amp;#039;, &amp;#039;года&amp;#039;, &amp;#039;лет&amp;#039;) .. &amp;#039;)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		if ( age &amp;gt; 150 and appendToCategory ) then&lt;br /&gt;
			result = result .. &amp;#039;[[Категория:Википедия:Статьи о персоналиях с большим возрастом во время смерти]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.age( parsedBirthDate, parsedFinishDate ) &lt;br /&gt;
    if ( parsedBirthDate == nil or parsedFinishDate == nil ) then&lt;br /&gt;
        return 0&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local bd = parsedBirthDate[&amp;quot;day&amp;quot;]&lt;br /&gt;
    local bm = parsedBirthDate[&amp;quot;month&amp;quot;]&lt;br /&gt;
    local by = parsedBirthDate[&amp;quot;year&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
    local dd = parsedFinishDate[&amp;quot;day&amp;quot;];&lt;br /&gt;
    local dm = parsedFinishDate[&amp;quot;month&amp;quot;];&lt;br /&gt;
    local dy = parsedFinishDate[&amp;quot;year&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
    if ( bd and bm and by and dd and dm and dy ) then&lt;br /&gt;
        if ( dm &amp;gt; bm or ( dm == bm and dd &amp;gt;= bd ) ) then&lt;br /&gt;
            return dy - by&lt;br /&gt;
        else&lt;br /&gt;
            return dy - by - 1&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        return 0&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local genitivusMonthes = {&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;
    &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;
function infocards.formatDateImpl( parsedDate, infocardClass, categoryNamePrefix )&lt;br /&gt;
    local nd = parsedDate[&amp;quot;day&amp;quot;];&lt;br /&gt;
    local nm = parsedDate[&amp;quot;month&amp;quot;];&lt;br /&gt;
    local ny = parsedDate[&amp;quot;year&amp;quot;];&lt;br /&gt;
    local od = parsedDate[&amp;quot;osday&amp;quot;];&lt;br /&gt;
    local om = parsedDate[&amp;quot;osmonth&amp;quot;];&lt;br /&gt;
    local oy = parsedDate[&amp;quot;osyear&amp;quot;];&lt;br /&gt;
    &lt;br /&gt;
    local template =&lt;br /&gt;
        (nd ~= nil and &amp;quot;1&amp;quot; or &amp;quot;&amp;quot;) .. (nm ~= nil and &amp;quot;2&amp;quot; or &amp;quot;&amp;quot;) .. (ny ~= nil and &amp;quot;3&amp;quot; or &amp;quot;&amp;quot;) ..&lt;br /&gt;
        (od ~= nil and &amp;quot;4&amp;quot; or &amp;quot;&amp;quot;) .. (om ~= nil and &amp;quot;5&amp;quot; or &amp;quot;&amp;quot;) .. (oy ~= nil and &amp;quot;6&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local datePart = &amp;#039;&amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
    if (template == &amp;quot;12&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. string.format( &amp;quot;[[%d %s]]&amp;quot;, nd, genitivusMonthes[nm] )&lt;br /&gt;
    elseif (template == &amp;quot;3&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. infocards.nominativeYear( ny )&lt;br /&gt;
    elseif (template == &amp;quot;123&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. string.format( &amp;quot;[[%d %s]] %s&amp;quot;,&lt;br /&gt;
                                        nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
    elseif (template == &amp;quot;124&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. string.format( &amp;quot;[[%d %s|%d (%d) %s]]&amp;quot;,&lt;br /&gt;
                                        nd, genitivusMonthes[nm], od, nd, genitivusMonthes[nm] )&lt;br /&gt;
    elseif (template == &amp;quot;1234&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. string.format( &amp;quot;[[%d %s|%d (%d) %s]] %s&amp;quot;,&lt;br /&gt;
                                        nd, genitivusMonthes[nm], od, nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
    elseif (template == &amp;quot;1245&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. string.format( &amp;quot;%d %s ([[%d %s]])&amp;quot;,&lt;br /&gt;
                                        od, genitivusMonthes[om], nd, genitivusMonthes[nm] )&lt;br /&gt;
    elseif (template == &amp;quot;12345&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. string.format( &amp;quot;%d %s ([[%d %s]]) %s&amp;quot;,&lt;br /&gt;
                                        od, genitivusMonthes[om], nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
    elseif (template == &amp;quot;123456&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. string.format( &amp;#039;%d %s %d&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;([[%d %s]] %s)&amp;#039;,&lt;br /&gt;
                                        od, genitivusMonthes[om], oy, nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
    else&lt;br /&gt;
        datePart = datePart .. &amp;#039;формат неверен&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    datePart = datePart .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    local infocardTemplate =&lt;br /&gt;
        (nd ~= nil and &amp;quot;1&amp;quot; or &amp;quot;&amp;quot;) .. (nm ~= nil and &amp;quot;2&amp;quot; or &amp;quot;&amp;quot;) .. (ny ~= nil and &amp;quot;3&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if (infocardTemplate == &amp;quot;123&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. &amp;#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;&amp;#039; .. infocardClass .. &amp;#039;&amp;quot;&amp;gt;{{padleft:&amp;#039; .. ny .. &amp;#039;|4|0}}-{{padleft:&amp;#039; .. nm .. &amp;#039;|2|0}}-{{padleft:&amp;#039; .. nd .. &amp;#039;|2|0}}&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
    elseif (infocardTemplate == &amp;quot;23&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. &amp;#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;&amp;#039; .. infocardClass .. &amp;#039;&amp;quot;&amp;gt;{{padleft:&amp;#039; .. ny .. &amp;#039;|4|0}}-{{padleft:&amp;#039; .. nm .. &amp;#039;|2|0}}&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
    elseif (infocardTemplate == &amp;quot;3&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. &amp;#039;&amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;&amp;#039; .. infocardClass .. &amp;#039;&amp;quot;&amp;gt;{{padleft:&amp;#039; .. ny .. &amp;#039;|4|0}}&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if ( categoryNamePrefix ~= nil ) then&lt;br /&gt;
        if ( nd ~= nil and nm ~= nil) then&lt;br /&gt;
            datePart = datePart .. &amp;#039;[[Категория:&amp;#039; .. categoryNamePrefix .. &amp;#039; &amp;#039; .. nd .. &amp;#039; &amp;#039; .. genitivusMonthes[nm] .. &amp;#039;]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
        if ( ny ~= nil) then&lt;br /&gt;
            datePart = datePart .. &amp;#039;[[Категория:&amp;#039; .. categoryNamePrefix .. &amp;#039; в &amp;#039; .. infocards.inYear( ny ) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return datePart&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.nominativeYear( year )&lt;br /&gt;
    if ( year &amp;gt;= 0 ) then&lt;br /&gt;
        return &amp;#039;[[&amp;#039; .. year .. &amp;#039; год|&amp;#039; .. year .. &amp;#039;]]&amp;#039;&lt;br /&gt;
    else&lt;br /&gt;
        return &amp;#039;[[&amp;#039; .. ( 0 - year ) .. &amp;#039; год до н. э.|&amp;#039; .. ( 0 - year ) .. &amp;#039; до н. э.]]&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.inYear( year )&lt;br /&gt;
    if ( year &amp;gt;= 0 ) then&lt;br /&gt;
        return &amp;#039;&amp;#039; .. year .. &amp;#039; году&amp;#039;&lt;br /&gt;
    else&lt;br /&gt;
        return &amp;#039;&amp;#039; .. ( 0 - year) .. &amp;#039; году до н. э.&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.convertToDate( possibleDateString )&lt;br /&gt;
&lt;br /&gt;
    possibleDateString = mw.ustring.gsub( possibleDateString, &amp;#039;−&amp;#039;, &amp;#039;-&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    local simpleDate = mw.ustring.match(possibleDateString, &amp;#039;^%s*([%-%d%.]+)%s*$&amp;#039;, 0)&lt;br /&gt;
    if ( simpleDate ) then&lt;br /&gt;
        return infocards.convertToDateNewStylePart( simpleDate );&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local complexDate1, complexDate2 = mw.ustring.match(possibleDateString, &amp;#039;^%s*([%-%d%.]+)%s*%(([%-%d%.]+)%)%s*$&amp;#039;, 0)&lt;br /&gt;
    if ( complexDate1 and complexDate2) then&lt;br /&gt;
        local table1 = infocards.convertToDateNewStylePart( complexDate1 );&lt;br /&gt;
        local table2 = infocards.convertToDateOldStylePart( complexDate2 );&lt;br /&gt;
        if ( table1 and table2 ) then&lt;br /&gt;
            return {&lt;br /&gt;
                    year = table1[&amp;quot;year&amp;quot;], month = table1[&amp;quot;month&amp;quot;], day = table1[&amp;quot;day&amp;quot;], &lt;br /&gt;
                    osyear = table2[&amp;quot;year&amp;quot;], osmonth = table2[&amp;quot;month&amp;quot;], osday = table2[&amp;quot;day&amp;quot;]&lt;br /&gt;
                }&lt;br /&gt;
        else&lt;br /&gt;
            return nil&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.convertToDateNewStylePart( possibleDateString )&lt;br /&gt;
&lt;br /&gt;
    local ny = mw.ustring.match(possibleDateString, &amp;#039;^(%-?%d+)$&amp;#039;, 0)&lt;br /&gt;
    if (ny ~= nil) then&lt;br /&gt;
        return {year = tonumber(ny)}&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return infocards.convertToDateCommonPart( possibleDateString )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.convertToDateOldStylePart( possibleDateString )&lt;br /&gt;
&lt;br /&gt;
    local nd = mw.ustring.match(possibleDateString, &amp;#039;^(%-?%d+)$&amp;#039;, 0)&lt;br /&gt;
    if (nd ~= nil) then&lt;br /&gt;
        return {day = tonumber(nd)}&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return infocards.convertToDateCommonPart( possibleDateString )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function infocards.convertToDateCommonPart( possibleDateString )&lt;br /&gt;
&lt;br /&gt;
    local nd, nm&lt;br /&gt;
        = mw.ustring.match(possibleDateString, &amp;#039;^(%d?%d)%.(%d?%d)$&amp;#039;, 0)&lt;br /&gt;
    if (nd ~= nil and nm ~= nil) then&lt;br /&gt;
        return {day = tonumber(nd), month = tonumber(nm)}&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local nd, nm, ny&lt;br /&gt;
        = mw.ustring.match(possibleDateString, &amp;#039;^(%d?%d)%.(%d?%d)%.(%-?%d+)$&amp;#039;, 0)&lt;br /&gt;
    if (nd ~= nil and nm ~= nil and ny ~= nil) then&lt;br /&gt;
    	local ndn = tonumber(nd)&lt;br /&gt;
    	local nmn = tonumber(nm)&lt;br /&gt;
    	local nyn = tonumber(ny)&lt;br /&gt;
    	if (ndn &amp;gt; 0 and ndn &amp;lt; 33 and nmn &amp;gt; 0 and nmn &amp;lt; 13) then&lt;br /&gt;
        	return {day = ndn, month = nmn, year = nyn}&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return infocards&lt;/div&gt;</summary>
		<author><name>Атомный трамвай</name></author>
	</entry>
</feed>