Przejdź do zawartości

Moduł:Wikidane/format/Pfile1

Z Wikibooks, biblioteki wolnych podręczników.
 Dokumentacja modułu [zobacz] [edytuj] [historia] [odśwież]

Dedykowana uniwersalna wtyczka formatująca wartość cechy wskazującej pliki na Wikimedia Commons.

Wtyczka obsługuje parametr format, który jest umieszczany jako część formatująca składnię definicję ilustracji w wikikodzie: [[Plik:Jakaś nazwa pliku|format]]. Zwykle do infoboksu należy wstawić format=240x240px. Wtyczka automatycznie wstawia parametr alt=opis na podstawie nazwy cechy w Wikidanych. Aby temu zapobiec należy jawnie umieścić ten parametr w treści pola format. Jeśli plik ma dostępny niepusty kwalifikator opis ilustracji w języku polskim to jest on również dołączany do wygenerowanego wikikodu pliku.

Formatowany jest jedynie pierwszy znaleziony plik. Jeśli dana cecha udostępnia ich więcej to są one ignorowane.

Przykład

Artykuł Wywołanie Wikikod Wynik
Warszawa {{#invoke:Wikidane|P|P94|format=240x240px}} [[Plik:POL Warszawa COA.svg|240x240px|alt=ilustracja herbu]] ilustracja herbu
Gdańsk {{#invoke:Wikidane|P|P18|format=240x240px}} [[Plik:Calle Dlugie Pobrzeze, Gdansk, Polonia, 2013-05-20, DD 05.jpg|240x240px|alt=ilustracja]] ilustracja

Zobacz też

return {

scope = "props",

format = function(props, options)
	if #props <= 0 then
		return
	end

	for k, v in ipairs(props) do
		local item = {}
		if (v.type == "statement") and ((v.rank == "normal") or (v.rank == "preferred")) then
			if v.mainsnak and (v.mainsnak.snaktype == "value") and (v.mainsnak.datatype == "commonsMedia") and v.mainsnak.datavalue and (v.mainsnak.datavalue.type == "string") then
				local value = v.mainsnak.datavalue.value
				if #value > 0 then
					local alt = mw.wikibase.label(v.mainsnak.property)
					local description = require("Moduł:Wikidane/format/qualifiers").TEXT1(v, nil, "P2096")
					local result = {}
					table.insert(result, "[[Plik:")
					table.insert(result, value)
					if options and options.format and (#options.format > 0) then
						table.insert(result, "|")
						table.insert(result, options.format)
						if mw.ustring.match(options.format, "^%s*alt%s*=") or mw.ustring.match(options.format, "|%s*alt%s*=") then
							alt = false
						end
					end
					if alt and (#alt > 0) then
						table.insert(result, "|alt=")
						table.insert(result, alt)
					end
					if description and (#description > 0) then
						table.insert(result, "|")
						table.insert(result, description)
					end
					
					table.insert(result,"]]")
					return table.concat(result)
				end
			end
		end
	end
end,
 
}