<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://bukvica.org/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWikidataTree</id>
	<title>Модуль:WikidataTree - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://bukvica.org/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AWikidataTree"/>
	<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WikidataTree&amp;action=history"/>
	<updated>2026-04-26T02:57:45Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WikidataTree&amp;diff=238369&amp;oldid=prev</id>
		<title>Karaby: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WikidataTree&amp;diff=238369&amp;oldid=prev"/>
		<updated>2025-07-27T15:36: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;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;ru&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;Версия от 15:36, 27 июля 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&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;!-- diff cache key wiki:diff:1.41:old-238368:rev-238369 --&gt;
&lt;/table&gt;</summary>
		<author><name>Karaby</name></author>
	</entry>
	<entry>
		<id>https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WikidataTree&amp;diff=238368&amp;oldid=prev</id>
		<title>Буквица&gt;The Fox Bot: Защитил страницу Модуль:WikidataTree: критический шаблон или модуль: согласно Служебная:Постоянная ссылка/143835923#Промежуточный итог ([Редактирование=только автоподтверждённые] (бессрочно) [Переименование=только автоподтверждённые] (бессрочно))</title>
		<link rel="alternate" type="text/html" href="https://bukvica.org/w/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WikidataTree&amp;diff=238368&amp;oldid=prev"/>
		<updated>2025-03-05T16:48:36Z</updated>

		<summary type="html">&lt;p&gt;Защитил страницу &lt;a href=&quot;/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:WikidataTree&quot; title=&quot;Модуль:WikidataTree&quot;&gt;Модуль:WikidataTree&lt;/a&gt;: &lt;a href=&quot;/w/index.php?title=%D0%92%D0%9F:%D0%9A%D0%A8&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;ВП:КШ (страница не существует)&quot;&gt;критический шаблон или модуль&lt;/a&gt;: согласно &lt;a href=&quot;/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0/143835923#Промежуточный_итог&quot; title=&quot;Служебная:Постоянная ссылка/143835923&quot;&gt;Служебная:Постоянная ссылка/143835923&lt;/a&gt; ([Редактирование=только автоподтверждённые] (бессрочно) [Переименование=только автоподтверждённые] (бессрочно))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local WDS = require( &amp;#039;Module:WikidataSelectors&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
--[[ &lt;br /&gt;
  Функция для оформления идентификатора сущности&lt;br /&gt;
&lt;br /&gt;
  Принимает: строку индентификатора (типа Q42) и таблицу параметров,&lt;br /&gt;
  Возвращает: строку оформленного текста&lt;br /&gt;
]]&lt;br /&gt;
function p.formatEntityId( entityId, options )&lt;br /&gt;
	-- получение локализованного названия &lt;br /&gt;
    local label = nil&lt;br /&gt;
    if options and options.text and options.text ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        label = options.text&lt;br /&gt;
    else&lt;br /&gt;
		label = mw.wikibase.label( entityId )&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	-- получение ссылки по идентификатору&lt;br /&gt;
    local link = mw.wikibase.sitelink( entityId )&lt;br /&gt;
    if link then&lt;br /&gt;
        if label then&lt;br /&gt;
            return &amp;#039;[[&amp;#039; .. link .. &amp;#039;|&amp;#039; .. label .. &amp;#039;]]&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;#039;[[&amp;#039; .. link .. &amp;#039;]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if label then&lt;br /&gt;
        -- красная ссылка&lt;br /&gt;
        if not mw.title.new( label ).exists then&lt;br /&gt;
            return options.frame:expandTemplate{&lt;br /&gt;
                title = &amp;#039;не переведено 5&amp;#039;,&lt;br /&gt;
                args = { label, &amp;#039;&amp;#039;, &amp;#039;d&amp;#039;, entityId }&lt;br /&gt;
            }&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- одноимённая статья уже существует - выводится текст и ссылка на ВД&lt;br /&gt;
        return &amp;#039;&amp;lt;span class=&amp;quot;iw&amp;quot; data-title=&amp;quot;&amp;#039; .. label .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. label&lt;br /&gt;
        	.. &amp;#039;&amp;lt;sup class=&amp;quot;noprint&amp;quot;&amp;gt;[[:d:&amp;#039; .. entityId .. &amp;#039;|[вд]]]&amp;lt;/sup&amp;gt;&amp;#039;&lt;br /&gt;
        	.. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    -- сообщение об отсутвии локализованного названия&lt;br /&gt;
    -- not good, but better than nothing&lt;br /&gt;
    return &amp;#039;[[:d:&amp;#039; .. entityId .. &amp;#039;|&amp;#039; .. entityId .. &amp;#039;]]&amp;#039;&lt;br /&gt;
    	.. &amp;#039;&amp;lt;span style=&amp;quot;border-bottom: 1px dotted; cursor: help; white-space: nowrap&amp;quot;&amp;#039;&lt;br /&gt;
    	.. &amp;#039; title=&amp;quot;В Викиданных нет русской подписи к элементу. Вы можете помочь, указав русский вариант подписи.&amp;quot;&amp;#039;&lt;br /&gt;
    	.. &amp;#039;&amp;gt;?&amp;lt;/span&amp;gt;&amp;#039; -- .. categoryLinksToEntitiesWithMissingLabel&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  Выбирает свойства по property id, фильтруя их по рангу, и возвращает первое из значений&lt;br /&gt;
]]&lt;br /&gt;
local function selectFirstClaim( entityId, propertySelector )&lt;br /&gt;
	if not entityId then&lt;br /&gt;
		error( &amp;#039;entityId is missing&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if not propertySelector then&lt;br /&gt;
		error( &amp;#039;propertySelector not specified&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local claims = WDS.load( entityId, propertySelector )&lt;br /&gt;
	if claims and claims[ 1 ] then&lt;br /&gt;
		return claims[ 1 ]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function itemString( frame, entityId, formatEntityId )&lt;br /&gt;
	return formatEntityId( entityId, { frame = frame } )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ &lt;br /&gt;
  Функция для формирования дерева по свойству для вышестоящего элменента для текущей страницы&lt;br /&gt;
]]&lt;br /&gt;
function p.parentTree( frame )&lt;br /&gt;
	local entityId = frame.args.from&lt;br /&gt;
	if not entityId or entityId == &amp;#039;&amp;#039; then&lt;br /&gt;
		entityId = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	end&lt;br /&gt;
	if not entityId then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local list = {}&lt;br /&gt;
	local level = 1&lt;br /&gt;
