<?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%3AWikidata.table</id>
	<title>Модуль:Wikidata.table - История изменений</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%3AWikidata.table"/>
	<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:Wikidata.table&amp;action=history"/>
	<updated>2026-04-21T18:11:23Z</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:Wikidata.table&amp;diff=238377&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:Wikidata.table&amp;diff=238377&amp;oldid=prev"/>
		<updated>2025-07-27T15:36:18Z</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-238376:rev-238377 --&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:Wikidata.table&amp;diff=238376&amp;oldid=prev</id>
		<title>Буквица&gt;Туча: +second</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:Wikidata.table&amp;diff=238376&amp;oldid=prev"/>
		<updated>2016-12-01T12:39:09Z</updated>

		<summary type="html">&lt;p&gt;+second&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p={}&lt;br /&gt;
&lt;br /&gt;
-- функция для оформления таблицы&lt;br /&gt;
function p.table(formattedClaims,context, options )&lt;br /&gt;
	options.column = (options.column and tonumber(options.column)) or 100&lt;br /&gt;
    	&lt;br /&gt;
	-- создание текстовой строки со списком оформленых заявлений в табличном виде&lt;br /&gt;
	local out = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
	if(options.class) then out:attr(&amp;#039;class&amp;#039;, options.class) end&lt;br /&gt;
	if(options.style) then out:attr(&amp;#039;style&amp;#039;, options.style) end&lt;br /&gt;
	if(options.caption) then out:tag(&amp;#039;caption&amp;#039;):wikitext(options.caption) end&lt;br /&gt;
	local tr1&lt;br /&gt;
	local tr2&lt;br /&gt;
   	for i, k in ipairs(formattedClaims) do&lt;br /&gt;
   		if(i%options.column==1) then&lt;br /&gt;
   			tr1=out:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
   			if(options[&amp;#039;th.class&amp;#039;]) then tr1:addClass(options[&amp;#039;th.class&amp;#039;]) end&lt;br /&gt;
   			if(options[&amp;#039;th.style&amp;#039;]) then tr1:attr(&amp;#039;style&amp;#039;, options[&amp;#039;th.style&amp;#039;]) end&lt;br /&gt;
			tr2=out:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			if(options[&amp;#039;tr.class&amp;#039;]) then tr2:addClass(options[&amp;#039;tr.class&amp;#039;]) end&lt;br /&gt;
			if(options[&amp;#039;tr.style&amp;#039;]) then tr2:attr(&amp;#039;style&amp;#039;, options[&amp;#039;tr.style&amp;#039;]) end&lt;br /&gt;
   		end&lt;br /&gt;
   		tr1:tag(&amp;#039;th&amp;#039;):wikitext(k[1])&lt;br /&gt;
   		tr2:tag(&amp;#039;td&amp;#039;):wikitext(k[2])&lt;br /&gt;
    end&lt;br /&gt;
    return tostring(out)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- функция для оформления графика (взято из Модуль:Statistical)&lt;br /&gt;
function p.graph(formattedClaims,context, options )&lt;br /&gt;
	local tempPopulation = nil&lt;br /&gt;
	local tempYears = nil&lt;br /&gt;
	for _,v in ipairs(formattedClaims) do &lt;br /&gt;
		tempPopulation = (tempPopulation and tempPopulation .. &amp;quot;,&amp;quot; or &amp;quot;&amp;quot;) .. v[2] &lt;br /&gt;
		tempYears = (tempYears and tempYears .. &amp;quot;,&amp;quot; or &amp;quot;&amp;quot;) .. v[1]&lt;br /&gt;
	end&lt;br /&gt;
	local linePlot = require(&amp;#039;Модуль:Graph&amp;#039;).chartWrapper&lt;br /&gt;
	local Diagram = {&lt;br /&gt;
		[&amp;#039;height&amp;#039;] = options.height or 250,&lt;br /&gt;
		[&amp;#039;width&amp;#039;] = options.width or 400,&lt;br /&gt;
		[&amp;#039;y&amp;#039;] = tempPopulation,&lt;br /&gt;
		[&amp;#039;x&amp;#039;] = tempYears,&lt;br /&gt;
		[&amp;#039;yAxisMin&amp;#039;] =  options.yAxisMin or 0&lt;br /&gt;
	}&lt;br /&gt;
	local cframe = mw.getCurrentFrame()&lt;br /&gt;
	local json = linePlot(cframe:newChild{ title=cframe.title, args = Diagram}:newChild{})&lt;br /&gt;
	return cframe:callParserFunction( &amp;#039;#tag:graph&amp;#039;, json )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- функция для оформления ступенчатого графика (взято из Модуль:Statistical)&lt;br /&gt;
function p.gist(formattedClaims,context, options )&lt;br /&gt;
	local tempHeight = 320&lt;br /&gt;
	local tempWidth = 800&lt;br /&gt;
	local tempMod = math.fmod (#formattedClaims, 5)&lt;br /&gt;
	if #formattedClaims &amp;lt; 40 then &lt;br /&gt;
		tempHeight = 200  + 170 * (#formattedClaims - 1) / 40&lt;br /&gt;
		tempWidth = 200 + 600 * (#formattedClaims - 1) / 40&lt;br /&gt;
	end&lt;br /&gt;
	local tempGroup = &amp;quot;&amp;quot;&lt;br /&gt;
	local tempTooltip = &amp;quot;&amp;quot;&lt;br /&gt;
	local tempLegend = &amp;quot;&amp;quot;&lt;br /&gt;
	for k,v in pairs(formattedClaims) do &lt;br /&gt;
		tempGroup = tempGroup .. v[2] .. &amp;quot;:&amp;quot;&lt;br /&gt;
		tempTooltip = tempTooltip .. v[2] .. &amp;quot; (&amp;quot; .. v[1] .. &amp;quot;):&amp;quot;&lt;br /&gt;
		if #formattedClaims &amp;lt; 5 or math.fmod (k, 5) == tempMod  then tempLegend = tempLegend .. v[1] end&lt;br /&gt;
		tempLegend = tempLegend .. &amp;quot;:&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	tempGroup = string.sub (tempGroup, 1, string.len (tempGroup)-1)&lt;br /&gt;
	tempTooltip = string.sub (tempTooltip, 1, string.len (tempTooltip)-1)&lt;br /&gt;
	tempLegend = string.sub (tempLegend, 1, string.len (tempLegend)-1)&lt;br /&gt;
    local barChart = require(&amp;#039;Модуль:Chart&amp;#039;)[&amp;#039;bar chart&amp;#039;];&lt;br /&gt;
	local Diagram = {&lt;br /&gt;
		[&amp;#039;height&amp;#039;] = options.height or tempHeight,&lt;br /&gt;
		[&amp;#039;width&amp;#039;] = options.width or tempWidth,&lt;br /&gt;
		[&amp;#039;group 1&amp;#039;] = tempGroup,&lt;br /&gt;
		[&amp;#039;tooltip 1&amp;#039;] = tempTooltip,&lt;br /&gt;
		[&amp;#039;colors&amp;#039;] = options.colors,&lt;br /&gt;
		[&amp;#039;x legends&amp;#039;] = tempLegend,&lt;br /&gt;
		[&amp;#039;group names&amp;#039;] = options[&amp;#039;group names&amp;#039;],&lt;br /&gt;
		[&amp;#039;default color&amp;#039;] = options[&amp;#039;default color&amp;#039;]&lt;br /&gt;
		}    	&lt;br /&gt;
	local cframe = mw.getCurrentFrame();&lt;br /&gt;
	return barChart(cframe:newChild{ title=cframe.title, args = Diagram})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- взять только последнее значение &lt;br /&gt;
function p.last(formattedClaims,context, options )&lt;br /&gt;
	return formattedClaims[#formattedClaims][1]&lt;br /&gt;
end&lt;br /&gt;
function p.last2(formattedClaims,context, options )&lt;br /&gt;
	return formattedClaims[#formattedClaims][2]&lt;br /&gt;
end&lt;br /&gt;
function p.second(formattedClaims,context, options )&lt;br /&gt;
	local result = &amp;quot;&amp;quot;&lt;br /&gt;
	if(#formattedClaims&amp;gt;1) then result = &amp;quot;&amp;lt;!-- предыдущее значение &amp;quot;..formattedClaims[#formattedClaims-1][2]..&amp;quot;--&amp;gt;&amp;quot; end&lt;br /&gt;
	return result .. formattedClaims[#formattedClaims][2]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.formatTable( context, options )&lt;br /&gt;
	if ( not context ) then error( &amp;#039;context not specified&amp;#039; ); end;&lt;br /&gt;
	if ( not options ) then error( &amp;#039;options not specified&amp;#039; ); end;&lt;br /&gt;
	if ( not options.entity ) then error( &amp;#039;options.entity missing&amp;#039; ); end;&lt;br /&gt;
	&lt;br /&gt;
	if(options.sort) then require(&amp;#039;Модуль:Wikidata.sort&amp;#039;).changeselectClaims(context,options) end&lt;br /&gt;
&lt;br /&gt;
    local claims = context.selectClaims( options, options.property );&lt;br /&gt;
    if (claims == nil) then&lt;br /&gt;
        return &amp;#039;&amp;#039; --TODO error?&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Обход всех заявлений утверждения и с накоплением оформленых предпочтительных &lt;br /&gt;
    -- заявлений в таблице&lt;br /&gt;
    local formattedClaims = {}&lt;br /&gt;
&lt;br /&gt;
    for _, claim in ipairs(claims) do&lt;br /&gt;
        local formattedStatement = context.formatStatement( options, claim )&lt;br /&gt;
        local formattedStatement2 = context.formatStatementDefault( context, options, claim )&lt;br /&gt;
        -- здесь может вернуться либо оформленный текст заявления&lt;br /&gt;
        -- либо строка ошибки nil похоже никогда не возвращается&lt;br /&gt;
        if (formattedStatement and formattedStatement2) then&lt;br /&gt;
            table.insert(formattedClaims, {formattedStatement,formattedStatement2})&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	-- если ничего нет, то ничего и не выдавать&lt;br /&gt;
	if(#formattedClaims&amp;lt;=0) then return &amp;#039;&amp;#039; end&lt;br /&gt;
    &lt;br /&gt;
    options.tablefunction = options.tablefunction  or &amp;quot;table&amp;quot;&lt;br /&gt;
    return p[options.tablefunction](formattedClaims,context, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Буквица&gt;Туча</name></author>
	</entry>
</feed>