﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://xn--90aogluj.xn--p1ai/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="http://xn--90aogluj.xn--p1ai/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="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;action=history"/>
	<updated>2026-08-04T05:45:06Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=705&amp;oldid=prev</id>
		<title>Peandre2: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://xn--90aogluj.xn--p1ai/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=705&amp;oldid=prev"/>
		<updated>2015-01-12T22:08:59Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&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, '^%s*$') ~= 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, {'s', 't', 'f'} );&lt;br /&gt;
    local s = new_args['s'] or '';&lt;br /&gt;
    local t = new_args['t'] or '';&lt;br /&gt;
    local f = new_args['f'] or '';&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, {'dateOfBirth', 'dateOfDeath', 'nocat'} );&lt;br /&gt;
    local dateOfBirth = new_args['dateOfBirth'] or '';&lt;br /&gt;
    local dateOfDeath = new_args['dateOfDeath'] or '';&lt;br /&gt;
    local nocat = new_args['nocat'] 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 '[[Категория:Википедия:Персоны без указанной даты рождения]]'&lt;br /&gt;
        else&lt;br /&gt;
            return ''&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if ( mw.ustring.match( dateOfBirth, '^%s*неизвестн.%s*$' ) ~= nil&lt;br /&gt;
            or mw.ustring.match( dateOfBirth, '^%s*%?%s*$' ) ~= nil ) then&lt;br /&gt;
        if ( appendToCategory ) then&lt;br /&gt;
            return &amp;quot;''неизвестно''[[Категория:Персоналии, чья дата рождения не установлена]]&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;quot;''неизвестно''&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 .. '[[Категория:Википедия:Статьи с ручной викификацией дат в карточке]]'&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, 'bday', appendToCategory and 'Родившиеся' 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;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;(' .. age .. ' ' .. mw.language.new( 'ru' ):plural( age, 'год', 'года', 'лет') .. ')&amp;lt;/span&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
        if ( age &amp;gt; 150 and appendToCategory ) then&lt;br /&gt;
            result = result .. '[[Категория:Википедия:Статьи о персоналиях с большим текущим возрастом]]'&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, {'dateOfBirth', 'dateOfDeath', 'nocat'} );&lt;br /&gt;
    local dateOfBirth = new_args['dateOfBirth'] or '';&lt;br /&gt;
    local dateOfDeath = new_args['dateOfDeath'] or '';&lt;br /&gt;
    local nocat = new_args['nocat'] 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 ''&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, '^%s*неизвестн.%s*$' ) ~= nil&lt;br /&gt;
            or mw.ustring.match( dateOfDeath, '^%s*%?%s*$' ) ~= nil ) then&lt;br /&gt;
        if ( appendToCategory ) then&lt;br /&gt;
            return &amp;quot;''неизвестно''[[Категория:Персоналии, чья дата смерти не установлена]]&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;quot;''неизвестно''&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 .. '[[Категория:Википедия:Статьи с ручной викификацией дат в карточке]]'&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, 'dday', appendToCategory and 'Умершие' 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;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;(' .. age .. ' ' .. mw.language.new( 'ru' ):plural( age, 'год', 'года', 'лет') .. ')&amp;lt;/span&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
		if ( age &amp;gt; 150 and appendToCategory ) then&lt;br /&gt;
			result = result .. '[[Категория:Википедия:Статьи о персоналиях с большим возрастом во время смерти]]'&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 = {'января', 'февраля', 'марта', 'апреля', 'мая', 'июня',&lt;br /&gt;
    'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'}&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;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;'&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( '%d %s %d&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;([[%d %s]] %s)',&lt;br /&gt;
                                        od, genitivusMonthes[om], oy, nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
    else&lt;br /&gt;
        datePart = datePart .. 'формат неверен'&lt;br /&gt;
    end&lt;br /&gt;
    datePart = datePart .. '&amp;lt;/span&amp;gt;'&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;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;' .. infocardClass .. '&amp;quot;&amp;gt;{{padleft:' .. ny .. '|4|0}}-{{padleft:' .. nm .. '|2|0}}-{{padleft:' .. nd .. '|2|0}}&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;'&lt;br /&gt;
    elseif (infocardTemplate == &amp;quot;23&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. '&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;' .. infocardClass .. '&amp;quot;&amp;gt;{{padleft:' .. ny .. '|4|0}}-{{padleft:' .. nm .. '|2|0}}&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;'&lt;br /&gt;
    elseif (infocardTemplate == &amp;quot;3&amp;quot;) then&lt;br /&gt;
        datePart = datePart .. '&amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;' .. infocardClass .. '&amp;quot;&amp;gt;{{padleft:' .. ny .. '|4|0}}&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;'&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 .. '[[Категория:' .. categoryNamePrefix .. ' ' .. nd .. ' ' .. genitivusMonthes[nm] .. ']]'&lt;br /&gt;
        end&lt;br /&gt;
        if ( ny ~= nil) then&lt;br /&gt;
            datePart = datePart .. '[[Категория:' .. categoryNamePrefix .. ' в ' .. infocards.inYear( ny ) .. ']]'&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 '[[' .. year .. ' год|' .. year .. ']]'&lt;br /&gt;
    else&lt;br /&gt;
        return '[[' .. ( 0 - year ) .. ' год до н. э.|' .. ( 0 - year ) .. ' до н. э.]]'&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 '' .. year .. ' году'&lt;br /&gt;
    else&lt;br /&gt;
        return '' .. ( 0 - year) .. ' году до н. э.'&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, '−', '-')&lt;br /&gt;
&lt;br /&gt;
    local simpleDate = mw.ustring.match(possibleDateString, '^%s*([%-%d%.]+)%s*$', 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, '^%s*([%-%d%.]+)%s*%(([%-%d%.]+)%)%s*$', 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, '^(%-?%d+)$', 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, '^(%-?%d+)$', 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, '^(%d?%d)%.(%d?%d)$', 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, '^(%d?%d)%.(%d?%d)%.(%-?%d+)$', 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>Peandre2</name></author>
		
	</entry>
</feed>