<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://ru.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5%2Fwikidata</id>
	<title>Модуль:Источники по теме/wikidata - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://ru.ru-skazki.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5%2Fwikidata"/>
	<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5/wikidata&amp;action=history"/>
	<updated>2026-04-11T15:45:06Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5/wikidata&amp;diff=15813&amp;oldid=prev</id>
		<title>Импортёр: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5/wikidata&amp;diff=15813&amp;oldid=prev"/>
		<updated>2024-05-02T08:21:15Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:21, 2 мая 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Импортёр</name></author>
	</entry>
	<entry>
		<id>http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5/wikidata&amp;diff=15812&amp;oldid=prev</id>
		<title>ru&gt;Andras: Новая страница: «local RU = &#039;ru&#039; local RUWIKISOURCE = &#039;ruwikisource&#039;  local wd = require(&quot;Module:WD&quot;) local util = require(&quot;Module:Util&quot;) local encyclopediasData = util.get_json(&quot;MediaWiki:Encyclopedias settings.json&quot;) -- настройки заголовков энциклопедий и их id в ВД local encyclopedias_sites_cfg = util.get_json(&quot;MediaWiki:Encyclopedias sites.json&quot;) -- настройки энциклопедий на внеших сайтах local p = {...»</title>
		<link rel="alternate" type="text/html" href="http://ru.ru-skazki.ru/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BF%D0%BE_%D1%82%D0%B5%D0%BC%D0%B5/wikidata&amp;diff=15812&amp;oldid=prev"/>
		<updated>2023-10-22T18:32:38Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «local RU = &amp;#039;ru&amp;#039; local RUWIKISOURCE = &amp;#039;ruwikisource&amp;#039;  local wd = require(&amp;quot;Module:WD&amp;quot;) local util = require(&amp;quot;Module:Util&amp;quot;) local encyclopediasData = util.get_json(&amp;quot;MediaWiki:Encyclopedias settings.json&amp;quot;) -- настройки заголовков энциклопедий и их id в ВД local encyclopedias_sites_cfg = util.get_json(&amp;quot;MediaWiki:Encyclopedias sites.json&amp;quot;) -- настройки энциклопедий на внеших сайтах local p = {...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local RU = &amp;#039;ru&amp;#039;&lt;br /&gt;
