Přeskočit na obsah

Modul:CommonsLink

Tato stránka je zamčena
Z Wikipedie, otevřené encyklopedie
(rozdíl) ← Starší revize | zobrazit aktuální verzi (rozdíl) | Novější revize → (rozdíl)

Účelem modulu CommonsLink je sjednocení přebírání odkazů na galerie a kategorie Wikimedia Commons z Wikidat.

Použití

{{#invoke:CommonsLink|gallery}}

z položky Wikidat přebere vlastnost galerie na Commons (P935), pokud je dostupná, případně mezijazykový odkaz, pokud odkazuje do hlavního jmenného prostoru
pokud není nalezen vhodný odkaz, provede se to samé i v položce, na kterou se ze stávající odkazuje pomocí hlavní kategorie tématu (P910) (pokud taková existuje)

{{#invoke:CommonsLink|category}}

z položky Wikidat přebere vlastnost kategorie na Commons (P373), pokud je dostupná, případně mezijazykový odkaz, pokud odkazuje do jmenného prostoru kategorií
pokud není nalezen vhodný odkaz, provede se to samé i v položce, na kterou se ze stávající odkazuje pomocí hlavní kategorie tématu (P910) (pokud taková existuje)

{{#invoke:CommonsLink|any}}

odpovídá category or gallery, tj. přebere kategorii nebo galerii, pokud kategorie není dostupná (prakticky využitelné pouze s link=true)

Parametr prefix=true vynutí název stránky se jmenným prostorem (u kategorií). Parametr link=true změní výstup modulu na interwiki odkaz.


require 'Modul:No globals'

local WD = require 'Modul:Wikidata'
local lib = require 'Modul:Wikidata/lib'

local p = {}

function p._gallery(args)
	local myargs = mw.clone(args)
	myargs.property = 'P935'
	local link = WD.getRawValueFromLua(myargs)
	if not link then
		myargs.site = 'commonswiki'
		link = WD.getSitelinkFromLua(myargs)
		if not link or mw.ustring.sub(link, 1, #'Category:') == 'Category:' then
			return nil
		end
	end
	if lib.IsOptionTrue(myargs, 'link') then
		return mw.ustring.format('[[c:%s|%s]]', link, link)
	end
	return link
end

function p.gallery(frame)
	return p._gallery(frame.args)
end

function p._category(args)
	local myargs = mw.clone(args)
	myargs.property = 'P373'
	local link = WD.getRawValueFromLua(myargs)
	if not link then
		myargs.site = 'commonswiki'
		link = WD.getSitelinkFromLua(myargs)
		if not link or mw.ustring.sub(link, 1, #'Category:') ~= 'Category:' then
			return nil
		else
			link = mw.ustring.sub(link, #'Category:' + 1)
		end
	end
	if lib.IsOptionTrue(myargs, 'link') then
		return mw.ustring.format('[[c:Category:%s|%s]]', link, link)
	end
	if lib.IsOptionTrue(myargs, 'prefix') then
		return 'Category:' .. link
	end
	return link
end

function p.category(frame)
	return p._category(frame.args)
end

function p._any(args)
	return p._category(args) or p._gallery(args) 
end

function p.any(frame)
	return p._any(frame.args)
end

return p