Moduł:Wikidane/format/Pfile1
< Moduł:Wikidane | format
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]] | |
Gdańsk | {{#invoke:Wikidane|P|P18|format=240x240px}} | [[Plik:Calle Dlugie Pobrzeze, Gdansk, Polonia, 2013-05-20, DD 05.jpg|240x240px|alt=ilustracja]] |
Zobacz też
Powyższy opis jest dołączany ze strony Moduł:Wikidane/format/Pfile1/opis. (edytuj | historia)
Zobacz podstrony tego modułu. |
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,
}