모듈:국가 데이터/샌드박스

Module
현지의 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