Moduuli:Cs:Wikidata/Formatters/string

Wikipediasta
Siirry navigaatioon Siirry hakuun

Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Cs:Wikidata/Formatters/string/ohje

require 'Module:No globals'

local p = {}

local lib = require 'Module:cs:Wikidata/lib'

local function findPattern(property)
	local entity = mw.wikibase.getEntity(property:upper())
	if entity then
		local Statements = entity:getBestStatements('P1630')
		for _, statement in ipairs(Statements) do
			if lib.IsSnakValue(statement.mainsnak) then
				return statement.mainsnak.datavalue.value
			end
		end
	end
	return nil
end

function p.getRawValue(value, options)
	return value
end

function p.formatValue(value, options)
	if options.pattern then
		return lib.formatFromPattern(value, options.pattern)
	elseif lib.IsOptionTrue(options, 'autoformat') then
		local pattern = findPattern(options.property)
		if pattern then
			return lib.formatFromPattern(value, mw.ustring.format('[%s %s]', pattern, options.text or '$1'))
		end
	end
	return value
end

p.formatRawValue = p.formatValue

return p