local RUWIKISOURCE = &amp;#039;ruwikisource&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local wd = require(&amp;quot;Module:WD&amp;quot;)&lt;br /&gt;
local util = require(&amp;quot;Module:Util&amp;quot;)&lt;br /&gt;
local encyclopediasData = util.get_json(&amp;quot;MediaWiki:Encyclopedias settings.json&amp;quot;) -- настройки заголовков энциклопедий и их id в ВД&lt;br /&gt;
local encyclopedias_sites_cfg = util.get_json(&amp;quot;MediaWiki:Encyclopedias sites.json&amp;quot;) -- настройки энциклопедий на внеших сайтах&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.getQualifierValues(statement, qualifierName)&lt;br /&gt;
	local result = {}&lt;br /&gt;
	if statement then&lt;br /&gt;
		local q = statement.qualifiers&lt;br /&gt;
		if q and q[qualifierName] ~= nil then&lt;br /&gt;
			for _, qualifier in pairs(q[qualifierName]) do&lt;br /&gt;
				local d = qualifier.datavalue&lt;br /&gt;
				if d and d.type ~= nil and d.value ~= nil then&lt;br /&gt;
					if d.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
						result[#result + 1] = d.value[&amp;quot;id&amp;quot;]&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- deprecated, не используется&lt;br /&gt;
local function check_backlink(entity)&lt;br /&gt;
	local has_backlink&lt;br /&gt;
	if entity and entity.claims and entity.claims.P1343 then&lt;br /&gt;
		for _, refs in pairs(entity.claims.P1343) do&lt;br /&gt;
			if refs.qualifiers and refs.qualifiers.P805 then&lt;br /&gt;
				for _, ref in pairs(refs.qualifiers.P805) do&lt;br /&gt;
					if ref.datavalue and ref.datavalue.value and ref.datavalue.value.id then&lt;br /&gt;
						local ref_id = ref.datavalue.value.id&lt;br /&gt;
						if ref_id == page.entity.id then has_backlink = true break end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if has_backlink then break end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return has_backlink&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.get_sitelinks_from_entity(entity, result)&lt;br /&gt;
	-- populate from entity interwiki&lt;br /&gt;
	local result = result or {}&lt;br /&gt;
	local sitelinks = entity.sitelinks&lt;br /&gt;
	if sitelinks ~= nil then&lt;br /&gt;
		for sitecode, sitelink in pairs(sitelinks) do&lt;br /&gt;
			-- mw.log(&amp;quot;  &amp;quot;..sitecode..&amp;quot; = &amp;quot;..sitelink.title)&lt;br /&gt;
			if result[sitecode] == nil then&lt;br /&gt;
				result[sitecode] = sitelink.title&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if result[&amp;#039;commons&amp;#039;] == nil then&lt;br /&gt;
		local commonsCategories = wd.getClaimValues_ranked(entity, &amp;#039;P373&amp;#039;)&lt;br /&gt;
		for _, commonsCategory in pairs(commonsCategories) do&lt;br /&gt;
			result[&amp;#039;commons&amp;#039;] = &amp;#039;Category:&amp;#039; .. commonsCategory&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		-- если commons нет в интервиках и в P373, то использовать изображение из P18&lt;br /&gt;
		if result[&amp;#039;commons&amp;#039;] == nil then&lt;br /&gt;
			local commonsCategories = wd.getClaimValues_ranked(entity, &amp;#039;P18&amp;#039;)&lt;br /&gt;
			for _, commonsCategory in pairs(commonsCategories) do&lt;br /&gt;
				result[&amp;#039;commons&amp;#039;] = &amp;#039;File:&amp;#039; .. commonsCategory&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.get_ext_enc_sites(entity, result)&lt;br /&gt;
	local result = page.external_sites&lt;br /&gt;
	for _, site in pairs(encyclopedias_sites_cfg) do&lt;br /&gt;
		local enc_name, property_id, url_pattern = site.argument, site.property, site.url_pattern&lt;br /&gt;
		local id&lt;br /&gt;
		local ids = wd.getClaimValues_ranked(entity, property_id); if ids then id = ids[1] end&lt;br /&gt;
		-- local ids_sts = entity:getBestStatements(site.property); if ids_sts then id = wd.get_statement_value(ids_sts, wd.DT_EXT_ID, wd.VT_STRING)[1] end&lt;br /&gt;
		if id and not result[enc_name] then&lt;br /&gt;
			site.wikilink = util.make_ext_link(url_pattern:gsub(&amp;quot;$1&amp;quot;, id), enc_name)&lt;br /&gt;
			site.id = id&lt;br /&gt;
			result[enc_name] = site&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- загрузка ссылок из элементов в списке указанного свойства&lt;br /&gt;
local function get_links_from_items_of_property(entity, property_id)&lt;br /&gt;
	local targets = wd.getClaimValues_ranked(entity, property_id)&lt;br /&gt;
	-- mw.logObject(targets, &amp;quot;targets&amp;quot;)&lt;br /&gt;
	if #targets &amp;gt; 0 then&lt;br /&gt;
		for key, entity_id in pairs(targets) do&lt;br /&gt;
			if property_id == &amp;#039;P921&amp;#039; then --  P921 &amp;quot;основная тема произведения&amp;quot;&lt;br /&gt;
				page.has_topic_property = true&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local entity_target = wd.get_entity_by_id(entity_id)&lt;br /&gt;
			if entity_target then&lt;br /&gt;
				p.populate_data(entity_target)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- загрузка данных из элемента страницы&lt;br /&gt;
local is_topic_entity_reached = false&lt;br /&gt;
local is_edition_as_topic_reached = false&lt;br /&gt;
function p.populate_data(entity)&lt;br /&gt;
	if not entity or not entity.claims then return end&lt;br /&gt;
	&lt;br /&gt;
	if wd.has_valid_item_value(entity, &amp;quot;P31&amp;quot;, &amp;#039;Q3331189&amp;#039;) and not is_topic_entity_reached and not is_edition_as_topic_reached then -- Q3331189 &amp;quot;версия или издание&amp;quot;&lt;br /&gt;
		-- Переменные `is_topic_entity_reached` и `is_edition_as_topic_reached` ограничивают глубину подгрузки элементов.&lt;br /&gt;
		-- Проверка: &lt;br /&gt;
		-- На странице [[Ветхий Завет (Макарий)]] [[d:Q4350033]] должна показываться ссылка на [[w:Перевод Библии архимандрита Макария]]. При этом элемент является Q3331189 версией Библии.&lt;br /&gt;
		-- На странице [[ЕЭБЕ/Пешитта]] [[d:Q24922704]] должна показываться ссылка на [[w:Пешитта]]. При этом темой указана &amp;quot;Пешита&amp;quot;, которая является Q3331189 версией Библии.&lt;br /&gt;
		-- Не должно быть перехода на глубокий элемент [[w:Библия]].&lt;br /&gt;
		local sitelinks_ = p.get_sitelinks_from_entity(entity)&lt;br /&gt;
		sitelinks_[&amp;#039;ruwikisource&amp;#039;] = nil&lt;br /&gt;
		if next( sitelinks_ ) then&lt;br /&gt;
			is_edition_as_topic_reached = true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if wd.has_valid_item_value(entity, &amp;quot;P31&amp;quot;, &amp;#039;Q3331189&amp;#039;) and not is_topic_entity_reached and not is_edition_as_topic_reached then -- Q3331189 &amp;quot;версия или издание&amp;quot;&lt;br /&gt;
		-- загрузка из элементов в списке P629 &amp;quot;является изданием или переводом&amp;quot;&lt;br /&gt;
		get_links_from_items_of_property(entity, &amp;quot;P629&amp;quot;) &lt;br /&gt;
		&lt;br /&gt;
	elseif wd.is_encyclopedic_article(entity) and entity.claims[&amp;#039;P921&amp;#039;] and not is_topic_entity_reached then&lt;br /&gt;
		-- для энциклопедических, словарных статей и перенаправлений (P31 in [Q10389811, Q13433827, Q1580166, Q1302249])&lt;br /&gt;
		-- загрузка из элементов в списке P921 &amp;quot;основная тема произведения&amp;quot;&lt;br /&gt;
		if wd.has_valid_item_value(entity, &amp;quot;P31&amp;quot;, &amp;#039;Q1302249&amp;#039;) then -- Q1302249 &amp;quot;перекрёстная ссылка&amp;quot;&lt;br /&gt;
			page.has_xref_property = true&lt;br /&gt;
		end&lt;br /&gt;
		is_topic_entity_reached = true&lt;br /&gt;
		get_links_from_items_of_property(entity, &amp;quot;P921&amp;quot;) &lt;br /&gt;
		&lt;br /&gt;
	else&lt;br /&gt;
		-- загрузка из текущего элемента&lt;br /&gt;
		local label = entity.labels and ((entity.labels.ru and entity.labels.ru.value) or (entity.labels.en and entity.labels.en.value)) or entity.id&lt;br /&gt;
		table.insert( page.sitelinks, { label = label, id = entity.id, data = p.get_sitelinks_from_entity(entity) } )&lt;br /&gt;
		page.sitelinks[#page.sitelinks][&amp;#039;data&amp;#039;][&amp;#039;wikidata&amp;#039;] = entity.id&lt;br /&gt;
		&lt;br /&gt;
		page.encyclopedias_ids = p.get_ids_of_described_encs(entity)&lt;br /&gt;
		&lt;br /&gt;
		p.get_ext_enc_sites(entity)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return page&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- проход P1343 - списка «описывается в источниках»&lt;br /&gt;
function p.get_ids_of_described_encs(entity)&lt;br /&gt;
	local result = page.encyclopedias_ids&lt;br /&gt;
	-- local describedByClaim = wd.getClaimValues_ranked( entity, &amp;#039;P1343&amp;#039; )&lt;br /&gt;
	local describedByClaim = entity:getBestStatements(&amp;#039;P1343&amp;#039;) -- P1343 «описывается в источниках»&lt;br /&gt;
    for _, statement in pairs( describedByClaim ) do&lt;br /&gt;
    	local snak = statement[&amp;quot;mainsnak&amp;quot;]&lt;br /&gt;
	    if snak.datavalue.type == wd.VT_ENTITY_ID  then&lt;br /&gt;
	        local dictId = snak.datavalue.value[&amp;quot;id&amp;quot;]&lt;br /&gt;
    		local qualifiers = p.getQualifierValues(statement, &amp;#039;P805&amp;#039;) -- P805 тема утверждения&lt;br /&gt;
			if qualifiers == nil or #qualifiers == 0 then&lt;br /&gt;
				qualifiers = p.getQualifierValues(statement, &amp;#039;P248&amp;#039;) -- P248 утверждается в (deprecated)&lt;br /&gt;
			end&lt;br /&gt;
			for _, articleId in pairs(qualifiers) do&lt;br /&gt;
				for _, enc in pairs(encyclopediasData) do&lt;br /&gt;
					local dictionaryShortTitle = enc.argument&lt;br /&gt;
					if enc.id == dictId then&lt;br /&gt;
						-- todo: enc.id == dictId не работает для элементов отдельных томов, напр. [[d:Q23892934]], ибо их нет в encyclopediasData. Надо см. наличие P361 &amp;quot;часть от&amp;quot; и сверять с ним, если эти лишние запросы вообще нужны.&lt;br /&gt;
						local dictLinks = result[dictionaryShortTitle]&lt;br /&gt;
						if dictLinks == nil then&lt;br /&gt;
							dictLinks = {}&lt;br /&gt;
							result[dictionaryShortTitle] = dictLinks&lt;br /&gt;
						end&lt;br /&gt;
						dictLinks[articleId] = articleId&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if page.entity and articleId == page.entity.id then page.has_backlink = true end  -- проверка обратной ссылки, используется для категоризации&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
    end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
is_match_pagenames(&amp;quot;ЭСБЕ/Пупкин, Иван Васильевич/ДО&amp;quot;, &amp;quot;ЭСБЕ/$1/ДО&amp;quot;) → &amp;quot;Пупкин, Иван Васильевич&amp;quot;&lt;br /&gt;
is_match_pagenames(&amp;quot;ЭСБЕ/Пупкин, Иван Васильевич&amp;quot;,    &amp;quot;ЭСБЕ/$1/ДО&amp;quot;) → nil&lt;br /&gt;
]]&lt;br /&gt;
function p.is_match_pagenames(s_sitelink, s_pattern)&lt;br /&gt;
	local s_regexp = string.gsub(s_pattern, &amp;quot;%(&amp;quot;, &amp;quot;%%(&amp;quot;)&lt;br /&gt;
	s_regexp = string.gsub(s_regexp, &amp;quot;%)&amp;quot;, &amp;quot;%%)&amp;quot;)&lt;br /&gt;
	s_regexp = &amp;quot;^&amp;quot; .. string.gsub(s_regexp, &amp;quot;$1&amp;quot;, &amp;quot;(.+)&amp;quot;) .. &amp;quot;$&amp;quot;&lt;br /&gt;
	--	mw.log(&amp;quot;regexp: &amp;quot;..s_regexp)&lt;br /&gt;
	return string.match(s_sitelink, s_regexp)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
{{#invoke:Другие источники|test_is_match_pagenames|ЭСБЕ/Пупкин, Иван Васильевич/ДО|ЭСБЕ/$1/ДО}} → &amp;quot;Пупкин, Иван Васильевич&amp;quot;&lt;br /&gt;
{{#invoke:Другие источники|test_is_match_pagenames|МЭСБЕ/Аконит|МЭСБЕ/$1}} → &amp;quot;Аконит&amp;quot;&lt;br /&gt;
{{#invoke:Другие источники|test_is_match_pagenames|ЭСБЕ/Аконит|МЭСБЕ/$1}} → nil&lt;br /&gt;
]]&lt;br /&gt;
local function test_is_match_pagenames(frame)&lt;br /&gt;
	local s_sitelink = tostring(frame.args[1])&lt;br /&gt;
	local s_pattern = tostring(frame.args[2])&lt;br /&gt;
	local s_title = p.is_match_pagenames(s_sitelink, s_pattern)&lt;br /&gt;
	if s_title == nil then&lt;br /&gt;
		return &amp;quot;nil&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;quot;&amp;#039; .. s_title .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function getDefaultTitle()&lt;br /&gt;
	for _, enc in pairs(encyclopediasData) do&lt;br /&gt;
		if enc.project == RUWIKISOURCE and enc.titleDO then&lt;br /&gt;
			local DO = (enc.default == &amp;#039;DO&amp;#039;)&lt;br /&gt;
			local titleVT, titleDO = enc.titleVT, enc.titleDO&lt;br /&gt;
			local nameVT, nameDO = p.is_match_pagenames(page.title, titleVT), p.is_match_pagenames(page.title, titleDO)&lt;br /&gt;
			if nameDO then&lt;br /&gt;
				if DO then return titleDO:gsub(&amp;#039;$1&amp;#039;, nameDO) else return titleVT:gsub(&amp;#039;$1&amp;#039;, nameDO) end&lt;br /&gt;
			elseif nameVT then&lt;br /&gt;
				if DO then return titleDO:gsub(&amp;#039;$1&amp;#039;, nameVT) else return titleVT:gsub(&amp;#039;$1&amp;#039;, nameVT) end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return page.title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.getLink(enc, entityId, isPRS)&lt;br /&gt;
	if enc.project ~= RUWIKISOURCE then&lt;br /&gt;
		local entity = wd.get_entity_by_id(entityId)&lt;br /&gt;
		if not entity then&lt;br /&gt;
			mw.log(&amp;quot;Невозможно загрузить &amp;quot; .. tostring(entityId))&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		if (entity.sitelinks == nil) or (entity.sitelinks[enc.project] == nil) then&lt;br /&gt;
			mw.log(&amp;quot;В &amp;quot; .. tostring(entityId) .. &amp;quot; нет ссылки на &amp;quot; .. enc.project .. &amp;quot; для &amp;quot; .. enc.argument)&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		return &amp;#039;:&amp;#039; .. enc.projectCode .. entity.sitelinks[enc.project].title&lt;br /&gt;
	end&lt;br /&gt;
	local s_sitelink = mw.wikibase.sitelink(entityId)&lt;br /&gt;
	if s_sitelink == nil then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local s_primary_pattern = nil&lt;br /&gt;
	local s_secondary_pattern = nil&lt;br /&gt;
	if isPRS then&lt;br /&gt;
		s_primary_pattern = enc.titleDO&lt;br /&gt;
		s_secondary_pattern = enc.titleVT&lt;br /&gt;
	else&lt;br /&gt;
		s_primary_pattern = enc.titleVT&lt;br /&gt;
		s_secondary_pattern = enc.titleDO&lt;br /&gt;
	end&lt;br /&gt;
	-- mw.log(isPRS, s_primary_pattern, s_secondary_pattern, s_sitelink)&lt;br /&gt;
	if p.is_match_pagenames(s_sitelink, s_primary_pattern) ~= nil then -- ссылка из Викиданных соответствует признаку isPRS&lt;br /&gt;
		return s_sitelink -- т.к. ссылка  получена из Викиданных, поверять её существование не надо, просто её возвращаем&lt;br /&gt;
	end&lt;br /&gt;
	local s_article_title&lt;br /&gt;
	if enc.titleDO then&lt;br /&gt;
		s_article_title = p.is_match_pagenames(s_sitelink, s_secondary_pattern)&lt;br /&gt;
	end&lt;br /&gt;
	if not s_article_title then&lt;br /&gt;
		-- ссылка не соответствует ни titleDO, ни titleVT&lt;br /&gt;
		mw.log(&amp;quot;ссылка на &amp;quot; .. enc.title .. &amp;quot; нарушает правила именования: &amp;quot; .. s_sitelink)&lt;br /&gt;
		return s_sitelink&lt;br /&gt;
	end&lt;br /&gt;
	local s_link&lt;br /&gt;
	if enc.id == &amp;quot;Q1970746&amp;quot; then -- для ТСД&lt;br /&gt;
		s_link = &amp;quot;ТСД/&amp;quot; .. s_article_title&lt;br /&gt;
		if isPRS then&lt;br /&gt;
			s_link = s_link .. &amp;quot;/ДО&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		s_link = string.gsub(s_primary_pattern, &amp;quot;$1&amp;quot;, s_article_title)&lt;br /&gt;
	end&lt;br /&gt;
	if mw.title.new(s_link, 0).exists then&lt;br /&gt;
		return s_link&lt;br /&gt;
	else&lt;br /&gt;
		return s_sitelink&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- загружает элемент текущей страницы&lt;br /&gt;
function p.get_page_entity()&lt;br /&gt;
	entity = mw.wikibase.getEntity()&lt;br /&gt;
	if not entity then&lt;br /&gt;
		local default_title = getDefaultTitle()&lt;br /&gt;
			entity = mw.wikibase.getEntity(mw.wikibase.getEntityIdForTitle(default_title))&lt;br /&gt;
	end&lt;br /&gt;
	return entity&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- загружает элемент темы если даны параметры шаблона ВИКИДАННЫЕ или ВИКИПЕДИЯ&lt;br /&gt;
function p.get_page_entity_topic_by_template_arg(args)&lt;br /&gt;
	local topic_id = is(args[&amp;#039;ВИКИДАННЫЕ&amp;#039;])&lt;br /&gt;
	local wp_pagename = is(args[&amp;#039;ВИКИПЕДИЯ&amp;#039;])&lt;br /&gt;
	if topic_id or wp_pagename then&lt;br /&gt;
		if not topic_id then&lt;br /&gt;
			local lang, title = string.match(wp_pagename, &amp;#039;^:?([a-z]+):(.+)&amp;#039;) -- ссылка формата &amp;#039;:код_языка:Название&amp;#039; в параметрах&lt;br /&gt;
			if not lang then&lt;br /&gt;
				lang, title = RU, wp_pagename&lt;br /&gt;
			end&lt;br /&gt;
			topic_id = mw.wikibase.getEntityIdForTitle(title, lang .. &amp;#039;wiki&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		return wd.get_entity_by_id(topic_id)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.get_links(_page)&lt;br /&gt;
	page = _page&lt;br /&gt;
	page.entity = p.get_page_entity()&lt;br /&gt;
	page.entity_topic_by_template_arg = p.get_page_entity_topic_by_template_arg(page.args)  -- элемент темы, указанный в параметрах ВИКИПЕДИЯ/ВИКИДАННЫЕ или в элементе Викиданных &lt;br /&gt;
	page.has_encyclopedic_article_status_in_wd = wd.is_encyclopedic_article(page.entity)&lt;br /&gt;
	&lt;br /&gt;
	local entity = page.entity_topic_by_template_arg or page.entity  -- загружать ссылки из элемента темы если задан, иначе - из элемента страницы&lt;br /&gt;
	p.populate_data(entity)&lt;br /&gt;
	&lt;br /&gt;
	-- mw.logObject(page, &amp;quot;page&amp;quot;)&lt;br /&gt;
	return page&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- проверка переменной, возврат её или nil если пустая&lt;br /&gt;
function is(var) if (var == &amp;#039;&amp;#039; or var == nil) then return nil else return var end end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ru&gt;Andras</name></author>
	</entry>
</feed>