<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="he">
	<id>https://chabadpedia.co.il/index.php?action=history&amp;feed=atom&amp;title=%D7%99%D7%97%D7%99%D7%93%D7%94%3ASources</id>
	<title>יחידה:Sources - היסטוריית גרסאות</title>
	<link rel="self" type="application/atom+xml" href="https://chabadpedia.co.il/index.php?action=history&amp;feed=atom&amp;title=%D7%99%D7%97%D7%99%D7%93%D7%94%3ASources"/>
	<link rel="alternate" type="text/html" href="https://chabadpedia.co.il/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Sources&amp;action=history"/>
	<updated>2026-04-19T20:23:47Z</updated>
	<subtitle>היסטוריית הגרסאות של הדף הזה בוויקי</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://chabadpedia.co.il/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Sources&amp;diff=471019&amp;oldid=prev</id>
		<title>חלוקת קונטרסים: מויקיפדיה: https://he.wikipedia.org/wiki/%D7%99%D7%97%D7%99%D7%93%D7%94:Sources</title>
		<link rel="alternate" type="text/html" href="https://chabadpedia.co.il/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Sources&amp;diff=471019&amp;oldid=prev"/>
		<updated>2021-04-20T15:11:36Z</updated>

		<summary type="html">&lt;p&gt;מויקיפדיה: https://he.wikipedia.org/wiki/%D7%99%D7%97%D7%99%D7%93%D7%94:Sources&lt;/p&gt;
