모듈:지역 토픽

Module

현지의 p = {}  현지의 대상 리디렉션 = 요구하다("모듈:리디렉션").대상 가져오기  현지의 기능. 빈 ToNil(s)  -- 공백으로만 구성된 문자열을 0으로 바꿉니다.  돌아가다 s 그리고. 줄을 대다(s, '%S') 그리고. s 또는 영의 끝.  현지의 기능. 링크를 해제합니다(s)  돌아가다 s=="연결 해제" 끝.  현지의 yn_map = {네.="y", y="y", ["참"]="y", ["1"]="y", 아니요.="n", n="n", ["거짓"]="n", ["0"]="n", [""]="e"} 현지의 기능. yn의(s,지도)  --"예"/"아니오" 문자열을 부울 문자열로 변환합니다. map은  --각 입력 유형을 지정하는 테이블  --로 표시되며, 기본값은 {{yesno}}과(와) 일치합니다.  지도 = 지도 또는 {}  현지의 fmap = {y = 지도.y 또는 1, --예, 예, 참, 1.                n = 지도.n 또는 0, --아니, 아니, 거짓, 0.                o = 지도.o 또는 지도.y 또는 1, --기타                e = 지도.e 또는 지도.n 또는 0, --빈 문자열                u = 지도.u 또는 지도.n 또는 0} --지정되지 않음(수정)  현지의 번호 = s 그리고. fmap[yn_map[s] 또는 "o"] 또는 fmap.u  돌아가다 번호 ~= 0 끝.  현지의 기능. yn3(s,nrl)  --"예"/"아니오" 문자열을 숫자(1=예, 0=아니오, 0.5=숫자)로 변환합니다.  현지의 yn의 = yn_map[s 또는 ""]  돌아가다 (yn의=="y" 그리고. 1) 또는 (nrl 그리고. 링크를 해제합니다(s) 그리고. 1) 또는 (yn의=="n" 그리고. 0) 또는 0.5 끝.  현지의 기능. xor(a,b)  --논리적 XOR 함수  돌아가다 것은 아니다. a ~= 것은 아니다. b 끝.  현지의 기능. 실패로 끝나다(t)  현지의 i = 1  현지의 r = 0.5  하는 동안에 r==0.5 그리고. t[i] 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   r = t[i]   i = i + 1  끝.  돌아가다 (r 그리고. r~=0) 그리고. 1 또는 0 끝.  현지의 기능. 로드 데이터(d)  한다면 유형(d)=="테이블" 그리고나서   돌아가다 d  그렇지 않으면 유형(d)=="문자열" 그리고. 빈 ToNil(d) 그리고나서   돌아가다 mw.로드 데이터(d)  또 다른   돌아가다 오류("데이터 페이지 또는 테이블이 지정되지 않음")  끝. 끝.  기능. p.루아 메인(,논병아리)  --navbox를 생성합니다(다른 Lua 스크립트용).   --navbox 스타일 매개변수 전달  현지의 navboxArgs = {   이름. = 논병아리.이름. 또는 오류("이름 매개 변수 없음"),    = 논병아리. 또는 "임시 붕괴",   타이틀 스타일 = 논병아리.타이틀 스타일,   보디 스타일 = 논병아리.보디 스타일,   상투적인 스타일 = 논병아리.상투적인 스타일,   저속한 = 논병아리.저속한,   그룹 스타일 = 논병아리.그룹 스타일,   리스트 스타일 = 논병아리.리스트 스타일,   리스트 클래스 = "hlist",   이미지 = 논병아리.이미지,   위에 = 논병아리.위에,   경계 = 논병아리.경계,   나비바 = 논병아리.나비바  }   --데이터 로드 페이지  현지의 데이터. = 로드 데이터(논병아리.데이터.)   -- 접두사/접미사 매개변수  현지의 접두어 = 빈 ToNil(논병아리.접두어 또는 논병아리[1])  현지의 접미사 = 빈 ToNil(논병아리.접미사 또는 논병아리[2])  접두어 = (접두어 또는 "")..(것은 아니다. yn의(논병아리.접두사 공백 없음) 그리고. 접두어 그리고. " " 또는 "")  접미사 = (것은 아니다. yn의(논병아리.6공간이 없음) 그리고. 접미사 그리고. " " 또는 "")..(접미사 또는 "")  --필요한 경우 정관사 "the"를 포함하도록 전환합니다.  현지의 기사  한다면 논병아리.기사 그리고나서   기사 = yn의(논병아리.기사)  또 다른   기사 = (접두어~="" 그리고. 접미사=="")  끝.  --존재하지 않는 아티클을 생략하도록 전환(지정되지 않은 경우 0.5)  현지의 레드링크 없음 = yn3(논병아리.노링크,1)  현지의 연결 해제RedLinks = 링크를 해제합니다(논병아리.노링크)  --방향 수정을 자동으로 따르도록 전환합니다.  현지의 노 레더즈 = yn3(논병아리.지시 없음)   --navbox 제목 만들기  한다면 논병아리.제목 그리고나서   navboxArgs.제목 = 논병아리.제목  또 다른   현지의 링크Name = 데이터..지역 또는 오류("데이터 페이지에 영역 매개 변수 없음")   현지의 링크 아티클 = (기사 그리고. 데이터..지역_더) 그리고. (접두어=="" 그리고. "더" 또는 "더") 또는 ""   현지의 전체 링크 = 접두어..링크 아티클..링크Name..접미사   한다면 레드링크 없음==0 또는 mw.제목.신규(전체 링크).존재한다 그리고나서    navboxArgs.제목 = "[["..전체 링크.."]]"   또 다른    navboxArgs.제목 = 전체 링크   끝.  끝.   --그룹 위로 루프  현지의 n번째 그룹 = 1  현지의 n번째 표시 그룹 = 1  하는 동안에 데이터.["그룹"..n번째 그룹] 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   --그룹을 숨기지 않거나 제외하지 않은 경우   한다면 것은 아니다. 데이터.["그룹"..n번째 그룹].스위치     또는 것은 아니다. 논병아리[데이터.["그룹"..n번째 그룹].스위치] 그리고. 것은 아니다. 데이터.["그룹"..n번째 그룹].숨은     또는 논병아리[데이터.["그룹"..n번째 그룹].스위치]       그리고. xor(yn의(논병아리[데이터.["그룹"..n번째 그룹].스위치],{o=0}),데이터.["그룹"..n번째 그룹].negate_switch)   그리고나서    --목록 작성 및 항목 루프오버    현지의 목록. = {}    현지의 listSortMap = {}    위해서 n차 국가,국가 데이터  짝을 짓다(데이터.["그룹"..n번째 그룹].데이터.) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다     현지의 코드 = 국가 데이터[1]     현지의 countryName = 빈 ToNil(논병아리[코드.."_name"]) 또는 국가 데이터[2] 또는 국가 데이터[1]     현지의 listItem     --국가를 포함해야 하는지 여부 결정     한다면 yn의(논병아리[코드],{u=1})       그리고. (논병아리[코드]            또는 것은 아니다. (국가 데이터.스위치 그리고. 논병아리[국가 데이터.스위치]) 그리고. 것은 아니다. 국가 데이터.숨은            또는 국가 데이터.스위치 그리고. 논병아리[국가 데이터.스위치]              그리고. xor(yn의(논병아리[국가 데이터.스위치],{o=0}),국가 데이터.negate_switch))     그리고나서      --링크 대상 결정      현지의 링크Name = 국가 데이터.링크 또는 국가 데이터[2] 또는 국가 데이터[1]      현지의 링크 아티클 = (기사 그리고. 국가 데이터.) 그리고. "더" 또는 ""      현지의 전체 링크 = 것은 아니다. yn의(논병아리[코드],{o=0}) 그리고. 논병아리[코드] 또는 (접두어..링크 아티클..링크Name..접미사)      --존재하지 않는 경우 목록 항목 만들기      현지의 RedLink 없음 = 실패로 끝나다({yn3(논병아리[코드.."_noredlink"],1),레드링크 없음,국가 데이터.노드 링크 또는 0})      한다면 (논병아리[코드] 또는 RedLink 없음~=1 또는 mw.제목.신규(전체 링크).존재한다) 그리고. 것은 아니다. 링크를 해제합니다(논병아리[코드]) 그리고나서       현지의 레디르 없음 = 실패로 끝나다({yn3(논병아리[코드.."_직접 연결 안 함]),노 레더즈,국가 데이터.직접적이지 않은 또는 0})       listItem = "[["..(레디르 없음==1 그리고. 대상 리디렉션(전체 링크) 또는 전체 링크).." "..countryName.."]]"      그렇지 않으면 링크를 해제합니다(논병아리[코드]) 또는 링크를 해제합니다(논병아리[코드.."_noredlink"])             또는 연결 해제RedLinks 또는 링크를 해제합니다(국가 데이터.노드 링크)      그리고나서       listItem = countryName      끝.     끝.     --있는 경우 하위 목록 만들기     한다면 국가 데이터.부분군 그리고나서      현지의 하위 그룹 = 국가 데이터.부분군      현지의 하위 목록 = {}      현지의 하위 목록 소트 맵 = {}      위해서 n번째 하위 국가,하위 국가 데이터  짝을 짓다(하위 그룹) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다       --메인 아이템 코드와 유사       현지의 하위 코드 = 하위 국가 데이터[1]       현지의 하위 국가Name = 빈 ToNil(논병아리[하위 코드.."_name"])                              또는 하위 국가 데이터[2] 또는 하위 국가 데이터[1]       현지의 subLinkName = 하위 국가 데이터.링크 또는 하위 국가 데이터[2] 또는 하위 국가 데이터[1]       현지의 하위 링크 아티클 = (기사 그리고. 하위 국가 데이터.) 그리고. "더" 또는 ""       현지의 subFullLink = 것은 아니다. yn의(논병아리[하위 코드],{o=0}) 그리고. 논병아리[하위 코드]                           또는 (접두어..하위 링크 아티클..subLinkName..접미사)       현지의 RedLink 없음 = 실패로 끝나다({yn3(논병아리[하위 코드.."_noredlink"],1),                                      레드링크 없음,하위 국가 데이터.노드 링크 또는 0})       한다면 yn의(논병아리[하위 코드],{u=1})          그리고. (논병아리[하위 코드]               또는 (것은 아니다. (하위 그룹.스위치 그리고. 논병아리[하위 그룹.스위치]) 그리고. 것은 아니다. 하위 그룹.숨은                   또는 하위 그룹.스위치 그리고. 논병아리[하위 그룹.스위치]                     그리고. xor(yn의(논병아리[하위 그룹.스위치],{o=0}),하위 그룹.negate_switch))                 그리고. 것은 아니다. (하위 국가 데이터.스위치 그리고. 논병아리[하위 국가 데이터.스위치])                 그리고. 것은 아니다. 하위 국가 데이터.숨은               또는 하위 국가 데이터.스위치 그리고. 논병아리[하위 국가 데이터.스위치]                 그리고. xor(yn의(논병아리[하위 국가 데이터.스위치],{o=0}),하위 국가 데이터.negate_switch))       그리고나서        한다면 (논병아리[하위 코드] 또는 RedLink 없음~=1 또는 mw.제목.신규(subFullLink).존재한다) 그리고. 것은 아니다. 링크를 해제합니다(논병아리[하위 코드]) 그리고나서         현지의 레디르 없음 = 실패로 끝나다({yn3(논병아리[하위 코드.."_직접 연결 안 함]),                                      노 레더즈,하위 국가 데이터.직접적이지 않은 또는 0})         하위 목록[#하위 목록+1] = "<li>["..(레디르 없음==1 그리고. 대상 리디렉션(subFullLink) 또는 subFullLink)                               .." "..하위 국가Name.."[]//li"         하위 목록 소트 맵[#하위 목록 소트 맵+1] = {논병아리[하위 코드.."_filename"] 또는 논병아리[하위 코드.."_name"]                                              또는 하위 국가 데이터[2] 또는 하위 국가 데이터[1],#하위 목록 소트 맵+1}        그렇지 않으면 링크를 해제합니다(논병아리[하위 코드]) 또는 링크를 해제합니다(논병아리[하위 코드.."_noredlink"])               또는 연결 해제RedLinks 또는 링크를 해제합니다(하위 국가 데이터.노드 링크)        그리고나서         하위 목록[#하위 목록+1] = "<li>"..하위 국가Name.."/li"         하위 목록 소트 맵[#하위 목록 소트 맵+1] = {논병아리[하위 코드.."_filename"] 또는 논병아리[하위 코드.."_name"]                                              또는 하위 국가 데이터[2] 또는 하위 국가 데이터[1],#하위 목록 소트 맵+1}        끝.       끝.      끝.      --공백이 아닌 경우 국가 항목에 추가      한다면 #하위 목록>0 그리고나서       테이블. 테이블.(하위 목록 소트 맵, 기능.(t1,t2) 돌아가다 t1[1]<t2[1] 끝.)       현지의 하위 목록 정렬 = {}       위해서 목록 위치 정렬,목록 항목 정렬  짝을 짓다(하위 목록 소트 맵) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다        하위 목록 정렬[목록 위치 정렬] = 하위 목록[목록 항목 정렬[2]]       끝.       listItem = (listItem 또는 countryName).."\n<ul>\n"..테이블.콘캣(하위 목록 정렬,"\n").."\n</ul>"      끝.     끝.     한다면 listItem 그리고나서      목록.[#목록.+1] = "<li>"..listItem.."/li"      listSortMap[#listSortMap+1] = {논병아리[코드.."_filename"] 또는 countryName, #listSortMap+1}     끝.    끝.    --navbox 인수에 그룹 이름 및 데이터 추가    한다면 데이터.["그룹"..n번째 그룹].이름. 그리고나서     한다면 string.match(데이터.["그룹"..n번째 그룹].이름.,"%{%{") 그리고나서      navboxArgs["그룹"..n번째 표시 그룹] = :전처리(데이터.["그룹"..n번째 그룹].이름.)     또 다른      navboxArgs["그룹"..n번째 표시 그룹] = 데이터.["그룹"..n번째 그룹].이름.     끝.    끝.    --목록을 정렬하고 비어 있지 않은 경우 navbox 매개변수로 이동합니다.    한다면 #목록.>0 또는 yn의(논병아리.빈 그룹 표시) 그리고나서     테이블. 테이블.(listSortMap, 기능.(t1,t2) 돌아가다 t1[1]<t2[1] 끝.)     현지의 listSorted = {}     위해서 목록 위치 정렬,목록 항목 정렬  짝을 짓다(listSortMap) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다      listSorted[목록 위치 정렬] = 목록.[목록 항목 정렬[2]]     끝.     navboxArgs["리스트"..n번째 표시 그룹] = "<ul>\n"..테이블.콘캣(listSorted,"\n").."\n</ul>"     n번째 표시 그룹 = n번째 표시 그룹 + 1    끝.   끝.   n번째 그룹 = n번째 그룹 + 1  끝.   --navbox 모듈 호출  돌아가다 요구하다("모듈:탐색 상자")._navbox(navboxArgs) 끝.  기능. p.주된()  --navbox를 생성합니다(위키텍스트용).  현지의 논병아리 = 요구하다("모듈:인수").args를 얻다(, {공백 제거 = 거짓의})  돌아가다 p.루아 메인(,논병아리) 끝.  기능. p.루아리스트(,data 페이지)  --엔티티 및 관련 매개변수 목록을 생성합니다.  --템플릿 문서에서 사용(다른 Lua 스크립트에 사용)   --데이터 로드 페이지  현지의 데이터. = 로드 데이터(data 페이지)   --테이블 및 머리글 행 작성  현지의 테이블 = mw.html.만들다("테이블"):addClass("반복 가능한 접이식"):CSS("색상","#000")  현지의 테이블 헤드 = 테이블:꼬리표를 달다("tr"):CSS("표준 중량","대담한")  테이블 헤드:꼬리표를 달다("th"):CSS("배경색","#e8e8e8"):위키텍스트("코드")  테이블 헤드:꼬리표를 달다("th"):CSS("배경색","#e8e8e8"):위키텍스트("표시 이름 [링크 이름]")  테이블 헤드:꼬리표를 달다("th"):CSS("배경색","#e8e8e8"):위키텍스트("스위치")  테이블 헤드:꼬리표를 달다("th"):CSS("배경색","#e8e8e8"):위키텍스트("숨겼나요?")   --그룹 위로 루프  현지의 n번째 그룹 = 1  하는 동안에 데이터.["그룹"..n번째 그룹] 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   --그룹 데이터 추가   현지의 그룹 헤드 = 테이블:꼬리표를 달다("tr"):CSS("배경색","#eaf1fe")   그룹 헤드:꼬리표를 달다("스캐너덜너덜)   한다면 데이터.["그룹"..n번째 그룹].이름. 그리고. string.match(데이터.["그룹"..n번째 그룹].이름.,"%{%{") 그리고나서    그룹 헤드:꼬리표를 달다("스캐너덜너덜):CSS("표준 중량","대담한"):위키텍스트(:전처리(데이터.["그룹"..n번째 그룹].이름.))   또 다른    그룹 헤드:꼬리표를 달다("스캐너덜너덜):CSS("표준 중량","대담한"):위키텍스트(데이터.["그룹"..n번째 그룹].이름. 또는 "<i>무명 그룹")   끝.   그룹 헤드:꼬리표를 달다("스캐너덜너덜):css텍스트(데이터.["그룹"..n번째 그룹].negate_switch 그리고. "텍스트 장식:오버라인;" 또는 "")            :위키텍스트(데이터.["그룹"..n번째 그룹].스위치 또는 "")   그룹 헤드:꼬리표를 달다("스캐너덜너덜):위키텍스트(데이터.["그룹"..n번째 그룹].숨은 그리고. "예" 또는 "")   --그룹 항목 위로 루프   위해서 n차 국가,국가 데이터  짝을 짓다(데이터.["그룹"..n번째 그룹].데이터.) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다    --단일 입력 데이터 추가    현지의 컨트리 로우 = 테이블:꼬리표를 달다("tr"):CSS("배경색","#f8f8f8")    컨트리 로우:꼬리표를 달다("스캐너덜너덜):위키텍스트(국가 데이터[1])    현지의 countryName = 컨트리 로우:꼬리표를 달다("스캐너덜너덜):CSS("좌우로 이동","1em"):위키텍스트(국가 데이터[2] 또는 국가 데이터[1])    한다면 국가 데이터. 또는 국가 데이터.링크 그리고나서     countryName:위키텍스트(" ["..(국가 데이터. 그리고. "그" 또는 "")                              ..(국가 데이터. 그리고. 국가 데이터.링크 그리고. " " 또는 "")                              ..(국가 데이터.링크 또는 "").."]")    끝.    컨트리 로우:꼬리표를 달다("스캐너덜너덜):css텍스트(국가 데이터.negate_switch 그리고. "텍스트 장식:오버라인;" 또는 ""):위키텍스트(국가 데이터.스위치 또는 "")    컨트리 로우:꼬리표를 달다("스캐너덜너덜):위키텍스트(국가 데이터.숨은 그리고. "예" 또는 (국가 데이터.노드 링크 그리고. "존재에 따라 달라짐" 또는 ""))    --부분군 데이터가 있는 경우 추가    한다면 국가 데이터.부분군 그리고나서     현지의 하위 목록 헤드 = 테이블:꼬리표를 달다("tr"):CSS("배경색","#feffe2")     하위 목록 헤드:꼬리표를 달다("스캐너덜너덜)     하위 목록 헤드:꼬리표를 달다("스캐너덜너덜):CSS("좌우로 이동","2em"):CSS("표준 중량","대담한"):위키텍스트("부분군")     하위 목록 헤드:꼬리표를 달다("스캐너덜너덜):css텍스트(국가 데이터.부분군.negate_switch 그리고. "텍스트 장식:오버라인;" 또는 "")                          :위키텍스트(국가 데이터.부분군.스위치 또는 "")     하위 목록 헤드:꼬리표를 달다("스캐너덜너덜):위키텍스트(국가 데이터.부분군.숨은 그리고. "예" 또는 "")     위해서 n번째 하위 국가,하위 국가 데이터  짝을 짓다(국가 데이터.부분군) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다      현지의 하위 국가 행 = 테이블:꼬리표를 달다("tr"):CSS("배경색","#tftfcf4")      하위 국가 행:꼬리표를 달다("스캐너덜너덜):위키텍스트(하위 국가 데이터[1])      현지의 하위 국가Name = 하위 국가 행:꼬리표를 달다("스캐너덜너덜):CSS("좌우로 이동","2em"):CSS("스캐너 스타일","이탤릭")                                                    :위키텍스트(하위 국가 데이터[2] 또는 하위 국가 데이터[1])      한다면 하위 국가 데이터. 또는 하위 국가 데이터.링크 그리고나서       하위 국가Name:위키텍스트(" ["..(하위 국가 데이터. 그리고. "그" 또는 "")                                   ..(하위 국가 데이터. 그리고. 하위 국가 데이터.링크 그리고. " " 또는 "")                                   ..(하위 국가 데이터.링크 또는 "").."]")      끝.      하위 국가 행:꼬리표를 달다("스캐너덜너덜):css텍스트(하위 국가 데이터.negate_switch 그리고. "텍스트 장식:오버라인;" 또는 "")                             :위키텍스트(하위 국가 데이터.스위치 또는 "")      하위 국가 행:꼬리표를 달다("스캐너덜너덜):위키텍스트(하위 국가 데이터.숨은                                       그리고. "예" 또는 (하위 국가 데이터.노드 링크 그리고. "존재에 따라 달라짐" 또는 ""))     끝.    끝.   끝.   n번째 그룹 = n번째 그룹 + 1  끝.  돌아가다 끈으로 묶는(테이블) 끝.  기능. p.목록.()  --엔티티 및 관련 매개변수 목록을 생성합니다.  --템플릿 문서에서 사용(위키텍스트용)  현지의 논병아리 = 요구하다("모듈:인수").args를 얻다()  돌아가다 p.루아리스트(,논병아리.데이터.) 끝.  돌아가다 p