Difference between revisions of "Module:Infobox road/map/sandbox"
< Module:Infobox road | map
Jump to navigation
Jump to search
test>Happy5214 (Updating to mw.wikibase.getEntityObject; using tabs for indentation) |
test>Chinissai (Added function taking arguments directly.) |
||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
| − | local | + | local format = mw.ustring.format |
| − | + | local mapsizes = { | |
| − | + | DEU = "200", | |
| − | + | USA = "290x172" | |
| − | + | } | |
| − | + | ||
| + | function p._map(args) | ||
local map = args.map or '' | local map = args.map or '' | ||
| − | if map_custom == "yes" then | + | if args.map_custom == "yes" then |
| − | return '<span style="white-space:nowrap;"> | + | return format('<span style="white-space:nowrap;">%s</span>', map) |
end | end | ||
if map == '' then | if map == '' then | ||
| Line 21: | Line 22: | ||
map = mapProp[1].mainsnak.datavalue.value | map = mapProp[1].mainsnak.datavalue.value | ||
end | end | ||
| − | local | + | |
| − | + | local mapsize = mapsizes[args.country] or '290' | |
| − | local | + | local alt = args.map_alt or '' |
| − | local | + | return format("[[File:%s|%spx|alt=%s]]", 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 | 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 | end | ||
| − | + | return p._map(args) | |
| − | |||
| − | |||
| − | |||
| − | |||
end | end | ||
return p | return p | ||
Revision as of 17:12, 1 May 2016
Documentation for this module may be created at Module:Infobox road/map/sandbox/doc
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|alt=%s]]", 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