Module:Location map/info

From Dharmawiki
Jump to navigation Jump to search

local p = {}

function p.main(frame) local map = mw.loadData(string.gsub(mw.title.getCurrentTitle().prefixedText,'/doc$',)) local retval = [=[{| class="wikitable" style="text-align:center; margin-top:0;" |+ Location map of ]=] .. map.name .. '\n' .. [=[ |- ! name |colspan="3"| ]=] .. map.name .. [=[

|- ]=] if map.top then retval = retval .. [=[!rowspan="4"|border
coordinates |- |colspan="3"| ]=] .. map.top .. '\n' .. [=[ |- |style="width:7em;"| ]=] .. map.left .. '\n' .. [=[ | ←↕→ |style="width:7em;"| ]=] .. map.right if map.right > 180 then retval = retval .. ' (' .. map.right - 360 .. ')' end retval = retval .. '\n' .. [=[ |- |colspan="3"| ]=] .. map.bottom .. '\n' .. [=[ |- ! map center |colspan="4"| ]=] local width = (map.right - map.left) % 360 if width == 0 then width = 360 end local center = (map.left + width/2) % 360 if center >= 180 then center = center - 360 end retval = retval .. frame:expandTemplate{title = 'coord', args = { (map.top + map.bottom)/2, center }} retval = retval .. '\n' .. [=[ |-]=] end if map.x then retval = retval .. '\n' .. [=[ ! x |colspan="3" style="overflow: auto; white-space: auto; width: 350px"| ]=] .. map.x .. '\n' .. [=[ |- ! y |colspan="3" style="overflow: auto; white-space: auto; width: 350px"| ]=] .. map.y .. '\n' .. [=[ |-]=] end retval = retval .. '\n' .. [=[ ! image |colspan="3"| [[:File:]=] .. map.image .. '|' .. map.image .. [=[]] |- |colspan="4"|[[File:]=] .. map.image .. [=[|400x400px]] |-]=] local i = 0 while map['image' .. (i+1)] or map['image' .. (i+2)] do i = i + 1 if map['image' .. i] then retval = retval .. '\n' .. [=[ ! image]=] .. i .. '\n' .. [=[ |colspan="3"| [[:File:]=] .. map['image' .. i] .. '|' .. map['image' .. i] .. [=[]] |- |colspan="4"|[[File:]=] .. map['image' .. i] .. [=[|400x400px]] |-]=] end end if map.skew then retval = retval .. '\n' .. [=[ ! skew |colspan="3"| ]=] .. map.skew .. '\n' .. [=[ |-]=] end if map.lat_skew then retval = retval .. '\n' .. [=[ ! lat_skew |colspan="3"| ]=] .. map.lat_skew .. '\n' .. [=[ |-]=] end if map.mark then retval = retval .. '\n' .. [=[ ! mark |colspan="3"| [[:File:]=] .. map.mark .. '|' .. map.mark .. [=[]] |-]=] end if map.marksize then retval = retval .. '\n' .. [=[ ! marksize |colspan="3"| ]=] .. map.marksize .. '\n' .. [=[ |-]=] end retval = retval .. '\n|}' return retval end

return p