모듈:국가 데이터
Module:CountryData| 이 모듈은 페이지 보호의 대상이 된다.그것은 매우 많은 페이지들이 사용하고 있거나 매우 자주 교체되는 매우 눈에 잘 띄는 모듈이다.공공 기물 파손이나 실수가 많은 페이지에 영향을 미치고 사소한 편집이라도 서버에 상당한 부하를 줄 수 있기 때문에 편집으로부터 보호된다. |
이 모듈에는 국가 데이터 템플릿(대부분의 플래그 템플릿에 사용되는)에서 데이터를 추출하는 세 가지 기능이 있다.
손에 넣을 수 있는
데이터 템플릿에서 모든 파라미터를 추출하여 Lua 테이블로 반환이 기능은 다른 Lua 모듈에서만 사용할 수 있으며, 다음을 사용하여 호출하십시오.require('Module:CountryData').gettable(parameters).
첫 번째 파라미터는frame두 번째는 데이터를 가져올 국가 또는 기타 실체.옵션인 세 번째 매개 변수는 데이터 템플릿에 전달되는 매개 변수의 표입니다. 예를 들어 다음이 포함될 수 있음 age=또는 mw=일부 스포츠 가명 매개변수의 값에 사용된다.예:
국부적 자료 = 요구하다('모듈:컨트리데이터').손에 넣을 수 있는(액자에 넣다,"프랑스",{나이를 먹다="20",mw="남자의"}) 데이터 템플릿이 존재하지 않거나 표준 구조에 부합하지 않는 경우 함수는 빈 테이블을 반환한다.
게탈리아스
Wikicode에서 사용할 경우, 이 함수는 데이터 템플릿의 단일 필드 값을 반환한다.첫 번째 매개변수는 데이터를 반환할 국가 또는 기타 실체, 두 번째 매개변수는 필드 이름이다.예를 들면{{#invoke:CountryData getalias France flag alias}}→ 프랑스의 국기다른 파라미터는 variant=변종이 존재하지 않는 경우 주 필드 값으로 폴백(fallback)을 사용하여 변종 매개변수 값을 반환한다. def=원하는 데이터 템플릿 또는 필드가 없는 경우 예비 출력의 경우, 기본값은 리터럴 "nil"이다.
참고: 이는 {{getalias}}, {{getalias2}}개의 위키코드 전용 대안보다 빠르지 않을 것 같은데, 이는 루아로부터 데이터 템플릿을 복사하여 위의 기능을 이용하여 루아 테이블로 변환하여 원하는 매개변수 이름을 선택한 후 위키코드로 되돌리는 반면, 다른 템플릿은 m에서 얻을 수 있는 두 가지의 간단한 비 루아 트랜클로저를 수행하기 때문이다.ost 케이스, 같은 결과야루아 버전은 존재하지 않는 국가 데이터 템플릿과 함께 사용할 경우 "nil"(또는 nil)을 반환한다는 장점이 있다. def=데이터 템플릿에 대한 빨간색 링크 대신 )사용자:SiBr4/Flagg 테스트#Lua 기반 게탈리아에서 4개의 비교를 참조하십시오.
템포가 생기다
이 함수는 데이터 템플릿의 필드를 직접 혼용할 때 얻을 수 있는 것과 유사한 문자열로 연결한다.템플릿이 Lua로 올바르게 변환되고 있는지 테스트하기 위한 직접적 전폐와 비교할 수 있다.
{{#tag:pre {{Country data 프랑스}}}}{#tag:pre {{#invoke:컨트리데이터 gettemplate France}}}} 주다
{{ {{{1}}} alias = France flag alias = Flag of France.svg flag alias-1790 = Flag of France (1790–1794).svg flag alias-1794 = Flag of France (1794–1815, 1830–1958).svg flag alias-1814 = Royal flag of France during the Bourbon Restoration.svg flag alias-1830 = Flag of France (1794–1815, 1830–1958).svg flag alias-1848 = Drapeau france 1848.svg 플래그 별칭-1848a = 드라파우 프랑스 1848.svg 플래그 별칭-1848b = 프랑스의 국기(1794–1815, 1830–1958)svg 플래그 별칭-1974 = 프랑스의 국기(더 작은 변종)svg기 가명-나발 = 프랑스의 민관 해군 해군 함정.svg기 가명-나발-1790 = 프랑스-나비-레볼루션의 국기.svg기 가명-공군 = 프랑스 국기.svg 링크 가명-공군 기명-코스트 가드 = 프랑스 연해군 기명-코스트레이싱 스트라이프.svg border-coast guard = link alias-coast guard = French Maritime Gendarmerie flag alias-army = Flag of France.svg link alias-army = French Army link alias-naval = French Navy flag alias-navy = Civil and Naval Ensign of France.svg link alias-navy = French Navy size = name = altlink = variant = }} {{ {{{1}}} altlink = flag alias-naval-1790 = Flag of French-Navy-Revolution.svg link alias-coast guard = French Maritime Gendarmerie border-coast guard = flag alias-1848 = Drapeau france 1848.svg flag alias = Flag of France.svg variant = flag alias-1814 = Royal flag of France during the Bourbon Restoration.svg flag alias-1830 =프랑스의 국기(1794–1815, 1830–1958)svg alias = France flag alias-1794 = Flag of France (1794–1815, 1830–1958).svg flag alias-army = Flag of France.svg flag alias-naval = Civil and Naval Ensign of France.svg flag alias-navy = Civil and Naval Ensign of France.svg flag alias-1848b = Flag of France (1794–1815, 1830–1958).svg name = size = flag alias-1848a = Drapeau france 1848.svg 링크 별칭-나발 = 프랑스 해군기 별칭-1974 = 프랑스의 국기(더 작은 변종)svg 링크 별칭-공군 = 프랑스 공군 및 우주군 링크 별칭-army = 프랑스 육군 국기 별칭-코스트 가드 = 프랑스 해상 겐다메리 레이싱 스트라이프.svg 국기 별칭-1790 = 프랑스 국기(1790–1794)svg 국기 별칭-공군 = 프랑스 해군 } 모든 루아 테이블과 마찬가지로 항목 순서가 보존되지 않기 때문에 파라미터가 혼재된다는 점에 유의하십시오.
국부적 p = {} 국부적 가장 많이 사용됨 = mw.로드데이터('모듈:국가 데이터/요약') 국부적 기능을 발휘하다 불만을 품다(액자에 넣다,시골,모조품) 돌아오다 액자에 넣다:expansion템플릿({칭호를 붙이다="국가 데이터"..시골;아그=모조품}) 종지부를 찍다 기능을 발휘하다 p.카셰어링할 수 있는(액자에 넣다, 시골, 모조품) 시골 = 가장 많이 사용됨.방향을 바꾸다[시골] 또는 시골 만일 모조품 그리고 다음에(모조품) 그때 돌아오다 p.손에 넣을 수 있는(액자에 넣다, 시골, 모조품) 종지부를 찍다 -- mw.loadData를 사용하여 가장 많이 사용되는 템플릿의 데이터 캐시 만일 가장 많이 사용됨.페이지[시골] 그때 국부적 캐쉬 = mw.로드데이터('모듈:국가 데이터/캐시' .. 가장 많이 사용됨.페이지[시골]) 만일 캐쉬.자료[시골] 그때 돌아오다 캐쉬.자료[시골] 종지부를 찍다 종지부를 찍다 -- 캐시에 저장되어 있지 않은 경우 돌아오다 p.손에 넣을 수 있는(액자에 넣다, 시골, 모조품) 종지부를 찍다 기능을 발휘하다 p.손에 넣을 수 있는(액자에 넣다,시골,모조품) --국가 데이터 템플릿의 매개 변수를 Lua 테이블로 반환 --유효한 데이터 템플릿이 아닌 경우 빈 테이블을 반환하십시오. 국부적 바가지 긁다, s = 피콜(불만을 품다,액자에 넣다,시골,모조품 또는 {}) 만일 바가지 긁다 그리고 (끈.찾다(s,"^%{%{ *%{%{%{1") 또는 끈.찾다(s,"^%{%{safesubst: *%{%{%{%{1")) 그때 --임의 제어 문자로 매개변수 구분 기호 바꾸기 --파라미터 값에 등호/파이프 기호가 포함된 경우 충돌을 방지하기 위해 s = 끈.gsub(s," ([^ =]-)=","\1\1%1\2") s = 끈.gsub(s,"}%s*$","\1") --끈 위에 루프하고 테이블에 매개 변수 추가 국부적 가르다 = {} 을 위해 액면 그대로 에 끈.gmatch(s,"\1[^\1\2]-\2[^\1\2]-\1") 하다 국부적 k = 끈.매치(액면 그대로,"\1%s*(-)%s*\2") 국부적 v = 끈.매치(액면 그대로,"\2%s*(-)%s*\1") 만일 v 그리고 아닌 (v=="" 그리고 끈.찾다(k,"^^별칭")) 그때 가르다[k] = v 종지부를 찍다 종지부를 찍다 돌아오다 가르다 다른 돌아오다 {} 종지부를 찍다 종지부를 찍다 기능을 발휘하다 p.게탈리아스(액자에 넣다) --데이터 템플릿에서 단일 매개 변수 값 반환 국부적 가르다 = p.손에 넣을 수 있는(액자에 넣다,액자에 넣다.아그[1]) 만일 액자에 넣다.아그.변형된 그때 돌아오다 토스트링(가르다[액자에 넣다.아그[2].."-"..액자에 넣다.아그.변형된] 또는 가르다[액자에 넣다.아그[2]] 또는 액자에 넣다.아그.반항하다) 다른 돌아오다 토스트링(가르다[액자에 넣다.아그[2]] 또는 액자에 넣다.아그.반항하다) 종지부를 찍다 종지부를 찍다 기능을 발휘하다 p.템포가 생기다(액자에 넣다) --테스트를 위해 생성된 Lua 테이블에서 국가 데이터 다시 생성 --데이터 테이블 가져오기 국부적 자료 = p.손에 넣을 수 있는(액자에 넣다,액자에 넣다.아그[1]) --필드를 템플릿과 같은 문자열로 결합 국부적 밖으로 = "{{ {{{1}}}" 을 위해 k,v 에 쌍들(자료) 하다 밖으로 = 밖으로.."\n"..k.." = "..v 종지부를 찍다 돌아오다 밖으로.."\n}}" 종지부를 찍다 돌아오다 p