모듈:국가 데이터/샌드박스
Module| 모듈 샌드박스 페이지는 다음과 같습니다.CountryData(diff). |
| 이 모듈은 페이지 보호 대상입니다.이 모듈은 매우 많은 페이지에서 사용 중이거나 매우 자주 교체됩니다.파손이나 실수는 많은 페이지에 영향을 미치고 사소한 편집이라도 서버에 큰 부하가 걸릴 수 있으므로 편집으로부터 보호됩니다. |
이 모듈에는 국가 데이터 템플릿(대부분 플래그 템플릿에 사용됨)에서 데이터를 추출하는 세 가지 기능이 있습니다.
취득할 수
데이터 템플릿에서 모든 파라미터를 추출하여 Lua 테이블로 반환합니다.이 함수는 다른 Lua 모듈에서만 사용할 수 있습니다. 다음을 사용하여 호출합니다.require('Module:CountryData').gettable(parameters).
첫 번째 파라미터는frame두 번째는 데이터를 가져오는 국가 또는 기타 엔티티입니다.옵션의 세 번째 파라미터는 데이터 템플릿에 전달되는 파라미터 테이블입니다.예를 들어 다음과 같은 경우가 있습니다. age=또는 mw=일부 스포츠 에일리어스 파라미터 값에 사용됩니다.예.,
현지의 데이터. = 요구하다('모듈:국가 데이터').취득할 수(틀,"프랑스",{나이="20",음='남자의 것'}) 데이터 템플릿이 존재하지 않거나 표준 구조에 적합하지 않은 경우 빈 테이블을 반환합니다.
게타리아
Wikicode에서 사용되는 경우 이 함수는 데이터 템플릿의 단일 필드 값을 반환합니다.첫 번째 파라미터는 데이터를 반환하는 국가 또는 기타 엔티티입니다.두 번째 파라미터는 필드 이름입니다.예를들면,{{#invoke:CountryData getalias France flag alias}}→ 프랑스의 국기.svg.기타 파라미터는 다음과 같습니다. variant=바리안트 파라미터 값을 반환하고 바리안트가 존재하지 않는 경우 메인필드 값으로 폴백합니다. def=폴백 출력의 경우 원하는 데이터 템플릿 또는 필드가 존재하지 않는 경우 기본값은 리터럴 "syslog"입니다.
주의: 이 방법은 {{getalias} 및 {{getalias2}}와 같은 Wikicode 전용 대체 방법보다 빠르지 않을 수 있습니다.이는 Lua에서 데이터 템플릿을 변환하여 위의 함수를 사용하여 Lua 테이블로 변환하고 원하는 파라미터 이름을 선택한 후 Wikicode로 되돌리는 반면 다른 템플릿은 두 개의 간단한 비 Lua clusion을 실행하여 m.ost 케이스, 같은 결과입니다.Lua 버전에는 존재하지 않는 국가 데이터 템플릿과 함께 사용하면 "nil"(또는 값)이 반환된다는 장점이 있습니다. def=데이터 템플릿에 대한 Redlink to data template.User:SiBr4/Flagg tests#Lua 기반 getalias에서 4가지 비교 내용을 참조하십시오.
get template
이 함수는 데이터 템플릿의 필드를 직접 변환했을 때와 유사한 문자열로 연결합니다.직접 변환과 비교하여 템플릿이 Lua로 올바르게 변환되는지 테스트할 수 있습니다.
{{#tag:pre {{Country data France}}} {{#tag:pre {{#invoke:}}:CountryData gettemplate France}}}: 주다
{{{{1}}} 별칭 = 프랑스 국기 별칭 = 프랑스 국기 별칭-1790 = 프랑스 국기(1790–1794) = 프랑스 국기 별칭-1794 = 프랑스 국기(1794–196), 프랑스 국기 별칭(1794–1830–196). 부르봉 왕실의 국기 별칭 = 프랑스 국기 별칭-1780–198.48.g flag alias-laugha = 드레이포 프랑스 1848.glag alias-laughb = 프랑스의 국기(1794–1830–1830–196).g flag alias-laug = 프랑스의 국기(서양식).svg flag alias-fair = civil and navalisign of France.svg flag alias-1790 = french-Navy-Revolution.svg flag alias-air-force = France.svg link alias-air-force = 프랑스 공군 깃발 alias-face-Grade = 프랑스 공군기명칭 가드 = 프랑스 해병대 french sv sv sverieerie sv sv sv sv sv sv sv sv sv sv sv sv sv sv sv sv sv sv svsvg 국경 경비대 = link alias-fair = link alias-fair = flag of France.svg link alias-fair = flag of france.svg link alias-fair = consign of France.s.svg link = alias-flink = alias-f = alt 크기 {{{{1}} altlink = flag alias-1790 = french-Navy-Revolution.svg link alias-guard = flag alias-g = french Maritary guard = flag of France-svg varias = langelias-g = flandalias-g = fland of France le flash = fland.svg.프랑스의 국기 (1794–1815, 1830–1958)svg alias = france flag alias-1794 = flag alias-1794 = flag alias-1794 = france flag alias-flag = civil and navalis of France = flag alias-b.svg flag = flag of France flag alias-f.svg = flag alias-flag = flas-france = flag = flas-flas-f.svgrance 1848.g link alias-timeout = 프랑스 해군 플래그 alias-timeout = 프랑스 국기(변종).svg link alias-air force = French Air and Space Force link alias-fair = french Army flag alias-fair-fair-france = france.svg link-fair-french = 프랑스 해군의 플래그 alias-french = 프랑스 해군의 기 모든 Lua 테이블과 마찬가지로 엔트리의 순서는 유지되지 않으므로 파라미터가 혼재됩니다.
현지의 p = {} 현지의 가장 많이 사용되다 = 음.로드 데이터('모듈:국가 데이터/개요') 현지의 기능. 콘텐츠를 취득하다(틀,나라,파라미터) 돌아가다 틀:확장 템플릿({직함="국가별 데이터"..나라;args=파라미터}) 끝. 기능. p.캐치테이블(틀, 나라, 파라미터) 나라 = 가장 많이 사용되다.리다이렉트[나라] 또는 나라 한다면 파라미터 그리고. 다음 분.(파라미터) 그리고나서 돌아가다 p.취득할 수(틀, 나라, 파라미터) 끝. -- mw.loadData를 사용하여 가장 많이 사용되는 템플릿의 데이터를 캐시합니다. 한다면 가장 많이 사용되다.페이지[나라] 그리고나서 현지의 캐시 = 음.로드 데이터('모듈:국가 데이터/캐시' .. 가장 많이 사용되다.페이지[나라]) 한다면 캐시.데이터.[나라] 그리고나서 돌아가다 캐시.데이터.[나라] 끝. 끝. --캐시에 없는 경우 돌아가다 p.취득할 수(틀, 나라, 파라미터) 끝. 기능. p.취득할 수(틀,나라,파라미터) --국가 데이터 템플릿의 매개 변수를 Lua 테이블로 반환합니다. --유효한 데이터 템플릿이 아닌 경우 빈 테이블을 반환합니다. 현지의 부울, s = pcall(콘텐츠를 취득하다,틀,나라,파라미터 또는 {}) 한다면 부울 그리고. (string.find(s,"^%{%{ *%{%{%{1") 또는 string.find(s,"^%{%{safesubst: *%{%{%{1」")) 그리고나서 --파라미터 구분자를 임의의 제어 문자로 바꿉니다. --파라미터 값에 등호/파이프 기호가 포함되어 있는 경우 충돌을 회피합니다. s = string.gsub(s," ([^ =]-)=","\1\1%1\2") s = string.gsub(s,"}}%s*$","\1") --문자열 위에 루프하여 테이블에 파라미터를 추가합니다. 현지의 일부 = {} 위해서 파 에 string.gmatch(s,"\1[^\1\2]-\2[^\1\2]-\1") 하다 현지의 k = string.match(파,"\1%s*(-)%s*\2") 현지의 v = string.match(파,"\2%s*(-)%s*\1") 한다면 v 그리고. 것은 아니다. (v=="" 그리고. string.find(k,"^가칭")) 그리고나서 일부[k] = v 끝. 끝. 돌아가다 일부 또 다른 돌아가다 {} 끝. 끝. 기능. p.게타리아(틀) --데이터 템플릿에서 단일 파라미터 값을 반환합니다. 현지의 일부 = p.취득할 수(틀,틀.args[1]) 한다면 틀.args.변종 그리고나서 돌아가다 스트링(일부[틀.args[2].."-"..틀.args.변종] 또는 일부[틀.args[2]] 또는 틀.args.방어하다) 또 다른 돌아가다 스트링(일부[틀.args[2]] 또는 틀.args.방어하다) 끝. 끝. 기능. p.get template(틀) --테스트를 위해 작성된 Lua 테이블에서 국가 데이터를 재생성합니다. --데이터 테이블 가져오기 현지의 데이터. = p.취득할 수(틀,틀.args[1]) --필드를 템플릿과 같은 문자열로 연결합니다. 현지의 나가. = "{{ {{{1}}}" 위해서 k,v 에 쌍들(데이터.) 하다 나가. = 나가..."\n"..k.." = "..v 끝. 돌아가다 나가..."\n}}" 끝. 돌아가다 p 