&lt;br /&gt;
	local parentProperty = &amp;#039;P279&amp;#039;&lt;br /&gt;
	if frame.args.parent then&lt;br /&gt;
		parentProperty = string.upper( frame.args.parent )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local formatterFunction = itemString&lt;br /&gt;
	if frame.args[ &amp;#039;value-module&amp;#039; ] then&lt;br /&gt;
		local formatter = require( &amp;#039;Module:&amp;#039; .. frame.args[ &amp;#039;value-module&amp;#039; ] )&lt;br /&gt;
		formatterFunction = formatter[ frame.args[ &amp;#039;value-function&amp;#039; ] ]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	while true do&lt;br /&gt;
		list[ level ] = formatterFunction( frame, entityId, p.formatEntityId )&lt;br /&gt;
		level = level + 1&lt;br /&gt;
&lt;br /&gt;
		parentClaim = selectFirstClaim( entityId, parentProperty )&lt;br /&gt;
		if ( not parentClaim&lt;br /&gt;
			or not parentClaim.mainsnak&lt;br /&gt;
			or not parentClaim.mainsnak.datavalue&lt;br /&gt;
			or not parentClaim.mainsnak.datavalue.value&lt;br /&gt;
			or not parentClaim.mainsnak.datavalue.value.id&lt;br /&gt;
		) then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		entityId = parentClaim.mainsnak.datavalue.value.id&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local out = &amp;#039;&amp;#039;&lt;br /&gt;
	local maxLevel = level&lt;br /&gt;
	local tab = frame.args[ &amp;#039;tab&amp;#039; ]&lt;br /&gt;
	if tab and tab ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		for level, value in pairs( list ) do&lt;br /&gt;
			out = string.rep( tab, maxLevel - level ) .. value .. &amp;#039;\n&amp;#039; .. out&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		for level, value in pairs( list ) do&lt;br /&gt;
			out = value .. &amp;#039;\n&amp;#039; .. out&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local before = frame.args[ &amp;#039;before&amp;#039; ]&lt;br /&gt;
	if before and before ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		out = before .. out;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local after = frame.args[ &amp;#039;after&amp;#039; ]&lt;br /&gt;
	if after and after ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		out = out .. after;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Буквица&gt;The Fox Bot</name></author>
	</entry>
</feed>