경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!require('strict') local p = {} local param_ko = require('모듈:Location map/i18n') local getArgs = require('모듈:Arguments').getArgs local function round(n, decimals) local pow = 10^(decimals or 0) return math.floor(n * pow + 0.5) / pow end function p.getMapParams(map, frame) if not map then error('사용할 location map 정의의 이름을 지정해야 합니다', 2) end for kk, vv in pairs(param_ko) do if vv ~= '' then if map == kk then map = vv break end end end local moduletitle = mw.title.new('모듈:Location map/data/' .. map) if not moduletitle then error(string.format('%q은(는) 위치 지도 정의의 유효한 이름이 아닙니다', map), 2) elseif moduletitle.exists then local mapData = mw.loadData('모듈:Location map/data/' .. map) return function(name, params) if name == nil then return '모듈:Location map/data/' .. map elseif mapData[name] == nil then return '' elseif params then return mw.message.newRawMessage(tostring(mapData[name]), unpack(params)):plain() else return mapData[name] end end elseif mw.title.new('틀:위치 지도 ' .. map).exists then local cache = {} if type(frame) ~= 'table' or type(frame.expandTemplate) ~= 'function' then error('오래된 Location map을 사용할 때 프레임이 존재해야 합니다.') end return function(name, params) if params then return frame:expandTemplate{title = '위치 지도 ' .. map, args = { name, unpack(params) }} else if name == nil then return '틀:위치 지도 ' .. map elseif cache[name] == nil then cache[name] = frame:expandTemplate{title = '위치 지도 ' .. map, args = { name }} end return cache[name] end end else error('지정된 위치 지도 정의를 찾을 수 없습니다. "모듈:Location map/data/' .. map .. '"이(가) 존재하지 않습니다', 2) end end function p.data(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true}) end if not map then map = p.getMapParams(args[1], frame) end local params = {} for k,v in ipairs(args) do if k > 2 then params[k-2] = v end end return map(args[2], #params ~= 0 and params) end local hemisphereMultipliers = { longitude = { W = -1, w = -1, E = 1, e = 1 }, latitude = { S = -1, s = -1, N = 1, n = 1 } } local function decdeg(degrees, minutes, seconds, hemisphere, decimal, direction) if decimal then if degrees then error(direction .. '에서 십진법 형식과 도분초를 모두 제공할 수 없습니다', 2) elseif minutes then error(direction .. '에서 분은 도분초로만 제공될 수 있습니다', 2) elseif seconds then error(direction .. '에서 초는 도분초로만 제공될 수 있습니다', 2) elseif hemisphere then error(direction .. '에서 반구는 도분초로만 제공될 수 있습니다', 2) end local retval = tonumber(decimal) if retval then return retval end error(direction .. '에 지정된 "' .. decimal .. '" 값은 유효하지 않습니다', 2) elseif seconds and not minutes then error('분 제공 없이 ' .. direction .. '에 초가 제공되었습니다', 2) elseif not degrees then if minutes then error('도 제공 없이 ' .. direction .. '에 분이 제공되었습니다', 2) elseif hemisphere then error('도 제공 없이 ' .. direction .. '에 반구가 제공되었습니다', 2) end return nil end decimal = tonumber(degrees) if not decimal then error(direction .. '에 제공된 도 "' .. degrees .. '" 값은 유효하지 않습니다', 2) elseif minutes and not tonumber(minutes) then error(direction .. '에 제공된 분 "' .. minutes .. '" 값은 유효하지 않습니다', 2) elseif seconds and not tonumber(seconds) then error(direction .. '에 제공된 초 "' .. seconds .. '" 값은 유효하지 않습니다', 2) end decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600 if hemisphere then local multiplier = hemisphereMultipliers[direction][hemisphere] if not multiplier then error(direction .. '에 제공된 반구 "' .. hemisphere .. '" 는 유효하지 않습니다', 2) end decimal = decimal * multiplier end return decimal end -- Finds a parameter in a transclusion of {{Coord}}. local function coord2text(para,coord) -- this should be changed for languages which do not use Arabic numerals or the degree sign local i18nmap = {['동'] = 'E', ['남'] = 'S', ['서'] = 'W', ['북'] = 'N'} local lat, long = mw.ustring.match(coord,'<span class="p%-latitude latitude">([^<]+)</span><span class="p%-longitude longitude">([^<]+)</span>') if lat then return tonumber((para == 'longitude' or para =='경도') and long or lat) end local result = mw.text.split(mw.ustring.match(coord,'%-?[%.%d]+°[NS] %-?[%.%d]+°[EW]') or '', '[ °]') if table.maxn(result) == 1 then coord = mw.ustring.gsub(coord, '.*geo%-dec', '') local result1 = mw.text.split(mw.ustring.match(coord,'[남북]위 [%-%.%d]+°'), '[위경°]') local result2 = mw.text.split(mw.ustring.match(coord,'[동서]경 [%-%.%d]+°'), '[위경°]') result = {result1[2], i18nmap[result1[1]] or '', result2[2], i18nmap[result2[1]] or ''} end if para == 'longitude' or para == '경도' then result = {result[3], result[4]} end if not tonumber(result[1]) or not result[2] then mw.log('잘못 만들어진 좌표값') mw.logObject(para, 'para') mw.logObject(coord, 'coord') return error('잘못 만들어진 좌표값', 2) end return tonumber(result[1]) * hemisphereMultipliers[para][result[2]] end -- effectively make removeBlanks false for caption and maplink, and true for everything else -- if useWikidata is present but blank, convert it to false instead of nil -- p.top, p.bottom, and their callers need to use this function p.valueFunc(key, value) if value then value = mw.text.trim(value) end if value ~= '' or key == 'caption' or key == 'maplink' then return value elseif key == 'useWikidata' then return false end end local function getContainerImage(args, map) if args.AlternativeMap or args['대체지도'] then return args.AlternativeMap or args['대체지도'] elseif (args.relief or args['지형도']) and (map('image1') or map('그림1')) ~= '' then return map('image1') or map('그림1') else return map('image') or map('그림') end end function p.top(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local width local default_as_number = tonumber(mw.ustring.match(tostring(args.default_width or args['기본너비']),"%d*")) if not (args.width or args['너비']) then width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1)) elseif mw.ustring.sub(args.width or args['너비'], -2) == 'px' then width = mw.ustring.sub(args.width or args['너비'], 1, -3) else width = args.width or args['너비'] end local width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; if width_as_number == 0 then -- check to see if width is junk. If it is, then use default calculation width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1)) width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; end if (args.max_width ~= "" or args['최대너비'] ~= "") and (args.max_width ~= nil or args['최대너비'] ~= nil) then -- check to see if width bigger than max_width local max_as_number = tonumber(mw.ustring.match(args.max_width or args['최대너비'],"%d*")) or 0; if width_as_number>max_as_number and max_as_number>0 then width = args.max_width or args['최대너비']; end end local retval = frame:extensionTag{name = 'templatestyles', args = {src = '모듈:Location map/styles.css'}} if args.float == 'center' or args['띄움'] == 'center' then retval = retval .. '<div class="center">' end if (args.caption or args['설명']) and ((args.caption or args['설명']) ~= '') and ((args.border or args['테두리']) ~= 'infobox') then retval = retval .. '<div class="locmap noviewer thumb ' if args.float == '"left"' or args.float == 'left' or args['띄움'] == '"left"' or args['띄움'] == 'left' then retval = retval .. 'tleft' elseif args.float == '"center"' or args.float == 'center' or args.float == '"none"' or args.float == 'none' or args['띄움'] == '"center"' or args['띄움'] == 'center' or args['띄움'] == '"none"' or args['띄움'] == 'none' then retval = retval .. 'tnone' else retval = retval .. 'tright' end retval = retval .. '"><div class="thumbinner" style="width:' .. (width + 2) .. 'px' if args.border == 'none' or args['테두리'] == 'none' then retval = retval .. ';border:none' elseif (args.border or args['테두리']) then retval = retval .. ';border-color:' .. (args.border or args['테두리']) end retval = retval .. '"><div style="position:relative;width:' .. width .. 'px' .. ((args.border ~= 'none' or args['테두리'] ~= 'none') and ';border:1px solid lightgray">' or '">') else retval = retval .. '<div class="locmap" style="width:' .. width .. 'px;' if args.float == '"left"' or args.float == 'left' or args['띄움'] == '"left"' or args['띄움'] == 'left' then retval = retval .. 'float:left;clear:left' elseif args.float == '"center"' or args.float == 'center' or args['띄움'] == '"center"' or args['띄움'] == 'center' then retval = retval .. 'float:none;clear:both;margin-left:auto;margin-right:auto' elseif args.float == '"none"' or args.float == 'none' or args['띄움'] == '"none"' or args['띄움'] == 'none' then retval = retval .. 'float:none;clear:none' else retval = retval .. 'float:right;clear:right' end retval = retval .. '"><div style="width:' .. width .. 'px;padding:0"><div style="position:relative;width:' .. width .. 'px">' end local image = getContainerImage(args, map) local currentTitle = mw.title.getCurrentTitle() retval = string.format( '%s[[File:%s|%spx|%s%s|class=notpageimage]]', retval, image, width, (args.alt or args['말풍선']) or ((args.label or args['꼬리표'] or currentTitle.text) .. '은(는) ' .. (map('name') or map('이름'))) .. ' 안에 위치해 있다', (args.maplink or args['지도링크'] ) and ('|link=' .. (args.maplink or args['지도링크'])) or '' ) if (args.caption or args['설명']) and ((args.caption or args['설명']) ~= '') then if (currentTitle.namespace == 0) and mw.ustring.find(args.caption or args['설명'], '##') then retval = retval .. '[[분류:오류가 있을 수 있는 위치 지도|#]]' end end if args.overlay_image then return retval .. '<div style="position:absolute;top:0;left:0">[[File:' .. args.overlay_image .. '|' .. width .. 'px|class=notpageimage]]</div>' else return retval end end function p.bottom(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local retval = '</div>' local currentTitle = mw.title.getCurrentTitle() if not (args.caption or args['설명']) or (args.border == 'infobox' or args['테두리'] == 'infobox') then if args.border or args['테두리'] then retval = retval .. '<div style="padding-top:0.2em">' else retval = retval .. '<div style="font-size:91%;padding-top:3px">' end retval = retval .. ((args.caption or args['설명']) or (args.label or args['꼬리표'] or currentTitle.text) .. '(' .. (map('name') or map('이름')) .. ')') .. '</div>' elseif (args.caption or args['설명']) ~= '' then -- This is not the pipe trick. We're creating a link with no text on purpose, so that CSS can give us a nice image retval = retval .. '<div class="thumbcaption"><div class="magnify">[[:File:' .. getContainerImage(args, map) .. '|class=notpageimage| ]]</div>' .. (args.caption or args['설명']) .. '</div>' end if args.switcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. args.switcherLabel .. '</span>' elseif args.autoSwitcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. (map('name') or map('이름')) .. '의 지도를 표시</span>' end retval = retval .. '</div></div>' if args.caption_undefined then mw.log('제거된 파라미터 caption_undefined가 사용되었습니다.') local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then retval = retval .. '[[분류:오류가 있을 수 있는 위치 지도|caption_undefined]]' end end if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then mw.log('지도 정의에 사용된 매개 변수가 제거됨 ' .. map()) if currentTitle.namespace == 0 then local key = (map('skew') ~= '' and 'skew' or '') .. (map('lat_skew') ~= '' and 'lat_skew' or '') .. (map('crosses180') ~= '' and 'crosses180' or '') .. (map('type') ~= '' and 'type' or '') retval = retval .. '[[분류:오류가 있을 수 있는 위치 지도|' .. key .. ' ]]' end end if string.find(map('name'), '|', 1, true) then mw.log('지도 정의 이름으로 사용되는 파이프 ' .. map()) if currentTitle.namespace == 0 then retval = retval .. '[[분류:오류가 있을 수 있는 위치 지도|Pipe]]' end end if args.float == 'center' or args['띄움'] == 'center' then retval = retval .. '</div>' end return retval end local function markOuterDiv(x, y, imageDiv, labelDiv) return mw.html.create('div') :addClass('od') :cssText('top:' .. round(y, 3) .. '%;left:' .. round(x, 3) .. '%') :node(imageDiv) :node(labelDiv) end local function markImageDiv(mark, marksize, label, link, alt, title) local builder = mw.html.create('div') :addClass('id') :cssText('left:-' .. round(marksize / 2) .. 'px;top:-' .. round(marksize / 2) .. 'px') :attr('title', title) if marksize ~= 0 then builder:wikitext(string.format( '[[File:%s|%dx%dpx|%s|link=%s%s|class=notpageimage]]', mark, marksize, marksize, label, link, alt and ('|alt=' .. alt) or '' )) end return builder end local function markLabelDiv(label, label_size, label_width, position, background, x, marksize, manual_position) if tonumber(label_size) == 0 then return mw.html.create('div'):addClass('l0'):wikitext(label) end local builder = mw.html.create('div') :cssText('font-size:' .. label_size .. '%;width:' .. label_width .. 'em') local distance = round(marksize / 2 + 1) if position == 'top' then -- specified top builder:addClass('pv'):cssText('bottom:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'bottom' then -- specified bottom builder:addClass('pv'):cssText('top:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'manual' or position == '수동위치' or position == '수동' then builder:addClass('pv'):cssText(manual_position) elseif position == 'left' or (tonumber(x) > 70 and position ~= 'right') then -- specified left or autodetected to left builder:addClass('pl'):cssText('right:' .. distance .. 'px') else -- specified right or autodetected to right builder:addClass('pr'):cssText('left:' .. distance .. 'px') end builder = builder:tag('div') :wikitext(label) if background then builder:cssText('background-color:' .. background) end return builder:done() end local function getX(longitude, left, right) local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) return 100 * (top - latitude) / (top - bottom) end function p.mark(frame, args, map) if not args then args = getArgs(frame, {wrappers = '틀:위치 지도~'}) end local mapnames = {} if not map then if args[1] then map = {} for mapname in mw.text.gsplit(args[1], '#', true) do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) mapnames[#mapnames + 1] = mapname end if #map == 1 then map = map[1] end else map = p.getMapParams('World', frame) args[1] = 'World' end end if type(map) == 'table' then local outputs = {} local oldargs = args[1] for k,v in ipairs(map) do args[1] = mapnames[k] outputs[k] = tostring(p.mark(frame, args, v)) end args[1] = oldargs return table.concat(outputs, '#PlaceList#') .. '#PlaceList#' end local x, y, longitude, latitude longitude = decdeg(args.lon_deg or args['경도도'], args.lon_min or args['경도분'], args.lon_sec or args['경도초'], args.lon_dir or args['동서'], args.long or args['경도'], 'longitude') latitude = decdeg(args.lat_deg or args['위도도'], args.lat_min or args['위도분'], args.lat_sec or args['위도초'], args.lat_dir or args['남북'], args.lat or args['위도'], 'latitude') if args.excludefrom then -- If this mark is to be excluded from certain maps entirely (useful in the context of multiple maps) for exclusionmap in mw.text.gsplit(args.excludefrom, '#', true) do -- Check if this map is excluded. If so, return an empty string. if args[1] == exclusionmap then return '' end end end local builder = mw.html.create() local currentTitle = mw.title.getCurrentTitle() if args.coordinates or args['좌표'] then -- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]] -- if longitude or latitude then -- error('Coordinates from [[Module:Coordinates]] and individual coordinates cannot both be provided') -- end longitude = coord2text('longitude', args.coordinates or args['좌표']) latitude = coord2text('latitude', args.coordinates or args['좌표']) elseif not longitude and not latitude and args.useWikidata then -- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't. local entity = mw.wikibase.getEntity() if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local value = entity.claims.P625[1].mainsnak.datavalue.value longitude, latitude = value.longitude, value.latitude end if (args.link or args['링크']) and (currentTitle.namespace == 0) then builder:wikitext('') --영어판에서는 위키데이터에서 좌표를 얻었다는 추적 분류 end end if not longitude then error('경도값이 지정되지 않았습니다') elseif not latitude then error('위도값이 지정되지 않았습니다') end if currentTitle.namespace > 0 then if (not (args.lon_deg or args['경도도'])) ~= (not (args.lat_deg or args['위도도'])) then builder:wikitext('') --영어판에서는 위도와 경도의 정확도가 다르다는 추적 분류 elseif (not (args.lon_min or args['경도분'])) ~= (not (args.lat_min or args['위도분'])) then builder:wikitext('') --영어판에서는 위도와 경도의 정확도가 다르다는 추적 분류 elseif (not (args.lon_sec or args['경도초'])) ~= (not (args.lat_sec or args['위도초'])) then builder:wikitext('') --영어판에서는 위도와 경도의 정확도가 다르다는 추적 분류 elseif (not (args.lon_dir or args['동서'])) ~= (not (args.lat_dir or args['남북'])) then builder:wikitext('') --영어판에서는 위도와 경도의 정확도가 다르다는 추적 분류 elseif (not (args.long or args['경도'])) ~= (not (args.lat or args['위도'])) then builder:wikitext('') --영어판에서는 위도와 경도의 정확도가 다르다는 추적 분류 end end if ((tonumber(args.lat_deg or args['위도도']) or 0) < 0) and ((tonumber(args.lat_min or args['위도분']) or 0) ~= 0 or (tonumber(args.lat_sec or args['위도초']) or 0) ~= 0 or (args.lat_dir and args.lat_dir ~='') or (args['남북'] and args['남북'] ~='')) then builder:wikitext('') --영어판에서는 좌표가 음수라는 추적 분류 end if ((tonumber(args.lon_deg or args['경도도']) or 0) < 0) and ((tonumber(args.lon_min or args['경도분']) or 0) ~= 0 or (tonumber(args.lon_sec or args['경도초']) or 0) ~= 0 or (args.lon_dir and args.lon_dir ~= '') or (args['동서'] and args['동서'] ~= '')) then builder:wikitext('') --영어판에서는 좌표가 음수라는 추적 분류 end if (((tonumber(args.lat_min or args['위도분']) or 0) < 0) or ((tonumber(args.lat_sec or args['위도초']) or 0) < 0)) then builder:wikitext('') --영어판에서는 좌표가 음수라는 추적 분류 end if (((tonumber(args.lon_min or args['경도분']) or 0) < 0) or ((tonumber(args.lon_sec or args['경도초']) or 0) < 0)) then builder:wikitext('') --영어판에서는 좌표가 음수라는 추적 분류 end if args.skew or args.lon_shift or args.markhigh then mw.log('호출에 사용된 제거된 파라미터.') local parent = frame:getParent() if parent then mw.log('부모는 ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = (args.skew and 'skew' or '') .. (args.lon_shift and 'lon_shift' or '') .. (args.markhigh and 'markhigh' or '') builder:wikitext('[[분류:변수가 제거된 위치 지도|' .. key ..' ]]') end end if map('x') ~= '' then x = tonumber(mw.ext.ParserFunctions.expr(map('x', { latitude, longitude }))) else x = tonumber(getX(longitude, map('left'), map('right'))) end if map('y') ~= '' then y = tonumber(mw.ext.ParserFunctions.expr(map('y', { latitude, longitude }))) else y = tonumber(getY(latitude, map('top'), map('bottom'))) end if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then mw.log('표시가 외부 플래그 설정 없이 지도 경계 외부에 놓였습니다. x = ' .. x .. ', y = ' .. y) local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = currentTitle.prefixedText builder:wikitext('') --영어판에서는 좌표가 지도 밖이고 outside 인수가 미지정인 추적 분류 end end local mark = (args.mark or args['표시']) or (map('mark') or map('표시')) if mark == '' then mark = 'Red pog.svg' end local marksize = tonumber(args.marksize or args['표시크기']) or tonumber(map('marksize') or map('표시크기')) or 8 local imageDiv = markImageDiv(mark, marksize, args.label or args['꼬리표'] or mw.title.getCurrentTitle().text, args.link or args['링크'] or '', args.alt or args['말풍선'], args[2]) local labelDiv if (args.label or args['꼬리표']) and (args.position ~= 'none' or args['위치'] ~= 'none') then labelDiv = markLabelDiv((args.label or args['꼬리표']), (args.label_size or args['꼬리표크기']) or 91, (args.label_width or args['꼬리표너비']) or 6, args.position or args['위치'], args.background or args['배경'], x, marksize, args.manual_position or args['수동위치']) end return builder:node(markOuterDiv(x, y, imageDiv, labelDiv)) end local function switcherSeparate(s) if s == nil then return {} end local retval = {} for i in string.gmatch(s .. '#', '([^#]*)#') do i = mw.text.trim(i) retval[#retval + 1] = (i ~= '' and i) end return retval end function p.main(frame, args, map) local caption_list = {} if not args then args = getArgs(frame, {wrappers = '틀:위치 지도', valueFunc = p.valueFunc}) end if args.useWikidata == nil then args.useWikidata = true end if not map then if args[1] then map = {} for mapname in string.gmatch(args[1], '[^#]+') do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) end if args['caption'] or args['설명'] then if args['caption'] == "" or args['설명'] == "" then while #caption_list < #map do caption_list[#caption_list + 1] = args['caption'] or args['설명'] end else for caption in mw.text.gsplit((args['caption'] or args['설명']), '##', true) do caption_list[#caption_list + 1] = caption end end end if #map == 1 then map = map[1] end else map = p.getMapParams('World', frame) end end if type(map) == 'table' then local altmaps = switcherSeparate(args.AlternativeMap or args['대체지도']) if #altmaps > #map then error(string.format('%d개의 AlternativeMaps가 제공되고 있지만, %d개의 지도만 제공되고 있습니다', #altmaps, #map)) end local overlays = switcherSeparate(args.overlay_image) if #overlays > #map then error(string.format('%d개의 overlay_images가 제공되고 있지만, %d개의 지도만 제공되고 있습니다', #overlays, #map)) end if #caption_list > #map then error(string.format('%d개의 captions가 제공되고 있지만, %d개의 지도만 제공되고 있습니다', #caption_list, #map)) end local outputs = {} args.autoSwitcherLabel = true for k,v in ipairs(map) do args.AlternativeMap = altmaps[k] args.overlay_image = overlays[k] args.caption = caption_list[k] outputs[k] = p.main(frame, args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, args, map) .. tostring( p.mark(frame, args, map) ) .. p.bottom(frame, args, map) end end return p 요약: 이음위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 이음위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림) 이 문서에서 사용한 틀: 모듈:Location map/설명문서 (편집)