Модуль:Wikidata/Software

Поделись знанием:
< Модуль:Wikidata
Это текущая версия страницы, сохранённая Putnik (обсуждение | вклад) в 18:54, 19 апреля 2015. Вы просматриваете постоянную ссылку на эту версию.

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
 Документация

Содержит функции форматирования для свойств и квалификаторов о программном обеспечении.

formatVersionClaim

Альтернатива formatStatementDefault() для форматирования номера версии и даты её выхода.

Используется в шаблоне {{wikidata/p348}}.

Пример вызова:

{{#invoke:Wikidata|formatStatements|claim-module=Wikidata/Software|claim-function=formatVersionClaim|...}}

formatExtension

Альтернатива formatDatavalue() для форматирования расширений файлов.

Используется в шаблоне {{wikidata/p1195}}.

Пример вызова:

{{#invoke:Wikidata|formatStatements|data-module=Wikidata/Software|data-function=formatVersionClaim|...}}

catForDate

Кроме того, содержит функцию catForDate, которая добавляет категорию [[Начало категории в ГГГГ году]] при помощи шаблона вида {{#invoke:Wikidata/Software|catForDate|{{Wikidata|p571|параметры шаблона Wikidata/p571}}|Начало категории}}. Функция ищет год, который либо викифицирован, либо просто передан числом. После функция формирует и возвращает категорию.

Во избежание поломок страниц, использующих данный модуль, желательно экспериментировать в Песочнице для модулей.

local p = {}

--Property:P348
function p.formatVersionClaim( context, options, statement )
    local snak = context.formatSnak( options, statement.mainsnak )

	if ( statement.qualifiers ) then
		--Operation system
		if ( statement.qualifiers.P400 ) then
			snak = context.formatSnak( options, statement.qualifiers.P400[1] ) .. ': ' .. snak
		end

		--Name
		if ( statement.qualifiers.P1476 ) then
			snak = snak .. ' «' .. context.formatSnak( options, statement.qualifiers.P1476[1] ) .. '»'
		end

		--Date of release
		if ( statement.qualifiers.P577 ) then
			snak = snak .. ' (' .. context.formatSnak( options, statement.qualifiers.P577[1] ) .. ')'
		elseif ( statement.qualifiers.P585 ) then
			snak = snak .. ' (' .. context.formatSnak( options, statement.qualifiers.P585[1] ) .. ')'
		end
	end

	--References
    if ( options.references ) then
		snak = snak .. context.formatRefs( options, statement );
	end

    return snak
end

--Property:P1195
function p.formatExtension( context, options, value )
	return '<code>.' .. value .. '</code>'
end

return p