Moduł:Wikidane/format/Pfile1

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.png 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[edytuj]

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ż[edytuj]

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,
 
}