跳转到内容

模組:Infobox road2/map

被永久保护的模块
维基百科,自由的百科全书

这是Module:Infobox road2/map当前版本,由翰翔留言 | 贡献编辑于2022年5月26日 (四) 08:22。这个网址是本页该版本的固定链接。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)
文档图示 模块文档[创建]
local p = {}

local format = mw.ustring.format

local mapsizes = {
	DEU = "200",
	USA = "290x172"
}

function p._map(args)
	local map = args.map or ''
	if args.map_custom == "yes" then
		return format('<span style="white-space:nowrap;">%s</span>', map)
	end
	if map == '' then
		local entity = mw.wikibase.getEntityObject() or {}
		local claims = entity.claims or {}
		local mapProp = claims.P15
		if not mapProp or mapProp[1].mainsnak.snaktype ~= 'value' then
			return ""
		end
		map = mapProp[1].mainsnak.datavalue.value
	end

	local mapsize = mapsizes[args.country] or '290'
	local alt = args.map_alt or ''
	return format("[[File:%s|%spx]]", map, mapsize, alt)
end

function p.map(frame)
	local argsModule = require("Module:Arguments")
	local args = argsModule.getArgs(frame)
	local state = args.state or args.province
	if not args.country then
		local countryMask = mw.loadData("Module:Road data/countrymask")
		args.country = countryMask[state]
	end
	return p._map(args)
end

return p