<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://source.islamical.org/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3A%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87</id>
	<title>پودمان:پدیدآورنده - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://source.islamical.org/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3A%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87"/>
	<link rel="alternate" type="text/html" href="https://source.islamical.org/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87&amp;action=history"/>
	<updated>2026-11-09T18:46:17Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://source.islamical.org/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87&amp;diff=196&amp;oldid=prev</id>
		<title>Shahroudi در ۴ نوامبر ۲۰۲۶، ساعت ۰۳:۵۶</title>
		<link rel="alternate" type="text/html" href="https://source.islamical.org/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87&amp;diff=196&amp;oldid=prev"/>
		<updated>2026-11-04T03:56:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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;fa&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;نسخهٔ ۴ نوامبر ۲۰۲۶، ساعت ۰۳:۵۶&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-l136&quot;&gt;خط ۱۳۶:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&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;     if not id then&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;     if not id then&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;         return &amp;#039;&amp;lt;div class=&amp;quot;sourcical-author&amp;quot; &amp;#039; ..&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;         return &amp;#039;&amp;lt;div class=&amp;quot;sourcical-author&amp;quot; &amp;#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;             &#039;style=&quot;direction:rtl;max-width:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;310px&lt;/del&gt;;&#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;             &#039;style=&quot;direction:rtl&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;float:left;clear:left;width:310px&lt;/ins&gt;;max-width:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;100%;box-sizing:border-box;margin:0 16px 16px 0&lt;/ins&gt;;&#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;             &amp;#039;padding:16px;border:1px solid #dce7e1;&amp;#039; ..&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;             &amp;#039;padding:16px;border:1px solid #dce7e1;&amp;#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;             &amp;#039;border-radius:12px;text-align:center;&amp;quot;&amp;gt;&amp;#039; ..&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;             &amp;#039;border-radius:12px;text-align:center;&amp;quot;&amp;gt;&amp;#039; ..&lt;/div&gt;&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-l213&quot;&gt;خط ۲۱۳:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&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;     out[#out + 1] =&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;     out[#out + 1] =&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;         &amp;#039;&amp;lt;div class=&amp;quot;sourcical-author&amp;quot; &amp;#039; ..&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;         &amp;#039;&amp;lt;div class=&amp;quot;sourcical-author&amp;quot; &amp;#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;         &#039;style=&quot;direction:rtl;max-width:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;310px&lt;/del&gt;;&#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;         &#039;style=&quot;direction:rtl&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;float:left;clear:left;width:310px&lt;/ins&gt;;max-width:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;100%;box-sizing:border-box&lt;/ins&gt;;&#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;         &amp;#039;border:1px solid #dce7e1;border-radius:12px;&amp;#039; ..&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;         &amp;#039;border:1px solid #dce7e1;border-radius:12px;&amp;#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;         &amp;#039;overflow:hidden;background:#fff;&amp;#039; ..&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;         &amp;#039;overflow:hidden;background:#fff;&amp;#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;         &#039;margin:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;12px &lt;/del&gt;0;&quot;&amp;gt;&#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;         &#039;margin:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0 16px 16px &lt;/ins&gt;0;&quot;&amp;gt;&#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;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;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;     out[#out + 1] =&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;     out[#out + 1] =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key sourcewiki:diff:1.41:old-195:rev-196:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Shahroudi</name></author>
	</entry>
	<entry>
		<id>https://source.islamical.org/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87&amp;diff=195&amp;oldid=prev</id>
		<title>Shahroudi در ۴ نوامبر ۲۰۲۶، ساعت ۰۳:۴۰</title>
		<link rel="alternate" type="text/html" href="https://source.islamical.org/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87&amp;diff=195&amp;oldid=prev"/>
		<updated>2026-11-04T03:40:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://source.islamical.org/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87&amp;amp;diff=195&amp;amp;oldid=173&quot;&gt;نمایش تغییرات&lt;/a&gt;</summary>
		<author><name>Shahroudi</name></author>
	</entry>
	<entry>
		<id>https://source.islamical.org/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87&amp;diff=173&amp;oldid=prev</id>
		<title>Shahroudi: صفحه‌ای تازه حاوی «local translate2bn = require(&#039;پودمان:Number Converter&#039;)._translate2bn  function errorMessage(text) 	-- Return a html formated version of text stylized as an error. 	local html = mw.html.create(&#039;div&#039;) 	html:addClass(&#039;error&#039;) 		:wikitext(text) 		:wikitext(&#039;Category:Wrong author templates&#039;) 	return tostring(html) end  function createLinkRow(link, site) 	-- Return some html stylised formated text of link 	local html = mw.html.cre...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://source.islamical.org/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:%D9%BE%D8%AF%DB%8C%D8%AF%D8%A2%D9%88%D8%B1%D9%86%D8%AF%D9%87&amp;diff=173&amp;oldid=prev"/>
		<updated>2026-11-04T02:44:20Z</updated>

		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «local translate2bn = require(&amp;#039;پودمان:Number Converter&amp;#039;)._translate2bn  function errorMessage(text) 	-- Return a html formated version of text stylized as an error. 	local html = mw.html.create(&amp;#039;div&amp;#039;) 	html:addClass(&amp;#039;error&amp;#039;) 		:wikitext(text) 		:wikitext(&amp;#039;&lt;a href=&quot;/index.php?title=%D8%B1%D8%AF%D9%87:Wrong_author_templates&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;رده:Wrong author templates (صفحه وجود ندارد)&quot;&gt;Category:Wrong author templates&lt;/a&gt;&amp;#039;) 	return tostring(html) end  function createLinkRow(link, site) 	-- Return some html stylised formated text of link 	local html = mw.html.cre...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local translate2bn = require(&amp;#039;پودمان:Number Converter&amp;#039;)._translate2bn&lt;br /&gt;
&lt;br /&gt;
function errorMessage(text)&lt;br /&gt;
	-- Return a html formated version of text stylized as an error.&lt;br /&gt;
	local html = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
	html:addClass(&amp;#039;error&amp;#039;)&lt;br /&gt;
		:wikitext(text)&lt;br /&gt;
		:wikitext(&amp;#039;[[Category:Wrong author templates]]&amp;#039;)&lt;br /&gt;
	return tostring(html)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function createLinkRow(link, site)&lt;br /&gt;
	-- Return some html stylised formated text of link&lt;br /&gt;
	local html = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
    if site == &amp;#039;پدیدآورنده&amp;#039; then&lt;br /&gt;
        logo_file_name = &amp;#039;Font_Awesome_5_regular_list-alt.svg&amp;#039;&lt;br /&gt;
    elseif site == &amp;#039;Inventory&amp;#039; then&lt;br /&gt;
        logo_file_name = &amp;#039;Inv-icon-192.svg&amp;#039;&lt;br /&gt;
    else&lt;br /&gt;
        logo_file_name = site .. &amp;#039;-logo.svg&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
	html:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
		:css({[&amp;#039;color&amp;#039;] = &amp;#039;#232388&amp;#039;, [&amp;#039;font-size&amp;#039;] = &amp;#039;140%&amp;#039;, [&amp;#039;line-height&amp;#039;] = &amp;#039;150%&amp;#039;})&lt;br /&gt;
		:wikitext(&amp;#039;[[File:&amp;#039; .. logo_file_name .. &amp;#039;|20px|&amp;#039; .. site .. &amp;#039;]]&amp;amp;nbsp;&amp;amp;nbsp;&amp;#039;)&lt;br /&gt;
	html:wikitext(link)&lt;br /&gt;
	return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function categorization(baseName, parameter)&lt;br /&gt;
	-- Return the categorisation wikitext for each element of parameter prefixed with baseName&lt;br /&gt;
	if parameter == nil then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local wikitext = &amp;#039;&amp;#039;&lt;br /&gt;
	for _,param in pairs(mw.text.split(parameter, &amp;#039;/&amp;#039;, true)) do&lt;br /&gt;
		wikitext = wikitext .. &amp;#039;[[رده:&amp;#039; .. baseName .. &amp;#039; &amp;#039; .. param .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return wikitext&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function computeCenturypaomYear(year)&lt;br /&gt;
	-- Return the correpsonding century for the given year&lt;br /&gt;
	if year &amp;gt;= 0 then&lt;br /&gt;
		return math.ceil(year / 100)&lt;br /&gt;
	else&lt;br /&gt;
		return -math.ceil(-year / 100)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getTextForCentury(century, withHtml)&lt;br /&gt;
	-- Return a roman ordinal of century appended with a trailing text precising&lt;br /&gt;
	-- if the date is before of after the calendar reference point.&lt;br /&gt;
	local romanNumbers1 = {&amp;#039;0&amp;#039;, &amp;#039;1&amp;#039;, &amp;#039;2&amp;#039;, &amp;#039;3&amp;#039;, &amp;#039;4&amp;#039;, &amp;#039;5&amp;#039;, &amp;#039;6&amp;#039;, &amp;#039;7&amp;#039;, &amp;#039;8&amp;#039;, &amp;#039;9&amp;#039;, &amp;#039;10&amp;#039;}&lt;br /&gt;
	local romanNumbers2 = {&amp;#039;&amp;#039;, &amp;#039;1&amp;#039;, &amp;#039;2&amp;#039;, &amp;#039;3&amp;#039;, &amp;#039;4&amp;#039;, &amp;#039;5&amp;#039;, &amp;#039;6&amp;#039;, &amp;#039;7&amp;#039;, &amp;#039;8&amp;#039;, &amp;#039;9&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
	local text = romanNumbers2[math.floor(math.abs(century) / 10) + 1] .. romanNumbers1[math.floor(math.abs(century) % 10) + 1]&lt;br /&gt;
	if withHtml then&lt;br /&gt;
		text = text .. &amp;#039;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		text = text .. &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if century &amp;lt; 0 then&lt;br /&gt;
		text = &amp;#039;پیش از میلاد&amp;#039; .. text&lt;br /&gt;
		century = -century&lt;br /&gt;
	end&lt;br /&gt;
	if century == 1 then&lt;br /&gt;
		return &amp;#039;سدهٔ &amp;#039; .. text&lt;br /&gt;
	elseif century == 2 then&lt;br /&gt;
		return &amp;#039;سدهٔ &amp;#039; .. text&lt;br /&gt;
	elseif century == 3 then&lt;br /&gt;
		return &amp;#039;سدهٔ &amp;#039; .. text&lt;br /&gt;
	elseif century == 4 then&lt;br /&gt;
		return &amp;#039;سدهٔ &amp;#039; .. text&lt;br /&gt;
	elseif century == 5 then&lt;br /&gt;
		return &amp;#039;سدهٔ &amp;#039; .. text&lt;br /&gt;
	elseif century == 6 then&lt;br /&gt;
		return &amp;#039;سدهٔ &amp;#039; .. text&lt;br /&gt;
	elseif century &amp;gt;= 7 and century &amp;lt;=10 then&lt;br /&gt;
		return &amp;#039;سدهٔ &amp;#039; .. text&lt;br /&gt;
	elseif century &amp;gt; 10 then&lt;br /&gt;
		return &amp;#039;سدهٔ &amp;#039; .. text&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getTextForYear(year)&lt;br /&gt;
	local text = math.abs(year)&lt;br /&gt;
	if year &amp;lt; 0 then&lt;br /&gt;
		text = text .. &amp;#039; پیش از میلاد&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return translate2bn(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getDatepaomArgs(args, field, fieldUpper)&lt;br /&gt;
	local struct = {&lt;br /&gt;
		year = nil,&lt;br /&gt;
		century = nil,&lt;br /&gt;
		text = nil,&lt;br /&gt;
		precision = 0&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	--extract year or century&lt;br /&gt;
	local date = args[&amp;#039;year&amp;#039; .. fieldUpper]&lt;br /&gt;
	if date == nil then&lt;br /&gt;
		date = args[field]&lt;br /&gt;
	end&lt;br /&gt;
	if tonumber(date) ~= nil then&lt;br /&gt;
		struct.year = tonumber(date)&lt;br /&gt;
		if struct.year == 0 then&lt;br /&gt;
			struct.text = errorMessage(&amp;quot;The Gregorian calendar does not have a year 0!&amp;quot;)&lt;br /&gt;
			return struct&lt;br /&gt;
		end&lt;br /&gt;
		struct.century = computeCenturypaomYear(struct.year)&lt;br /&gt;
		struct.precision = 9&lt;br /&gt;
	elseif args[&amp;#039;century&amp;#039; .. fieldUpper] ~= nil then&lt;br /&gt;
		struct.century = tonumber(args[&amp;#039;century&amp;#039; .. fieldUpper])&lt;br /&gt;
		struct.precision = 7&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--build text&lt;br /&gt;
	if struct.year ~= nil then&lt;br /&gt;
		struct.text = getTextForYear(struct.year)&lt;br /&gt;
	elseif struct.century ~= nil then&lt;br /&gt;
		struct.text = getTextForCentury(struct.century, true)&lt;br /&gt;
	else&lt;br /&gt;
		struct.text = date&lt;br /&gt;
	end&lt;br /&gt;
	if args[&amp;#039;text&amp;#039; .. fieldUpper] ~= nil then&lt;br /&gt;
		struct.precision = 0 --we don&amp;#039;t know anything&lt;br /&gt;
		struct.text = args[&amp;#039;text&amp;#039; .. fieldUpper] .. &amp;#039; &amp;#039; .. struct.text&lt;br /&gt;
	end&lt;br /&gt;
	if args[&amp;#039;uncertainty&amp;#039; .. fieldUpper] ~= nil and struct.text ~= nil then&lt;br /&gt;
		struct.precision = 0 --we don&amp;#039;t know anything&lt;br /&gt;
		struct.text = args[&amp;#039;uncertainty&amp;#039; .. fieldUpper] .. &amp;#039; &amp;#039; .. struct.text&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return struct&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getDatepaomTimeStatements(statements, field)&lt;br /&gt;
	if #statements == 0 then&lt;br /&gt;
		return {&lt;br /&gt;
			precision = 0,&lt;br /&gt;
			statementcount = 0&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local time = nil&lt;br /&gt;
	for _, statement in pairs(statements) do&lt;br /&gt;
		local newTime = getDatepaomTimeStatement(statement, field)&lt;br /&gt;
		if time == nil then&lt;br /&gt;
			time = newTime&lt;br /&gt;
		elseif time.year ~= newTime.year then --années contradictoires&lt;br /&gt;
			mw.addWarning(&amp;#039;Several years of &amp;#039; .. field .. &amp;#039; possible on Wikidata. A simple way to solve problems is to set the date to display the rank &amp;quot;preferred&amp;quot;.&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if time == nil then&lt;br /&gt;
		return {&lt;br /&gt;
			precision = 0&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return time&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function parseWbTime(value)&lt;br /&gt;
	local _,_, year = string.find(value.time, &amp;#039;([%+%-]%d%d%d+)%-&amp;#039;)&lt;br /&gt;
	year = tonumber(year)&lt;br /&gt;
	&lt;br /&gt;
	return {&lt;br /&gt;
		year = year,&lt;br /&gt;
		century = computeCenturypaomYear(year),&lt;br /&gt;
		text = nil,&lt;br /&gt;
		precision = value.precision&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getDatepaomTimeStatement(statement, field)&lt;br /&gt;
	local struct = {&lt;br /&gt;
		year = nil,&lt;br /&gt;
		century = nil,&lt;br /&gt;
		text = nil,&lt;br /&gt;
		precision = 0&lt;br /&gt;
	}&lt;br /&gt;
	local snak = statement.mainsnak&lt;br /&gt;
	if snak.snaktype == &amp;#039;novalue&amp;#039; then&lt;br /&gt;
		return struct&lt;br /&gt;
	end&lt;br /&gt;
	if snak.snaktype == &amp;#039;somevalue&amp;#039; then&lt;br /&gt;
		struct.text = &amp;#039;?&amp;#039;&lt;br /&gt;
		return struct.text&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	struct = parseWbTime(snak.datavalue.value)&lt;br /&gt;
	local prefix = &amp;#039;&amp;#039;&lt;br /&gt;
	if struct.precision == 8 then&lt;br /&gt;
		prefix = &amp;#039;حدود &amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Extract circa&lt;br /&gt;
	if statement.qualifiers ~= nil and statement.qualifiers.P1480 ~= nil then&lt;br /&gt;
		for _,qualifier in pairs(statement.qualifiers.P1480) do&lt;br /&gt;
			if qualifier.datavalue.value.id == &amp;#039;Q5727902&amp;#039; then&lt;br /&gt;
				prefix = &amp;#039;حدود &amp;#039;&lt;br /&gt;
				struct.precision = 8 --TODO: hacky&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	--Use before and after if precision &amp;lt;= century&lt;br /&gt;
	if statement.qualifiers ~= nil and struct.precision &amp;lt;= 7 then&lt;br /&gt;
		if statement.qualifiers.P1319 ~= nil then&lt;br /&gt;
			for _,qualifier in pairs(statement.qualifiers.P1319) do&lt;br /&gt;
				struct = parseWbTime(qualifier.datavalue.value)&lt;br /&gt;
				prefix = &amp;#039;حدود &amp;#039;&lt;br /&gt;
				struct.precision = 8 --TODO: hacky&lt;br /&gt;
			end&lt;br /&gt;
		elseif statement.qualifiers.P1326 ~= nil then&lt;br /&gt;
			for _,qualifier in pairs(statement.qualifiers.P1326) do&lt;br /&gt;
				struct = parseWbTime(qualifier.datavalue.value)&lt;br /&gt;
				prefix = &amp;#039;حدود &amp;#039;&lt;br /&gt;
				struct.precision = 8 --TODO: hacky&lt;br /&gt;
			end&lt;br /&gt;
		elseif statement.qualifiers.P1317 ~= nil then&lt;br /&gt;
			for _,qualifier in pairs(statement.qualifiers.P1317) do&lt;br /&gt;
				struct = parseWbTime(qualifier.datavalue.value)&lt;br /&gt;
				prefix = &amp;#039;حدود &amp;#039;&lt;br /&gt;
				struct.precision = 8 --TODO: hacky&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Create text&lt;br /&gt;
	if struct.precision &amp;gt;= 9 then&lt;br /&gt;
		struct.text = prefix .. getTextForYear(struct.year)&lt;br /&gt;
	elseif struct.precision == 8 then&lt;br /&gt;
		struct.text = prefix .. getTextForYear(struct.year)&lt;br /&gt;
	elseif struct.precision == 7 then&lt;br /&gt;
		struct.text = prefix .. getTextForCentury(struct.century, true)&lt;br /&gt;
	else&lt;br /&gt;
		struct.text = errorMessage(&amp;#039;The date of &amp;#039; .. field .. &amp;#039; has too low accuracy on Wikidata&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return struct&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function formatDates(birth, death, floruits, class)&lt;br /&gt;
	if birth.text == nil and birth ~= &amp;#039;?&amp;#039; and death.text == nil and death ~= &amp;#039;?&amp;#039; then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local text = &amp;#039;(&amp;#039;&lt;br /&gt;
    if birth == &amp;#039;?&amp;#039; and death == &amp;#039;?&amp;#039; and floruits ~= nil and floruits.text ~= nil then&lt;br /&gt;
        text = text .. floruits.text&lt;br /&gt;
    else&lt;br /&gt;
		if birth == &amp;#039;?&amp;#039; then&lt;br /&gt;
			text = text .. birth .. &amp;#039; &amp;#039;&lt;br /&gt;
		elseif birth.precision &amp;gt;= 9 then&lt;br /&gt;
			local annotation = &amp;#039;class=&amp;quot;bday&amp;quot; itemprop=&amp;quot;birthDate&amp;quot;&amp;#039;&lt;br /&gt;
			if class ~= &amp;quot;Q5&amp;quot; and class ~= nil then&lt;br /&gt;
				annotation = &amp;#039;itemprop=&amp;quot;foundingDate&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			text = text .. &amp;#039;&amp;lt;time datetime=&amp;#039; .. birth.year .. &amp;#039; class=&amp;quot;bday&amp;quot; itemprop=&amp;quot;birthDate&amp;quot;&amp;gt;&amp;#039; .. birth.text .. &amp;#039;&amp;lt;/time&amp;gt; &amp;#039;&lt;br /&gt;
		elseif birth.text ~= nil then&lt;br /&gt;
			text = text .. birth.text .. &amp;#039; &amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		text = text .. &amp;#039;–&amp;#039;&lt;br /&gt;
		if death == &amp;#039;?&amp;#039; then&lt;br /&gt;
			text = text .. &amp;#039; &amp;#039; .. death&lt;br /&gt;
		elseif death.precision &amp;gt;= 9 then&lt;br /&gt;
			local annotation = &amp;#039;class=&amp;quot;dday&amp;quot; itemprop=&amp;quot;deathDate&amp;quot;&amp;#039;&lt;br /&gt;
			if class ~= &amp;quot;Q5&amp;quot; and class ~= nil then&lt;br /&gt;
				annotation = &amp;#039;itemprop=&amp;quot;dissolutionDate&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			text = text .. &amp;#039; &amp;lt;time datetime=&amp;#039; .. death.year .. &amp;#039;  class=&amp;quot;dday&amp;quot; itemprop=&amp;quot;deathDate&amp;quot;&amp;gt;&amp;#039; .. death.text .. &amp;#039;&amp;lt;/time&amp;gt;&amp;#039;&lt;br /&gt;
		elseif death.text ~= nil then&lt;br /&gt;
			text = text .. &amp;#039; &amp;#039; .. death.text&lt;br /&gt;
		end&lt;br /&gt;
    end&lt;br /&gt;
	return translate2bn(text) .. &amp;#039;)&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function qidForProperty(item, property)&lt;br /&gt;
	local statements = item:getBestStatements(property)&lt;br /&gt;
	if statements[1] ~= nil and statements[1].mainsnak.datavalue ~= nil then&lt;br /&gt;
		return statements[1].mainsnak.datavalue.value.id&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function searchKey(key)&lt;br /&gt;
	-- normally the key does not contain any diacritic but it&amp;#039;s a common misuse&lt;br /&gt;
	-- of the keyf = so handle at least the most usual diacritics, note than&lt;br /&gt;
	-- prename can be empty&lt;br /&gt;
	local name, prename = mw.ustring.match(key, &amp;#039;^([A-ZÉÈÀÇa-zéèàç-]*)[,]?[ ]*(.*)$&amp;#039;)&lt;br /&gt;
	return prename .. &amp;#039; &amp;#039; .. &amp;#039;intitle:&amp;#039; .. name&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function main(frame)&lt;br /&gt;
	--create a keyan table of parameters with blank parameters removed&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k,v in pairs(frame:getParent().args) do&lt;br /&gt;
		if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local birth = getDatepaomArgs(args, &amp;#039;birth&amp;#039;, &amp;#039;Birth&amp;#039;)&lt;br /&gt;
	local death = getDatepaomArgs(args, &amp;#039;death&amp;#039;, &amp;#039;Death&amp;#039;)&lt;br /&gt;
	local floruits = nil&lt;br /&gt;
	local gender = nil&lt;br /&gt;
	local html = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
	--Use Wikidata if parameters not filled in&lt;br /&gt;
	local item = mw.wikibase.getEntity()&lt;br /&gt;
	if item == nil then&lt;br /&gt;
		html:wikitext(&amp;#039;[[رده:پدیدآورندگان ناموجود در ویکی‌داده]]&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		if args.name == nil then&lt;br /&gt;
			args.name = item:getLabel()&lt;br /&gt;
		else&lt;br /&gt;
			html:wikitext(&amp;#039;[[رده:نویسندگان با نام محلی]]&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if args.image == nil then&lt;br /&gt;
			local statements = item:getBestStatements(&amp;#039;P18&amp;#039;)&lt;br /&gt;
			if statements[1] ~= nil and statements[1].mainsnak.datavalue ~= nil then&lt;br /&gt;
				args.image = statements[1].mainsnak.datavalue.value&lt;br /&gt;
			end&lt;br /&gt;
		else &lt;br /&gt;
			html:wikitext(&amp;#039;[[رده:تصویرگران با نام محلی]]&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		local birthWikidata = getDatepaomTimeStatements(item:getBestStatements(&amp;#039;P569&amp;#039;), &amp;#039;birth&amp;#039;)&lt;br /&gt;
		if birth.text == nil then&lt;br /&gt;
			birth = birthWikidata&lt;br /&gt;
		else&lt;br /&gt;
			html:wikitext(&amp;#039;[[رده:پدیدآورندگان با تاریخ محلی]]&amp;#039;)&lt;br /&gt;
			if birthWikidata.text == nil then&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:Pages using the author template with data to migrate]]&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		local deathWikidata = getDatepaomTimeStatements(item:getBestStatements(&amp;#039;P570&amp;#039;), &amp;#039;death&amp;#039;)&lt;br /&gt;
		if death.text == nil then&lt;br /&gt;
			death = deathWikidata&lt;br /&gt;
		else&lt;br /&gt;
			html:wikitext(&amp;#039;[[رده:Locally dated author]]&amp;#039;)&lt;br /&gt;
			if deathWikidata.text == nil then&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:Pages using the author template with data to migrate]]&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if death.statementcount == 0 then&lt;br /&gt;
			html:wikitext(&amp;#039;[[رده:پدیدآورنده زنده]]&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		local floruitWikidata = getDatepaomTimeStatements(item:getBestStatements(&amp;#039;P1317&amp;#039;), &amp;#039;floruit&amp;#039;)&lt;br /&gt;
		if floruits == nil then&lt;br /&gt;
			floruits = floruitWikidata &lt;br /&gt;
		end&lt;br /&gt;
		--gender&lt;br /&gt;
		gender = qidForProperty(item, &amp;#039;P21&amp;#039;)&lt;br /&gt;
		--class&lt;br /&gt;
		class = qidForProperty(item, &amp;#039;P31&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.name == nil then&lt;br /&gt;
		return errorMessage(&amp;#039;The &amp;quot;name&amp;quot; parameter is mandatory and must contain the name of the author&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--sort key and initial&lt;br /&gt;
	local firstName = &amp;#039;&amp;#039;&lt;br /&gt;
	local familyName = &amp;#039;&amp;#039;&lt;br /&gt;
	if item ~= nil and item:getId() ~= &amp;#039;Q4233718&amp;#039; then&lt;br /&gt;
		--first name&lt;br /&gt;
		local firstNameStatements = item:getBestStatements(&amp;#039;P735&amp;#039;)&lt;br /&gt;
		if firstNameStatements[1] ~= nil then&lt;br /&gt;
			if firstNameStatements[1].mainsnak.type == &amp;#039;value&amp;#039; then&lt;br /&gt;
				local firstNameId = firstNameStatements[1].mainsnak.datavalue.value.id&lt;br /&gt;
				firstName = mw.wikibase.label(firstNameId) or &amp;#039;&amp;#039;&lt;br /&gt;
				--TODO check if the first name is not an initial&lt;br /&gt;
			elseif firstNameStatements[1].mainsnak.type == &amp;#039;somevalue&amp;#039; then&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:Author with unknown first name]]&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		--family name&lt;br /&gt;
		local familyNameId = qidForProperty(item, &amp;#039;P734&amp;#039;)&lt;br /&gt;
		if familyNameId ~= nil then&lt;br /&gt;
			familyName = mw.wikibase.label(familyNameId) or &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if familyName == &amp;#039;&amp;#039; or firstName == &amp;#039;&amp;#039; then&lt;br /&gt;
		--We are in a simple case with first name and last name. TODO: bad hack, should be improved&lt;br /&gt;
		local nameParts = mw.text.split(args.name, &amp;#039; &amp;#039;, true)&lt;br /&gt;
		if #nameParts == 1 then&lt;br /&gt;
			firstName = nameParts[1]&lt;br /&gt;
			familyName = nameParts[1]&lt;br /&gt;
		elseif #nameParts == 2 then&lt;br /&gt;
			firstName = nameParts[1]&lt;br /&gt;
			familyName = nameParts[2]&lt;br /&gt;
		elseif #nameParts == 3 then&lt;br /&gt;
			firstName = nameParts[1]&lt;br /&gt;
			familyName = nameParts[3]&lt;br /&gt;
		elseif #nameParts == 4 then&lt;br /&gt;
			firstName = nameParts[1]&lt;br /&gt;
			familyName = nameParts[4]&lt;br /&gt;
		elseif #nameParts == 5 then&lt;br /&gt;
			firstName = nameParts[1]&lt;br /&gt;
			familyName = nameParts[5]&lt;br /&gt;
		elseif #nameParts == 6 then&lt;br /&gt;
			firstName = nameParts[1]&lt;br /&gt;
			familyName = nameParts[6]&lt;br /&gt;
		elseif #nameParts == 7 then&lt;br /&gt;
			firstName = nameParts[1]&lt;br /&gt;
			familyName = nameParts[7]&lt;br /&gt;
		elseif #nameParts == 8 then&lt;br /&gt;
			firstName = nameParts[1]&lt;br /&gt;
			familyName = nameParts[8]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if args.key == nil then&lt;br /&gt;
		if familyName ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			local moduleClassement = require &amp;#039;Module:Classement&amp;#039;&lt;br /&gt;
			args.key = moduleClassement.getSortKeyForName({args = {firstName, familyName}})&lt;br /&gt;
		else&lt;br /&gt;
			return errorMessage(&amp;#039;The &amp;quot;key&amp;quot; parameter is mandatory and must contain a sort key for the author&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	else &lt;br /&gt;
		html:wikitext(&amp;#039;[[رده:Pages using the Author model with a local key]]&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.initial == nil then&lt;br /&gt;
		if args.key ~= nil then&lt;br /&gt;
			args.initial = mw.ustring.sub(args.key, 1, 1)&lt;br /&gt;
		else&lt;br /&gt;
			return errorMessage(&amp;#039;The « initial » parameter is mandatory and must contain the initial of the author’s name in unaccented capital letters&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		html:wikitext(&amp;#039;[[رده:Pages using the Author template with data to migrate]]&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local main = html:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;vcard&amp;#039;)&lt;br /&gt;
		:attr(&amp;#039;itemscope&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		:attr(&amp;#039;itemtype&amp;#039;, &amp;#039;http://schema.org/Person&amp;#039;)&lt;br /&gt;
		:css({[&amp;#039;background-color&amp;#039;] = &amp;#039;#F1F1DE&amp;#039;, [&amp;#039;overflow&amp;#039;] = &amp;#039;auto&amp;#039;, [&amp;#039;border-radius&amp;#039;] = &amp;#039;0.7em&amp;#039;, [&amp;#039;box-shadow&amp;#039;] = &amp;#039;0.2em 0.3em 0.2em #B7B7B7&amp;#039;})&lt;br /&gt;
&lt;br /&gt;
	if item ~= nil and item.id ~= nil then&lt;br /&gt;
		main:attr(&amp;#039;itemid&amp;#039;, &amp;#039;http://www.wikidata.org/entity/&amp;#039; .. item.id)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Image&lt;br /&gt;
	local image = args.image&lt;br /&gt;
	if image == nil then&lt;br /&gt;
		local defaultImages = {&amp;#039;Silver - replace this image male.svg&amp;#039;, &amp;#039;Silver - replace this image female.svg&amp;#039;, &amp;#039;Silver - replace this image female and male.svg&amp;#039;}&lt;br /&gt;
		if gender == &amp;#039;Q6581097&amp;#039; then&lt;br /&gt;
			image = defaultImages[1]&lt;br /&gt;
		elseif gender == &amp;#039;Q6581072&amp;#039; then&lt;br /&gt;
			image = defaultImages[2]&lt;br /&gt;
		else&lt;br /&gt;
			image = defaultImages[3]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	main:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:css({[&amp;#039;float&amp;#039;] = &amp;#039;right&amp;#039;, [&amp;#039;margin&amp;#039;] = &amp;#039;2em&amp;#039;})&lt;br /&gt;
		:wikitext(&amp;#039;[[File:&amp;#039; .. image .. &amp;#039;|140px|alt=&amp;#039; .. args.name .. &amp;#039;|class=photo]]&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	--First row	&lt;br /&gt;
	local firstRow = main:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:css({ [&amp;#039;margin&amp;#039;] = &amp;#039;2em&amp;#039;})&lt;br /&gt;
&lt;br /&gt;
		--رده پدیدآورنده-X&lt;br /&gt;
		firstRow:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:css({[&amp;#039;float&amp;#039;] = &amp;#039;left&amp;#039;, [&amp;#039;font-size&amp;#039;] = &amp;#039;115%&amp;#039;, [&amp;#039;text-indent&amp;#039;] = &amp;#039;1em&amp;#039;})&lt;br /&gt;
			:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;color&amp;#039;, &amp;#039;#aaaa66&amp;#039;)&lt;br /&gt;
				:wikitext(&amp;#039;◄&amp;#039;)&lt;br /&gt;
				:done()&lt;br /&gt;
			:wikitext(&amp;#039;&amp;amp;nbsp;[[:رده:پدیدآورندگان-&amp;#039; .. args.initial .. &amp;#039;|&amp;#039; .. args.initial ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
		--Title&lt;br /&gt;
		firstRow:tag(&amp;#039;h1&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;fn&amp;#039;)&lt;br /&gt;
			:attr(&amp;#039;itemprop&amp;#039;, &amp;#039;name&amp;#039;)&lt;br /&gt;
			:css({[&amp;#039;text-align&amp;#039;] = &amp;#039;center&amp;#039;, [&amp;#039;font-size&amp;#039;] = &amp;#039;160%&amp;#039;, [&amp;#039;font-weight&amp;#039;] = &amp;#039;bold&amp;#039;, [&amp;#039;border-bottom&amp;#039;] = &amp;#039;none&amp;#039;})&lt;br /&gt;
			:wikitext(args.name)&lt;br /&gt;
	&lt;br /&gt;
	--Second row&lt;br /&gt;
	local secondRow = main:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:css({ [&amp;#039;margin&amp;#039;] = &amp;#039;2em&amp;#039;})&lt;br /&gt;
&lt;br /&gt;
		--Interwikis&lt;br /&gt;
		local interwikis = secondRow:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:css({[&amp;#039;float&amp;#039;] = &amp;#039;left&amp;#039;, [&amp;#039;height&amp;#039;] = &amp;#039;50%&amp;#039;, [&amp;#039;font-size&amp;#039;] = &amp;#039;90%&amp;#039;, [&amp;#039;text-indent&amp;#039;] = &amp;#039;2em&amp;#039;})&lt;br /&gt;
			if item ~= nil and item:getSitelink(&amp;#039;fawiki&amp;#039;) ~= nil then&lt;br /&gt;
				interwikis:node(createLinkRow(&amp;#039;[[w:&amp;#039; .. item:getSitelink(&amp;#039;fawiki&amp;#039;) .. &amp;#039;|ویکی‌پدیا]]&amp;#039;, &amp;#039;wikipedia&amp;#039;))&lt;br /&gt;
			else&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if item ~= nil then&lt;br /&gt;
				local commonsCat = item:formatPropertyValues(&amp;#039;P373&amp;#039;).value&lt;br /&gt;
				if commonsCat ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					interwikis:node(createLinkRow(&amp;#039;[[commons:category:&amp;#039; .. commonsCat .. &amp;#039;|تصاویر]]&amp;#039;, &amp;#039;commons&amp;#039;))&lt;br /&gt;
				elseif item:getSitelink(&amp;#039;commonswiki&amp;#039;) ~= nil then&lt;br /&gt;
					interwikis:node(createLinkRow(&amp;#039;[[commons:&amp;#039; .. item:getSitelink(&amp;#039;commonswiki&amp;#039;) .. &amp;#039;|ویکی‌انبار]]&amp;#039;, &amp;#039;commons&amp;#039;))&lt;br /&gt;
				else&lt;br /&gt;
			end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if item ~= nil and item.id ~= nil then&lt;br /&gt;
				interwikis:node(createLinkRow(&amp;#039;[[d:&amp;#039; .. item.id .. &amp;#039;|داده‌ها]]&amp;#039;, &amp;#039;wikidata&amp;#039;))&lt;br /&gt;
			else&lt;br /&gt;
				interwikis:node(createLinkRow(&amp;#039;&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[//www.wikidata.org/w/index.php?title=Special:NewItem&amp;amp;site=fawikisource&amp;amp;page=&amp;#039; .. mw.uri.encode(mw.title.getCurrentTitle().fullText) .. &amp;#039;&amp;amp;label=&amp;#039; .. mw.uri.encode(args.name) .. &amp;#039; Données&amp;amp;nbsp;structurées&amp;lt;/span&amp;gt;]&amp;lt;/span&amp;gt;&amp;#039;, &amp;#039;ویکی‌داده&amp;#039;))&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
         &lt;br /&gt;
		--Description&lt;br /&gt;
		local fullDescription = secondRow:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:css({[&amp;#039;text-align&amp;#039;] = &amp;#039;center&amp;#039;, [&amp;#039;font-size&amp;#039;] = &amp;#039;110%&amp;#039;, [&amp;#039;line-height&amp;#039;] = &amp;#039;110%&amp;#039;, [&amp;#039;padding&amp;#039;] = &amp;#039;1em&amp;#039;})&lt;br /&gt;
		fullDescription&lt;br /&gt;
			:wikitext(formatDates(birth, death, floruits))&lt;br /&gt;
		if args.pseudo ~= nil and args.pseudo ~= &amp;#039;-&amp;#039; then&lt;br /&gt;
			fullDescription:tag(&amp;#039;br&amp;#039;)&lt;br /&gt;
			fullDescription:wikitext(&amp;#039;لقب: &amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;itemprop&amp;#039;, &amp;#039;alternateName&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;font-style&amp;#039;, &amp;#039;italic&amp;#039;)&lt;br /&gt;
				:wikitext(args.pseudo)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	--رده&lt;br /&gt;
	html:wikitext(&amp;#039;[[رده:پدیدآورندگان-&amp;#039; .. args.initial .. &amp;#039;|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	--category dates&lt;br /&gt;
	local withoutEpoque = true&lt;br /&gt;
	if birth.year ~= nil then&lt;br /&gt;
		if birth.precision &amp;gt;= 9 and birth.year &amp;gt; 0 then&lt;br /&gt;
			html:wikitext(translate2bn(&amp;#039;[[رده: زادگان &amp;#039; .. birth.year .. &amp;#039; (میلادی)|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;))&lt;br /&gt;
		elseif birth.precision &amp;gt;= 9 and birth.year &amp;lt; 0 then&lt;br /&gt;
			html:wikitext(translate2bn(&amp;#039;[[رده: زادگان &amp;#039; .. math.abs(birth.year) .. &amp;#039; (پیش از میلاد)|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;))&lt;br /&gt;
		end&lt;br /&gt;
		if birth.century ~= nil and (birth.precision &amp;lt; 9 or birth.year &amp;lt;= birth.century * 100 - 20) then&lt;br /&gt;
			if 19 &amp;lt;= birth.century then&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:پدیدآورندگان معاصر|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
			elseif 12 &amp;lt;= birth.century and birth.century &amp;lt;= 18 then&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:پدیدآورندگان دوران میانه|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
			else&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:پدیدآورندگان باستان|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			withoutEpoque = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if birth ==  &amp;#039;?&amp;#039; then&lt;br /&gt;
		html:wikitext(&amp;#039;[[رده:پدیدآورندگان بدون سال تولد|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if death.year ~= nil then&lt;br /&gt;
		if death.precision &amp;gt;= 9 and death.year &amp;gt; 0 then&lt;br /&gt;
			html:wikitext(translate2bn(&amp;#039;[[رده: درگذشتگان &amp;#039; .. death.year .. &amp;#039; (میلادی)|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;))&lt;br /&gt;
		elseif death.precision &amp;gt;= 9 and death.year &amp;lt; 0 then&lt;br /&gt;
			html:wikitext(translate2bn(&amp;#039;[[رده: درگذشتگان &amp;#039; .. math.abs(death.year) .. &amp;#039; (پیش از میلاد)|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;))&lt;br /&gt;
		end&lt;br /&gt;
		if death.century ~= nil and (death.precision &amp;lt; 9 or (death.century - 1) * 100 + 5 &amp;lt;= death.year) then&lt;br /&gt;
			if 19 &amp;lt;= death.century then&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:پدیدآورندگان معاصر|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
			elseif 12 &amp;lt;= death.century and death.century &amp;lt;= 18 then&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:پدیدآورندگان دوران میانه|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
			else&lt;br /&gt;
				html:wikitext(&amp;#039;[[رده:پدیدآورندگان باستان|&amp;#039; .. firstName ..  &amp;#039;]]&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			withoutEpoque = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	if args.key ~= nil then&lt;br /&gt;
		html:wikitext(frame:preprocess(&amp;#039;{{DEFAULTSORT:&amp;#039; .. args.key .. &amp;#039;}}&amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	--contenu&lt;br /&gt;
	html:wikitext(&amp;#039;\n__NOTOC__&amp;#039;)&lt;br /&gt;
	if args.contenu ~= nil then&lt;br /&gt;
		html:wikitext(&amp;#039;\n&amp;#039;)&lt;br /&gt;
		    :wikitext(args.contenu)&lt;br /&gt;
		    :wikitext(&amp;#039;\n&amp;#039;)&lt;br /&gt;
		    :wikitext((require &amp;#039;Module:Authority control&amp;#039;).authorityControl(item, args))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return tostring(html)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {};&lt;br /&gt;
&lt;br /&gt;
function p.Author( frame )&lt;br /&gt;
	return main( frame )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getDatepaomTimeStatements(statements, field)&lt;br /&gt;
    return getDatepaomTimeStatements(statements, field)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Shahroudi</name></author>
	</entry>
</feed>