&lt;p&gt;&lt;b&gt;דף חדש&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {};&lt;br /&gt;
local u = require(&amp;#039;Module:Sources-utils&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local i18nDefaultLanguage = &amp;#039;ru&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
local i18nEtAlDefault = &amp;#039; et al.&amp;#039;;&lt;br /&gt;
local i18nEtAl = {&lt;br /&gt;
	ru	= &amp;#039; и др.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nEditors = {&lt;br /&gt;
	fr	= &amp;#039;&amp;#039;,&lt;br /&gt;
	de	= &amp;#039;Hrsg.: &amp;#039;,&lt;br /&gt;
	es	= &amp;#039;&amp;#039;,&lt;br /&gt;
	en	= &amp;#039;&amp;#039;,&lt;br /&gt;
	it	= &amp;#039;&amp;#039;,&lt;br /&gt;
	ru	= &amp;#039;под ред. &amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nVolume = {&lt;br /&gt;
	fr	= &amp;#039;Vol.&amp;#039;,&lt;br /&gt;
	es	= &amp;#039;Vol.&amp;#039;,&lt;br /&gt;
	en	= &amp;#039;Vol.&amp;#039;,&lt;br /&gt;
	it	= &amp;#039;Vol.&amp;#039;,&lt;br /&gt;
	ru	= &amp;#039;Т.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nIssue = {&lt;br /&gt;
	en	= &amp;#039;Iss.&amp;#039;,&lt;br /&gt;
	ru	= &amp;#039;вып.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nPages = {&lt;br /&gt;
	fr = &amp;#039;P.&amp;#039;,&lt;br /&gt;
	de = &amp;#039;S.&amp;#039;,&lt;br /&gt;
	es = &amp;#039;P.&amp;#039;,&lt;br /&gt;
	en = &amp;#039;P.&amp;#039;,&lt;br /&gt;
	it = &amp;#039;P.&amp;#039;,&lt;br /&gt;
	ru = &amp;#039;С.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nNumberOfPages = {&lt;br /&gt;
	en = &amp;#039;p.&amp;#039;,&lt;br /&gt;
	ru = &amp;#039;с.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local i18nTirage = {&lt;br /&gt;
	en	= &amp;#039;ed. size: %d&amp;#039;,&lt;br /&gt;
	ru	= &amp;#039;%d экз.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local monthg = {&amp;#039;января&amp;#039;, &amp;#039;февраля&amp;#039;, &amp;#039;марта&amp;#039;, &amp;#039;апреля&amp;#039;, &amp;#039;мая&amp;#039;, &amp;#039;июня&amp;#039;, &amp;#039;июля&amp;#039;, &amp;#039;августа&amp;#039;, &amp;quot;сентября&amp;quot;, &amp;quot;октября&amp;quot;, &amp;quot;ноября&amp;quot;, &amp;quot;декабря&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
local PREFIX_CITEREF = &amp;quot;CITEREF_&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
local options_commas = { separator = &amp;#039;, &amp;#039;, conjunction = &amp;#039;, &amp;#039;, format = function( src ) return src end, nolinks = false, preferids = false };&lt;br /&gt;
local options_commas_short = { separator = &amp;#039;, &amp;#039;, conjunction = &amp;#039;, &amp;#039;, format = function( src ) return src end, nolinks = false, preferids = false, short = true };&lt;br /&gt;
local options_commas_nolinks = { separator = &amp;#039;, &amp;#039;, conjunction = &amp;#039;, &amp;#039;, format = function( src ) return src end, nolinks = true, preferids = false };&lt;br /&gt;
local options_commas_it = { separator = &amp;#039;, &amp;#039;, conjunction = &amp;#039;, &amp;#039;, format = function( src ) return &amp;quot;&amp;#039;&amp;#039;&amp;quot; .. src .. &amp;quot;&amp;#039;&amp;#039;&amp;quot; end, nolinks = false, preferids = false };&lt;br /&gt;
local options_commas_it_short = { separator = &amp;#039;, &amp;#039;, conjunction = &amp;#039;, &amp;#039;, format = function( src ) return &amp;quot;&amp;#039;&amp;#039;&amp;quot; .. src .. &amp;quot;&amp;#039;&amp;#039;&amp;quot; end, nolinks = false, preferids = false, short = true };&lt;br /&gt;
local options_commas_it_nolinks = { separator = &amp;#039;, &amp;#039;, conjunction = &amp;#039;, &amp;#039;, format = function( src ) return &amp;quot;&amp;#039;&amp;#039;&amp;quot; .. src .. &amp;quot;&amp;#039;&amp;#039;&amp;quot; end, nolinks = true , preferids = false };&lt;br /&gt;
local options_citetypes = { separator = &amp;#039; &amp;#039;, conjunction = &amp;#039; &amp;#039;, format = function( src ) return &amp;#039;citetype_&amp;#039; .. src end, nolinks = true , preferids = true };&lt;br /&gt;
&lt;br /&gt;
local options_commas_authors = { separator = &amp;#039;, &amp;#039;, conjunction = &amp;#039;, &amp;#039;, format = personNameToAuthorName, nolinks = false, preferids = false };&lt;br /&gt;
local options_commas_responsible = { separator = &amp;#039;, &amp;#039;, conjunction = &amp;#039;, &amp;#039;, format = personNameToResponsibleName, nolinks = false, preferids = false };&lt;br /&gt;
&lt;br /&gt;
local options_arxiv = { separator = &amp;#039;; &amp;#039;, conjunction = &amp;#039;; &amp;#039;, format = function( id ) return &amp;#039;[http://arxiv.org/abs/&amp;#039; .. id .. &amp;#039; arXiv:&amp;#039; .. id .. &amp;#039;]&amp;#039; end, nolinks = true, preferids = false };&lt;br /&gt;
local options_doi = { separator = &amp;#039;; &amp;#039;, conjunction = &amp;#039;; &amp;#039;, format = function( doi ) return &amp;#039;[http://dx.doi.org/&amp;#039; .. doi .. &amp;#039; doi:&amp;#039; .. doi .. &amp;#039;]&amp;#039; end, nolinks = true, preferids = false };&lt;br /&gt;
local options_issn = { separator = &amp;#039;; &amp;#039;, conjunction = &amp;#039;; &amp;#039;, format = function( issn ) return &amp;#039;[https://www.worldcat.org/issn/&amp;#039; .. issn .. &amp;#039; &amp;#039; .. issn .. &amp;#039;]&amp;#039; end, nolinks = true, preferids = false };&lt;br /&gt;
&lt;br /&gt;
function renderSource( context, src )&lt;br /&gt;
	options_commas_authors.format = personNameToAuthorName;&lt;br /&gt;
	options_commas_responsible.format = personNameToResponsibleName;&lt;br /&gt;
&lt;br /&gt;
	context.lang = getLangCode( getSingle( src.lang ) ) or i18nDefaultLanguage;&lt;br /&gt;
&lt;br /&gt;
	preprocessPlaces( src, context.lang );&lt;br /&gt;
&lt;br /&gt;
	src.title = src.title or getSingle( src.url ) or &amp;#039;\&amp;#039;\&amp;#039;(unspecified title)\&amp;#039;\&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if ( src.sourceId and not src.url ) then&lt;br /&gt;
		local entity = getEntity( context, src.sourceId );&lt;br /&gt;
		if ( entity.sitelinks and entity.sitelinks[ context.lang .. &amp;#039;wikisource&amp;#039;] ) then&lt;br /&gt;
			src.url = &amp;#039;:&amp;#039; .. context.lang .. &amp;#039;:s:&amp;#039; .. entity.sitelinks[ context.lang .. &amp;#039;wikisource&amp;#039; ].title;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( not src.year and src.dateOfPublication ) then&lt;br /&gt;
		local date = getSingle( src.dateOfPublication );&lt;br /&gt;
		src.year = mw.ustring.sub( date, 2, 5 );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( not src.year and src.dateOfCreation ) then&lt;br /&gt;
		local date = getSingle( src.dateOfCreation );&lt;br /&gt;
		src.year = mw.ustring.sub( date, 2, 5 );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result;&lt;br /&gt;
	if ( src.author ) then&lt;br /&gt;
		result = getPeopleAsWikitext( context, src.author, options_commas_authors );&lt;br /&gt;
	end&lt;br /&gt;
	if ( not isEmpty( result )) then&lt;br /&gt;
		result = &amp;#039;&amp;lt;i class=&amp;quot;wef_low_priority_links&amp;quot;&amp;gt;&amp;#039; .. result .. &amp;#039;&amp;lt;/i&amp;gt; &amp;#039;;&lt;br /&gt;
	else&lt;br /&gt;
		result = &amp;#039;&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
 	if ( src.part ) then&lt;br /&gt;
 		if ( src.url ) then&lt;br /&gt;
			result = result .. wrapInUrl( src.url, toString( context, src.part, options_commas_nolinks ) );&lt;br /&gt;
		else&lt;br /&gt;
			result = result .. toString( context, src.part, options_commas );&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. &amp;#039; // &amp;#039; .. toString( context, src.title, options_commas );&lt;br /&gt;
	else&lt;br /&gt;
		-- title only&lt;br /&gt;
 		if ( src.url ) then&lt;br /&gt;
			result = result .. wrapInUrl( src.url, toString( context, src.title, options_commas_nolinks ) );&lt;br /&gt;
		else&lt;br /&gt;
			result = result .. toString( context, src.title, options_commas );&lt;br /&gt;
		end&lt;br /&gt;
 	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.subtitle ) then&lt;br /&gt;
		result = result .. &amp;quot;: &amp;quot; .. toString( context, src.subtitle, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.originaltitle ) then&lt;br /&gt;
		result = result .. &amp;#039; = &amp;#039; .. toString( context, src.originaltitle, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.publication ) then&lt;br /&gt;
		if ( type( src.publication.title or &amp;#039;&amp;#039;) ~= &amp;#039;string&amp;#039; ) then error(&amp;#039;type of src.publication.title is not string but &amp;#039; .. type( src.publication.title ) ) end;&lt;br /&gt;
&lt;br /&gt;
		result = result .. &amp;#039; // &amp;#039; .. toString( context, src.publication, options_commas_it_short );&lt;br /&gt;
		if ( src.publication.subtitle ) then&lt;br /&gt;
			result = result .. &amp;#039;: &amp;#039; .. toString( context, src.publication.subtitle, options_commas_it_short );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	result = result .. &amp;#039;&amp;lt;span class=&amp;quot;wef_low_priority_links&amp;quot;&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	if ( src.editor ) then&lt;br /&gt;
		local prefix = i18nEditors[ context.lang ] or i18nEditors[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. &amp;#039; / &amp;#039; .. prefix .. getPeopleAsWikitext( context, src.editor, options_commas_responsible );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.edition ) then&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. toString( context, src.edition, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.place or src.publisher or src.year ) then&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039;;&lt;br /&gt;
		if ( src.place ) then&lt;br /&gt;
			result = result .. toString( context, src.place, options_commas_short );&lt;br /&gt;
			if ( src.publisher or src.year ) then&lt;br /&gt;
				result = result .. &amp;#039;: &amp;#039;;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if ( src.publisher ) then&lt;br /&gt;
			result = result .. toString( context, src.publisher, options_commas_short );&lt;br /&gt;
			if ( src.year ) then&lt;br /&gt;
				result = result .. &amp;#039;, &amp;#039;;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if ( src.year ) then&lt;br /&gt;
			result = result .. toString( context, src.year, options_commas );&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
 	if ( src.volume or src.issue ) then&lt;br /&gt;
 		result = result .. &amp;#039; — &amp;#039;;&lt;br /&gt;
		if ( src.volume ) then&lt;br /&gt;
			local letter = i18nVolume[ context.lang ] or i18nVolume[ i18nDefaultLanguage ];&lt;br /&gt;
			result = result .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.volume, options_commas );&lt;br /&gt;
			if ( src.issue ) then&lt;br /&gt;
				local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
				result = result .. &amp;#039;, &amp;#039; .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.issue, options_commas ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
			else&lt;br /&gt;
				result = result .. &amp;#039;.&amp;#039;;&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
			result = result .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.issue, options_commas ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
		end&lt;br /&gt;
 	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.pages ) then&lt;br /&gt;
		local letter = i18nPages[ context.lang ] or i18nPages[ i18nDefaultLanguage ];&lt;br /&gt;
		local strPages = toString( context, src.pages, options_commas );&lt;br /&gt;
		strPages = mw.ustring.gsub( strPages, &amp;#039;[-—]&amp;#039;, &amp;#039;–&amp;#039; );&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. strPages .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.numberOfPages ) then&lt;br /&gt;
		local letter = i18nNumberOfPages[ context.lang ] or i18nNumberOfPages[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. toString( context, src.numberOfPages, options_commas ) .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. letter;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.bookSeries ) then&lt;br /&gt;
		result = result .. &amp;#039; — (&amp;#039; .. toString( context, src.bookSeries, options_commas )&lt;br /&gt;
&lt;br /&gt;
	 	if ( src.bookSeriesVolume or src.bookSeriesIssue ) then&lt;br /&gt;
	 		result = result .. &amp;#039;; &amp;#039;;&lt;br /&gt;
			if ( src.bookSeriesVolume ) then&lt;br /&gt;
				local letter = i18nVolume[ context.lang ] or i18nVolume[ i18nDefaultLanguage ];&lt;br /&gt;
				result = result .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.bookSeriesVolume, options_commas );&lt;br /&gt;
				if ( src.bookSeriesIssue ) then&lt;br /&gt;
					local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
					result = result .. &amp;#039;, &amp;#039; .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.bookSeriesIssue, options_commas );&lt;br /&gt;
				else&lt;br /&gt;
					result = result;&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
				result = result .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.bookSeriesIssue, options_commas );&lt;br /&gt;
			end&lt;br /&gt;
	 	end&lt;br /&gt;
&lt;br /&gt;
		result = result .. &amp;#039;)&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.tirage ) then&lt;br /&gt;
		local tirageTemplate = i18nTirage[ context.lang ] or i18nTirage[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. toString( context, src.tirage, { separator = &amp;#039;; &amp;#039;, conjunction = &amp;#039;;&amp;#039;, format = function( data ) return mw.ustring.format(tirageTemplate, data) end } );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.isbn ) then&lt;br /&gt;
		result = result .. &amp;#039; — ISBN &amp;#039; .. toString( context, src.isbn, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.issn ) then&lt;br /&gt;
		result = result .. &amp;#039; — ISSN &amp;#039; .. toString( context, src.issn, options_issn );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.doi ) then&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. toString( context, src.doi, options_doi );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.arxiv ) then&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. toString( context, src.arxiv, options_arxiv );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.sourceId ) then&lt;br /&gt;
		if ( src.type and src.sourceId ) then&lt;br /&gt;
			-- wrap into span to target from JS&lt;br /&gt;
			result = &amp;#039;&amp;lt;span class=&amp;quot;wikidata_cite &amp;#039; .. toString( context, src.type, options_citetypes ) .. &amp;#039;&amp;quot; data-entity-id=&amp;quot;&amp;#039; .. getSingle( src.sourceId ) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. result .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			result = &amp;#039;&amp;lt;span class=&amp;quot;wikidata_cite citetype_unknown&amp;quot; data-entity-id=&amp;quot;&amp;#039; .. getSingle( src.sourceId ) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. result .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.accessdate ) then&lt;br /&gt;
			local date = getSingle( src.accessdate );&lt;br /&gt;
			local pattern = &amp;quot;(%-?%d+)%-(%d+)%-(%d+)T&amp;quot;;&lt;br /&gt;
			local y, m, d = mw.ustring.match( date , pattern );&lt;br /&gt;
			y,m,d = tonumber(y),tonumber(m),tonumber(d);&lt;br /&gt;
			result = result .. &amp;quot; &amp;lt;small&amp;gt;Проверено &amp;quot; .. tostring(d) .. &amp;quot; &amp;quot; .. monthg[m]  .. &amp;quot; &amp;quot; .. tostring(y) .. &amp;quot;.&amp;lt;/small&amp;gt;&amp;quot;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	result = result .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    -- append invisible links to all elements used by source for tracking purposes&lt;br /&gt;
    local result = result .. &amp;#039;&amp;lt;div style=&amp;quot;display:none&amp;quot;&amp;gt;&amp;#039;;&lt;br /&gt;
	for key, entity in pairs( context.cache ) do&lt;br /&gt;
		result = result .. &amp;#039;&amp;lt;a href=&amp;quot;https://wikidata.org&amp;#039; ..  mw.uri.localUrl(&amp;#039;Track:&amp;#039; .. key).path .. &amp;#039;&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
    result = result ..&amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	return {text = result, code = src.code};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderShortReference( src )&lt;br /&gt;
	context = {&lt;br /&gt;
		cache = {},&lt;br /&gt;
		lang = getSingle( src.lang ) or i18nDefaultLanguage;&lt;br /&gt;
	};&lt;br /&gt;
	src.title = src.title or &amp;#039;\&amp;#039;\&amp;#039;(unspecified title)\&amp;#039;\&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local result = &amp;#039;[[#&amp;#039; .. PREFIX_CITEREF .. src.code .. &amp;#039;|&amp;#039;;&lt;br /&gt;
	if ( src.author ) then&lt;br /&gt;
		result = result .. toString( context, src.author, options_authors_nolinks );&lt;br /&gt;
	else&lt;br /&gt;
		result = result .. toString( context, src.title, options_commas_it_nolinks );&lt;br /&gt;
	end&lt;br /&gt;
	result = result .. &amp;#039;]]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if ( src.year ) then&lt;br /&gt;
		result = result .. &amp;#039;, &amp;#039; .. toString( context, src.year, options_commas );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.volume ) then&lt;br /&gt;
		local letter = i18nVolume[ context.lang ] or i18nVolume[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.volume, options_commas ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( src.issue ) then&lt;br /&gt;
		local letter = i18nIssue[ context.lang ] or i18nIssue[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.issue, options_commas ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if ( src.pages ) then&lt;br /&gt;
		local letter = i18nPages[ context.lang ] or i18nPages[ i18nDefaultLanguage ];&lt;br /&gt;
		result = result .. &amp;#039; — &amp;#039; .. letter .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. toString( context, src.pages, options_commas )  .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getPeopleAsWikitext( context, value, options )&lt;br /&gt;
	if ( type( value ) == &amp;#039;string&amp;#039; ) then&lt;br /&gt;
		return options.format( value );&lt;br /&gt;
	elseif ( type( value ) == &amp;#039;table&amp;#039; ) then&lt;br /&gt;
		if ( value.id ) then&lt;br /&gt;
			-- this is link&lt;br /&gt;
			if ( options.preferids ) then&lt;br /&gt;
				return value.id;&lt;br /&gt;
			else&lt;br /&gt;
				if ( options.nolinks ) then&lt;br /&gt;
					return getPersonNameAsLabel( context, value.id, value.label, options );&lt;br /&gt;
				else&lt;br /&gt;
					return getPersonNameAsWikitext( context, value.id, value.label, options );&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local resultList = {};&lt;br /&gt;
		for i, tableValue in pairs( value ) do&lt;br /&gt;
			local nextWikitext = getPeopleAsWikitext( context, tableValue, options );&lt;br /&gt;
			if ( not isEmpty( nextWikitext ) ) then&lt;br /&gt;
				table.insert( resultList, nextWikitext );&lt;br /&gt;
				if ( #resultList == 4 ) then&lt;br /&gt;
					-- even 4 is too much, but we preserve 4th to mark that &amp;quot;it&amp;#039;s more than 3&amp;quot;&lt;br /&gt;
					break;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local resultWikitext = &amp;#039;&amp;#039;;&lt;br /&gt;
		for i, wikitext in pairs( resultList ) do&lt;br /&gt;
			if ( i == 4 ) then&lt;br /&gt;
				resultWikitext = resultWikitext .. ( i18nEtAl[ context.lang ] or i18nEtAlDefault );&lt;br /&gt;
				break;&lt;br /&gt;
			end&lt;br /&gt;
			if ( i ~= 1 ) then&lt;br /&gt;
				resultWikitext = resultWikitext .. &amp;#039;, &amp;#039;;&lt;br /&gt;
			end&lt;br /&gt;
			resultWikitext = resultWikitext .. wikitext;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		return resultWikitext;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return options.format( &amp;#039;(unknown type)&amp;#039; );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getPersonNameAsWikitext( context, entityId, customLabel, options )&lt;br /&gt;
	local personName = getPersonNameAsLabel( context, entityId, customLabel, options);&lt;br /&gt;
	if ( personName == nil ) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local link = getElementLink( context, entityId, nil );&lt;br /&gt;
	return wrapInUrl( link, personName );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getPersonNameAsLabel( context, entityId, providedLabel, options )&lt;br /&gt;
	-- would custom label provided we don&amp;#039;t need to check entity at all&lt;br /&gt;
	if ( not isEmpty( providedLabel ) ) then&lt;br /&gt;
		mw.log( &amp;#039;Custom label provided for &amp;#039; .. entityId );&lt;br /&gt;
		return options.format( providedLabel );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local entity = getEntity( context, entityId );&lt;br /&gt;
	if ( not entity ) then return &amp;#039;\&amp;#039;\&amp;#039;(entity &amp;#039; .. entityId .. &amp;#039; is missing)\&amp;#039;\&amp;#039;&amp;#039; end;&lt;br /&gt;
&lt;br /&gt;
	local personName = nil;&lt;br /&gt;
	-- support only labels so far&lt;br /&gt;
	if ( entity.labels[ context.lang ] ) then&lt;br /&gt;
		personName = entity.labels[ context.lang ].value;&lt;br /&gt;
		mw.log(&amp;#039;Got person name of &amp;#039; .. entityId .. &amp;#039; from label: «&amp;#039; .. personName .. &amp;#039;»&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( not isInstanceOf( entity, &amp;#039;Q5&amp;#039; ) ) then&lt;br /&gt;
		mw.log( &amp;#039;Entity &amp;#039; .. entityId .. &amp;#039; is not a person&amp;#039; );&lt;br /&gt;
		return personName;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( isEmpty( personName ) ) then&lt;br /&gt;
		return &amp;#039;\&amp;#039;\&amp;#039;(not translated to &amp;#039; .. context.lang .. &amp;#039;)\&amp;#039;\&amp;#039;&amp;#039;;&lt;br /&gt;
	else&lt;br /&gt;
		return options.format( personName );&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function personNameToAuthorName( fullName )&lt;br /&gt;
	if ( not fullName ) then return fullName; end&lt;br /&gt;
&lt;br /&gt;
	local f, i, o = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)\,%s(%a[%a\-]*)%s(%a[%a\-]*)%s*$&amp;#039; );&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «Fa, I. O.» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039;&lt;br /&gt;
			.. mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039;&lt;br /&gt;
			.. mw.ustring.sub( o, 1, 1 ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local f1, f2, i = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)%s(%a[%a\-]*)\,%s(%a[%a\-]*)%s*$&amp;#039; );&lt;br /&gt;
	if ( f1 ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «Fa Fa, I» match&amp;#039; );&lt;br /&gt;
		return f1 .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. f2 .. &amp;#039;&amp;amp;nbsp;&amp;#039;&lt;br /&gt;
			.. mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «I. O. Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. i .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. o .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i1, i2, i3, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a)\.%s(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «I. O. ?. Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. i1 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i2 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i3 .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    -- Joel J. P. C. Rodrigues&lt;br /&gt;
	local i1, i2, i3, i4, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a)[%a\-]+%s(%a)\.%s(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «I. O. ?. Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. i1 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i2 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i3 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i4 .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)%s(%a)\.%s(%a[%a\-]*)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im O. Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. o .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i1, i2, i3, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)%s(%a)\.%s(%a)\.%s(%a[%a\-]*)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im I. I. Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( i1, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i2 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i3 .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)%s(%a[%a\-]*)%s(%a[%a\-]*)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im Ot Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( o, 1, 1 ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]+)%s(%a[%a\-]+)%s+оглы%s+(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im Ot оглы Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( o, 1, 1 ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i1, i2, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]+)%s(%a[%a\-]+)%s+de%s+(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «I1 I2 de Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( i1, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( i2, 1, 1 ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-\&amp;#039;]+)%s(%a[%a\-\&amp;#039;]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToAuthorName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im Fa» match&amp;#039; );&lt;br /&gt;
		return f .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	mw.log( &amp;#039;Unmatched any pattern: «&amp;#039; .. fullName .. &amp;#039;»&amp;#039; );&lt;br /&gt;
	return fullName;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function personNameToResponsibleName( fullName )&lt;br /&gt;
	if ( not fullName ) then return fullName; end&lt;br /&gt;
&lt;br /&gt;
	local f, i, o = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)\,%s(%a[%a\-]*)%s(%a[%a\-]*)%s*$&amp;#039; );&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToResponsibleName: «&amp;#039; .. fullName .. &amp;#039;»: have «Fa, I. O.» match&amp;#039; );&lt;br /&gt;
		return mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( o, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local f1, f2, i = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)%s(%a[%a\-]*)\,%s(%a[%a\-]*)%s*$&amp;#039; );&lt;br /&gt;
	if ( f1 ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToResponsibleName: «&amp;#039; .. fullName .. &amp;#039;»: have «Fa Fa, I» match&amp;#039; );&lt;br /&gt;
		return  mw.ustring.sub( i, 1, 1 ) .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. f1 .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. f2;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;v: «&amp;#039; .. fullName .. &amp;#039;»: have «I. O. Fa» match&amp;#039; );&lt;br /&gt;
		return i .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. o .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i1, i2, i3, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a)\.%s(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToResponsibleName: «&amp;#039; .. fullName .. &amp;#039;»: have «I. O. ?. Fa» match&amp;#039; );&lt;br /&gt;
		return  i1 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i2 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i3 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    -- Joel J. P. C. Rodrigues&lt;br /&gt;
	local i1, i2, i3, i4, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a)[%a\-]+%s(%a)\.%s(%a)\.%s(%a)\.%s(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToResponsibleName: «&amp;#039; .. fullName .. &amp;#039;»: have «I. O. ?. Fa» match&amp;#039; );&lt;br /&gt;
		return  i1 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i2 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i3 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. i4 .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)%s(%a)\.%s(%a[%a\-]*)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToResponsibleName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im O. Fa» match&amp;#039; );&lt;br /&gt;
		return mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. o .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]*)%s(%a[%a\-]*)%s(%a[%a\-]*)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToResponsibleName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im Ot Fa» match&amp;#039; );&lt;br /&gt;
		return mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( o, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, o, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-]+)%s(%a[%a\-]+)%s+оглы%s+(%a[%a\-]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToResponsibleName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im Ot оглы Fa» match&amp;#039; );&lt;br /&gt;
		return  mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. mw.ustring.sub( o, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i, f = mw.ustring.match( fullName, &amp;#039;^%s*(%a[%a\-\&amp;#039;]+)%s(%a[%a\-\&amp;#039;]+)%s*$&amp;#039;);&lt;br /&gt;
	if ( f ) then&lt;br /&gt;
		mw.log( &amp;#039;personNameToResponsibleName: «&amp;#039; .. fullName .. &amp;#039;»: have «Im Fa» match&amp;#039; );&lt;br /&gt;
		return  mw.ustring.sub( i, 1, 1 ) .. &amp;#039;.&amp;amp;nbsp;&amp;#039; .. f;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	mw.log( &amp;#039;Unmatched any pattern: «&amp;#039; .. fullName .. &amp;#039;»&amp;#039; );&lt;br /&gt;
	return fullName;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderSource( frame )&lt;br /&gt;
	p.currentFrame = frame;&lt;br /&gt;
&lt;br /&gt;
	local arg = frame.args[1];&lt;br /&gt;
	local refAnchor = frame.args[&amp;#039;ref&amp;#039;];&lt;br /&gt;
	local refAnchorYear = frame.args[&amp;#039;ref-year&amp;#039;];&lt;br /&gt;
	local args = {};&lt;br /&gt;
	args.refAnchor = frame.args[&amp;#039;ref&amp;#039;];&lt;br /&gt;
	args.refAnchorYear = frame.args[&amp;#039;ref-year&amp;#039;];&lt;br /&gt;
	args.part = frame.args[&amp;#039;part&amp;#039;];&lt;br /&gt;
	args.pages = frame.args[&amp;#039;pages&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
	return p.renderSourceImpl( mw.text.trim( arg ), args );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderSourceImpl( entityId, args )&lt;br /&gt;
	args = args or {};&lt;br /&gt;
&lt;br /&gt;
	local snaks = {};&lt;br /&gt;
	snaks.P248 = { toWikibaseEntityIdSnak( &amp;#039;P248&amp;#039;, entityId ) };&lt;br /&gt;
	copyArgsToSnaks( args, snaks );&lt;br /&gt;
&lt;br /&gt;
	local rendered = renderReferenceImpl( mw.wikibase.getEntity(), { snaks = snaks }, args.refAnchor, args.refAnchorYear );&lt;br /&gt;
	if ( rendered ) then return rendered.text end;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderReference( frame, currentEntity, reference )&lt;br /&gt;
	p.currentFrame = frame;&lt;br /&gt;
&lt;br /&gt;
	-- template call&lt;br /&gt;
	if ( frame and not currentEntity and not reference ) then&lt;br /&gt;
		local args = frame.args;&lt;br /&gt;
		if ( #frame.args == 0 ) then&lt;br /&gt;
			args = frame:getParent().args;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local snaks = {};&lt;br /&gt;
&lt;br /&gt;
		if ( args[1] ) then&lt;br /&gt;
			snaks.P248 = { toWikibaseEntityIdSnak( &amp;quot;P248&amp;quot;, args[1] ) };&lt;br /&gt;
		end&lt;br /&gt;
		copyArgsToSnaks( args, snaks );&lt;br /&gt;
&lt;br /&gt;
		currentEntity = mw.wikibase.getEntity();&lt;br /&gt;
		reference = { snaks = snaks };&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rendered = renderReferenceImpl( currentEntity, reference );&lt;br /&gt;
&lt;br /&gt;
	if ( not rendered ) then&lt;br /&gt;
		return &amp;#039;&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result;&lt;br /&gt;
	local code = rendered.code or rendered.text;&lt;br /&gt;
	result = frame:extensionTag( &amp;#039;ref&amp;#039;, rendered.text, {name = code} ) .. &amp;#039;[[Category:Википедия:Статьи с источниками из Викиданных]]&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
	return result;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function renderReferenceImpl( currentEntity, reference, refAnchor, refAnchorYear )&lt;br /&gt;
	if ( not reference.snaks ) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- контекст, содержит также кеш элементов&lt;br /&gt;
	local context = {&lt;br /&gt;
		cache = {},&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- данные в простом формате, согласованном с модулями формирования библиографического описания&lt;br /&gt;
	local data = {};&lt;br /&gt;
&lt;br /&gt;
    -- забрать данные из reference&lt;br /&gt;
    populateDataFromClaims( context, nil, reference.snaks, data )&lt;br /&gt;
&lt;br /&gt;
	-- update ref name with ref-specific properties&lt;br /&gt;
	if ( data.code ) then&lt;br /&gt;
		if ( data.part ) then data.code = data.code .. &amp;#039;-&amp;#039; .. getSingle( data.part ) end&lt;br /&gt;
		if ( data.pages ) then data.code = data.code .. &amp;#039;-&amp;#039; .. getSingle( data.pages ) end&lt;br /&gt;
		if ( data.volume ) then data.code = data.code .. &amp;#039;-&amp;#039; .. getSingle( data.volume ) end&lt;br /&gt;
		if ( data.issue ) then data.code = data.code .. &amp;#039;-&amp;#039; .. getSingle( data.issue ) end&lt;br /&gt;
		if ( data.url ) then data.code = data.code .. &amp;#039;-&amp;#039; .. getSingle( data.url ) end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	expandSpecials( context, currentEntity, reference, data );&lt;br /&gt;
&lt;br /&gt;
	local sourceEntity = nil;&lt;br /&gt;
	if ( data.sourceId ) then&lt;br /&gt;
		sourceEntity = getEntity( context, data.sourceId );&lt;br /&gt;
		if ( sourceEntity ) then&lt;br /&gt;
			populateSourceDataImpl( context, sourceEntity, data );&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( data.publication ) then&lt;br /&gt;
		expandPublication( context, sourceEntity, data );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	expandBookSeries( context, data );&lt;br /&gt;
&lt;br /&gt;
	if ( next( data ) == nil ) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rendered;&lt;br /&gt;
	if ( p.short ) then&lt;br /&gt;
		rendered = renderShortReference( data );&lt;br /&gt;
		if ( mw.ustring.len( rendered.text ) == 0 ) then&lt;br /&gt;
			return nil;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	else&lt;br /&gt;
		rendered = renderSource( context, data );&lt;br /&gt;
		if ( mw.ustring.len( rendered.text ) == 0 ) then&lt;br /&gt;
			return nil;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if ( refAnchor ) then&lt;br /&gt;
			local anchorValue = &amp;#039;CITEREF&amp;#039; .. refAnchor .. ( coalesce( refAnchorYear, data.year ) or &amp;#039;&amp;#039; );&lt;br /&gt;
			rendered.text = &amp;#039;&amp;lt;span class=&amp;quot;citation&amp;quot; id=&amp;quot;&amp;#039; .. mw.uri.anchorEncode( anchorValue ) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. rendered.text .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return rendered;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>חלוקת קונטרסים</name></author>
	</entry>
</feed>