모듈:부속 KML/샌드박스

Module
--주의:원래 영어 위키피디아에는 [[w:en:]]로 표기되어 있습니다.모듈: Attached_KML] -- #### 현지화(L10n) 설정 ##### 현지의 L10n = {  -- 템플릿 파라미터 이름  -- (따옴표 안의 값을 로컬파라미터명으로 바꿉니다)  패러 = {   표시 = "디스플레이",   부터 = "출처",   머리글자 = "실패",   직함 = "실패",   위키데이터 = "카메리다타",   데모 = "실패",  },  -- 기타 구성 설정  설정 = {   -- 인라인 표시에 사용되는 형식을 제어합니다. "상자"(기본값) 또는 "줄"로 설정할 수 있습니다.   -- "상자" 예: https://en.wikipedia.org/wiki/Template:Attached_KML   -- "line" 예: https://sv.wikipedia.org/wiki/Mall:KML   inline_format = '박스",  },  -- 기타 문자열  스트레이트 = {   인라인 = "실패", -- ( display = parameter ) 、 ( display = parameter ) 、 ( display = parameter ) 、 ( display = parameter , parameter ) ( display 、 (   직함 = "실패", -- (상기와 같이)   DSEP = ",", -- inline과 title의 구분자(위의 예에서 설명)   kml_module = "템플릿:첨부된 KML/", -- 로컬 KML 파일은 이 위치의 하위 페이지로 저장됩니다.   default_module = "루트 맵", -- 제목 매개변수가 변환에 사용되지 않는 경우 페이지 맨 위에 있는 링크의 기본 제목   default_module = "", -- 인라인 박스 링크의 디폴트헤더(헤더 파라미터가 변환에 사용되지 않는 경우)   kml_파일 = "KML 파일", -- 미가공 KML 파일에 대한 링크에 표시할 텍스트   편집하다 = "편집", -- KML 파일을 편집하는 링크에 표시할 텍스트   도와 주세요. = "도움말", -- 도움말 페이지 링크에 표시할 텍스트   help_location(도움말_장소) = "도움말: 연결된 KML", -- 도움말 페이지 링크를 위해 링크하는 페이지   err_internend = "접속된 KML", -- 페이지 맨 위에 표시될 때 오류 메시지 앞에 추가할 텍스트(display=display)   고양이 = { -- 추적 카테고리: 완전한 Wikimarkup이 필요하거나 상태를 추적하지 않도록 빈 문자열("")로 설정합니다.    wikidata_kml = "[카테고리:Wikidata에서 KML을 사용한 기사]", -- Wikidata의 KML을 사용하여 메인스페이스 기사를 추적합니다.    local_kml = "[카테고리:Wikidata가 아닌 KML을 사용하는 기사]", -- Wikidata의 KML을 사용하지 않는 메인스페이스 기사를 추적합니다.    error_mqid = "[카테고리:첨부된 KML 오류 M]]", -- malformed_qid 오류를 추적합니다.    error_badqid = "[카테고리:첨부된 KML 오류 W]]", -- bad_qid 오류를 추적합니다.    error_noitem(오류 항목) = "[카테고리:첨부된 KML 오류 N]]", -- no_item 오류를 추적합니다.    error_from = "[카테고리:첨부된 KML 오류 F]]", --오류로부터 bad_를 추적합니다.    error_syslogml = "[카테고리:첨부된 KML 오류 K]]", -- tracks no_kml 오류   },    = { -- 이러한 문자열은 'syslog_format = "line" 구성을 사용하는 경우에만 필요합니다.    개시하다 = "", -- wikitext는 행의 선두에 표시되며 이미지 마크업을 포함할 수 있으며 공백으로 시작해야 합니다.    분리기 = "", -- 외부 매핑 공급자에 대한 링크 사이에 표시할 텍스트. 공백을 포함해야 합니다.   },  } }  L10n.스트레이트.에러 = { -- 에러 메시지  잘못된 형식_qid = "오류: <code> <nowiki>의 잘못된 형식의 항목 ID" .. L10n.패러.위키데이터 .. "= </nowiki> </code>", -- 항목 ID가 패턴과 일치하지 않습니다(Q 접두사가 있는 번호).  bad_qid  = "오류: Wikidata 또는 <code> <nowiki>에서 지정된 항목" .. L10n.패러.위키데이터 .. "= </nowiki> </code>는 KML 파일이 아닙니다.< small >(P31→Q26267864를 찾을 수 없습니다.)< small >", -- 항목에 P31→Q26267864 문이 없습니다.  no_아이템  = "오류: <code> <nowiki>에서 지정된 항목" .. L10n.패러.위키데이터 .. "= </nowiki> </code> Wikidata에서 찾을 수 없습니다.", -- Wikidata에서 항목을 찾을 수 없습니다.  bad_from = "오류: KML 파일을 찾을 수 없습니다.< code >< nowiki >를 체크해 주세요." .. L10n.패러.부터 .. "= </nowiki> </code>", -- 매개 변수에서 지정한 KML이 없습니다.  no_kml  = "오류: KML 파일을 찾을 수 없습니다.", -- KML 파일을 찾을 수 없습니다. }  -- 외부 매핑 공급자의 마스크(다음 형식) -- externalLinkMasks [ index - number ]= { short = "short - label", long = "long - label", link = "url" }' -- 제목 링크에는 짧은 라벨이 사용되고 인라인 링크에는 긴 라벨이 사용됩니다. -- 출력의 링크는 인덱스 번호로 정렬됩니다. -- kml 파일의 raw URL 또는 인코딩된 raw URL 대신 __KML_URL_또는 __KML_URL_E__를 사용합니다. 현지의 외부 링크 = {} --externalLinks [ 1 ]= { -- short = "빙", -- long = "빙 맵에 표시", -- link = "http://www.bing.com/maps/?mapurl=__KML_URL__" --}  --### L10n 설정 종료####  -- kml 파일을 검색하기 위한 순서대로 사용 가능한 Wiki 표입니다. -- (kml 파일이 발견되면 이후 사이트는 체크되지 않음) 현지의 위치들 = {  {   .스트링.경기( .위치.서버, %w+ )  ..  .스트링.서브( .스트링.더 낮게(.위치.사이트명), [mp]edia], ""),    .스트링.후보선수(.위치.서버, 3),   ""  }, -- local wiki(로컬 파일이 다른 Wiki의 파일을 덮어쓸 수 있도록 먼저 나열됨)  { '오브와이키', "그럴 수도 있어요.wikimedia.org", "c:" }, -- Commons는 KML 파일의 논리적인 중앙 저장소가 될 것입니다(2016년 8월 현재 파일은 없습니다).  { '엔위키', "en.wikipedia.org", "w:en:" }, -- KML 파일의 최대 소스(2016년 8월 기준)  { "bnwiki", "bn.wikipedia.org", "w:bn:" }, -- 알파벳 순으로 나열된 KML 템플릿이 있는 다른 사이트  { "cswiki", "cs.wikipedia.org", "w:cs:" },  { '키키', "fa.wikipedia.org", "w:fa:" },  { "frwiki", "fr.wikipedia.org", "w:fr:" },  { '키키', "ja.wikipedia.org", "w:ja:" },  { "mlwiki", "ml.wikipedia.org", "w:ml:" },  { '오브와이키', "sv.wikipedia.org", "w:param:" },  { "zhwiki", "zh.wikipedia.org", "w:zh:" }, }  현지의 p = {}  현지의 기능. set Clean Args(args 테이블)  현지의 클린아그 = {}  위해서 열쇠,  …에. 쌍들(args 테이블) 하다   한다면 유형() == '문자열 그리고나서     = :경기('^%s*(-)%s*
                
) 한다면 ~= '' 그리고나서 클린아그[열쇠] = 끝. 또 다른 클린아그[열쇠] = 끝. 끝. 돌아가다 클린아그 끝. 현지의 기능. safeReplace(safe Replace)(스트링, 양식, 치환) -- 치환에 1개 이상의 리터럴% 문자가 포함되어 있는 경우 string.gsub에서 발생하는 "Lua error: invalid capture index"를 회피합니다. 현지의 non pattern_parts = .본문.분열되다( 스트링, 양식 ) 돌아가다 table.concat(non pattern_parts, 치환) 끝. 현지의 기능. makeTitleWikitext(타이틀 텍스트, 에러) 한다면 에러 그리고. L10n.스트레이트.err_internend 그리고나서 에러 = .스트링.서브( 에러, ">", ">" .. L10n.스트레이트.err_internend .. " ", 1 ) 끝. 현지의 title링크 = {} 위해서 i, v …에. 아이페어( 외부 링크 ) 하다 title링크[i] = .스트링.포맷( [%s %s], v.링크 , v.짧다) 끝. 돌아가다 .get Current Frame(전류 프레임)():확장 태그{ 이름. = '실패', args = { 이름. = '접속 kml' }, 내용 = .스트링.포맷( "<span id=\"좌표\">\'\'\'%s\'\'\': %s </span>", 타이틀 텍스트, 에러 또는 table.concat(title링크, " / ") ) } 끝. 현지의 기능. makeInlineWikitext(헤더 텍스트, url, 에러) 현지의 인라인 링크 = {} 위해서 i, v …에. 아이페어( 외부 링크 ) 하다 인라인 링크[i] = .스트링.포맷([%s %s], v.링크 , v.) 끝. 현지의 editUrl = .스트링.서브( url, "action=raw", "action=편집" ) 현지의 wiki_link_class 한다면 .스트링.발견하다( editUrl, .위치.서버, 1, 진실의 ) 그리고나서 wiki_link_class = "클라이언트 링크 또 다른 wiki_link_class = "" 끝. 한다면 L10n.설정.inline_format == 회선 그리고나서 돌아가다 .스트링.포맷( "<li>%s%s%s(<span class=)\"%s\"> [ %s %s ]< span style =\"글꼴 크기: 85%;\">([%s %s] • [%s %s]) </span> </li>", 헤더 텍스트, L10n.스트레이트..개시하다, 에러 또는 table.concat(인라인 링크, L10n.스트레이트..분리기), wiki_link_class, url, L10n.스트레이트.kml_파일, editUrl, L10n.스트레이트.편집하다, L10n.스트레이트.help_location(도움말_장소), L10n.스트레이트.도와 주세요. ) 끝. 현지의 본문 = .스트링.포맷( '%s' <span class=sys">\'\'\'[%s %s]\'\'\'([%s %s] • [%s %s]) </span>', 헤더 텍스트, wiki_link_class, url, L10n.스트레이트.kml_파일, editUrl, L10n.스트레이트.편집하다, L10n.스트레이트.help_location(도움말_장소), L10n.스트레이트.도와 주세요. ) 한다면 에러 또는 #인라인 링크 > 0 그리고나서 본문 = .스트링.포맷( %s <ul> <li> %s </li> </ul>, 본문, 에러 또는 table.concat(인라인 링크, "<li><li>") ) 끝. 돌아가다 요구하다('모듈:사이드 박스').메인({ 학급 = '접속 kml', 본문 = 본문 }) 끝. 현지의 기능. makeKldataDiv(링크, s_index(인덱스) 돌아가다 .스트링.포맷( '<div class="kmldata" data-server=subs" title=subs">[%s%s][/div]', 위치들[s_index(인덱스][2], 링크, 위치들[s_index(인덱스][3], 링크 ) 끝. 현지의 기능. make Error(메이크 에러)(메시지, 고양이) 돌아가다 .스트링.포맷( '<strong class="attached-kml-error">%s</strong>%s', 메시지, .직함.get Current Title(전류 제목)():인네임스페이스(0, 118) 그리고. 고양이 또는 '' ) 끝. 현지의 기능. getUrlFromQid( kml_qid ) 현지의 pcall_결과, kml_module = pcall(.키보드.엔티티, kml_qid) 한다면 것은 아니다. pcall_결과 그리고나서 돌아가다 제로, 제로, 제로, make Error(메이크 에러)(L10n.스트레이트.에러.no_아이템, L10n.스트레이트.고양이.error_noitem(오류 항목)) 끝. -- 엔티티가 존재하지 않으면 오류가 발생합니다. 현지의 p31_module = kml_module:get Best Statements(베스트 스테이트먼트)('P31') -- P31은 속성 "인스턴스"입니다. 현지의 has_good_p31 위해서 k, v …에. 쌍들( p31_module ) 하다 한다면 (p31_module[k] 그리고. p31_module[k].메인음.스냅타이프 == "값" 그리고. p31_module[k].메인음.데이터.유형 == '아세틸화효소-아세틸화합물 그리고. p31_module[k].메인음.데이터.가치["contract-id"] == 26267864) 그리고나서 has_good_p31 = 진실의 끝. 끝. 한다면 것은 아니다. (has_good_p31) 그리고나서 -- 항목이 kml 파일이 아닌 경우 오류 발생 돌아가다 제로, 제로, 제로, make Error(메이크 에러)(L10n.스트레이트.에러.bad_qid, L10n.스트레이트.고양이.error_badqid) 끝. 현지의 kml_sitelink 현지의 kml_siteindex 현지의 kml_url 위해서 i, v …에. 아이페어( 위치들 ) 하다 kml_sitelink = kml_module:get Sitelink를 취득하다( v[1] ) 한다면 kml_sitelink 그리고나서 kml_url = "param://" .. v[2] .. "/w/index.filename?filename=" .. .uri.부호화( kml_sitelink, "WIKI" ) .. "&action=raw" kml_siteindex = i 끝. 한다면 kml_url 그리고나서 브레이크. 끝. 끝. 돌아가다 kml_url 또는 제로, kml_sitelink 또는 제로, kml_siteindex 또는 제로, 제로 끝. -- 링크된 Wikidata 항목에서 URL을 가져오려고 하면 가져올 수 없는 경우 0이 반환됩니다. 현지의 기능. getUrlFromWikidata() 현지의 독립체 = .키보드.getEntityObject(getEntityObject)() 한다면 것은 아니다. 독립체 그리고나서 돌아가다 제로 끝. 현지의 kml_module = 독립체:get Best Statements(베스트 스테이트먼트)("P3096") -- P3096은 속성 "KML 파일"입니다. 한다면 kml_module 그리고나서 -- 속성 첫 번째 값의 QID를 가져옵니다. 한다면 (kml_module[1] 그리고. kml_module[1].메인음.스냅타이프 == "값" 그리고. kml_module[1].메인음.데이터.유형 == '아세틸화효소-아세틸화합물) 그리고나서 현지의 kml_qid = 'Q' .. kml_module[1].메인음.데이터.가치["contract-id"] 돌아가다 getUrlFromQid( kml_qid ) 또 다른 돌아가다 제로 -- TODO: 오류 메시지 끝. 또 다른 돌아가다 제로 -- TODO: 오류 메시지 끝. 끝. 기능. p.주된() 현지의 부모 = .부모 취득() 현지의 아르그 = set Clean Args(부모.args) 현지의 qid = 아르그[L10n.패러.위키데이터] 또는 제로 -- KML 파일 URL을 가져옵니다. 현지의 wikiUrl, wikiTitle, 위키링크, 추적 Wikitext, kml 에러 한다면 것은 아니다. (아르그[L10n.패러.부터]) 그리고나서 한다면 것은 아니다. qid 그리고나서 wikiUrl, 위키링크, 사이트 인덱스, kml 에러 = getUrlFromWikidata() 그렇지 않으면 .스트링.발견하다( qid, "^Q%d+" ) 그리고나서 wikiUrl, 위키링크, 사이트 인덱스, kml 에러 = getUrlFromQid(qid) 또 다른 kml 에러 = make Error(메이크 에러)(L10n.스트레이트.에러.잘못된 형식_qid, L10n.스트레이트.고양이.error_mqid) 끝. 끝. 한다면 것은 아니다. (wikiUrl) 그리고나서 - FIXME? - 냄새가 고약하네요.to_string의 새 제목을 만들 필요가 없습니다. -- 현재 제목에서 텍스트 형식으로 변환합니다. 위키링크 = 아르그[L10n.패러.부터] 또는 .직함.신규(스트링(.직함.get Current Title(전류 제목)())).본문 위키링크 = L10n.스트레이트.kml_module .. 위키링크 wikiTitle = .직함.신규( 위키링크 ) 한다면 것은 아니다. (wikiTitle.존재한다) 그리고. 것은 아니다. (kml 에러) 그리고나서 한다면 아르그[L10n.패러.부터] 그리고나서 kml 에러 = make Error(메이크 에러)(L10n.스트레이트.에러.bad_from, L10n.스트레이트.고양이.error_from) 또 다른 kml 에러 = make Error(메이크 에러)(L10n.스트레이트.에러.no_kml, L10n.스트레이트.고양이.error_syslogml) 끝. 끝. wikiUrl = wikiTitle:풀Url("action=raw", "실패") 사이트 인덱스 = 1 추적 Wikitext = .스트링.포맷( '<div title='KML & Wikidata" class="attached-kml-httpidata">KML은 Wikidata가 아닙니다.</div>%s', .직함.get Current Title(전류 제목)():네임스페이스 내(0) 그리고. L10n.스트레이트.고양이.local_kml 또는 '' ) 또 다른 추적 Wikitext = .스트링.포맷( '<div title='KML & Wikidata" class="attached-kml-httpidata">KML은 Wikidata </div> %s'에서 가져옵니다., .직함.get Current Title(전류 제목)():네임스페이스 내(0) 그리고. L10n.스트레이트.고양이.wikidata_kml 또는 '' ) 끝. -- __KML_URL__ 또는 __KML_URL_E__를 실제 값으로 바꿉니다. 현지의 인코딩된 WikiUrl = .uri.부호화(wikiUrl, '패스') 위해서 i, v …에. 아이페어( 외부 링크 ) 하다 현지의 el1 = safeReplace(safe Replace)( v.링크, "_KML_URL__", wikiUrl ) 현지의 el2 = safeReplace(safe Replace)( el1, "_KML_URL_E__", 인코딩된 WikiUrl ) 외부 링크[i][링크] = el2 끝. -- 데모 파라미터가 설정되어 있는 경우 오류와 카테고리를 억제합니다. 한다면 아르그[L10n.패러.데모] 그리고나서 kml 에러 = 제로 추적 Wikitext = "" 끝. 현지의 위키텍스트 = "" 한다면 아르그[L10n.패러.표시] 그리고나서 현지의 표시 = .본문.분열되다(아르그[L10n.패러.표시], %s*' .. L10n.스트레이트.DSEP .. %s*') 한다면 표시[1] == L10n.스트레이트.직함 또는 표시[2] == L10n.스트레이트.직함 그리고나서 위키텍스트 = makeTitleWikitext(아르그[L10n.패러.직함] 또는 L10n.스트레이트.default_module, kml 에러) 끝. 한다면 표시[1] == L10n.스트레이트.인라인 또는 표시[2] == L10n.스트레이트.인라인 또는 (표시[1] ~= L10n.스트레이트.직함 그리고. 표시[2] ~= L10n.스트레이트.직함) 그리고나서 현지의 인라인 Wikitext = makeInlineWikitext(아르그[L10n.패러.머리글자] 또는 L10n.스트레이트.default_module, wikiUrl, kml 에러) 위키텍스트 = 위키텍스트 .. 인라인 Wikitext 끝. 또 다른 위키텍스트 = makeInlineWikitext(아르그[L10n.패러.머리글자] 또는 L10n.스트레이트.default_module, wikiUrl, kml 에러) 끝. 위키텍스트 = 위키텍스트 .. makeKldataDiv(위키링크, 사이트 인덱스) .. 추적 Wikitext 돌아가다 :확장 태그{ 이름. = '패턴 스타일', args = { src = '모듈:첨부된 KML/styles.css' } } .. :전처리( 위키텍스트 ) 끝. 돌아가다 p