모듈:네임스페이스 검출/데이터
Module| 이 모듈은 페이지 보호 대상입니다.이 모듈은 매우 많은 페이지에서 사용 중이거나 매우 자주 교체됩니다.파손이나 실수는 많은 페이지에 영향을 미치고 사소한 편집이라도 서버에 큰 부하가 걸릴 수 있으므로 편집으로부터 보호됩니다. |
| 이 Lua 모듈은 시스템메시지에 사용되며 약 16,500,000페이지(전체 페이지의 약 29%)에 사용됩니다. 이를 변경하면 Wikipedia 사용자 인터페이스가 즉시 변경될 수 있습니다. 중대한 중단과 서버 로드를 방지하려면 모듈의 /sandbox 또는 /testcase 서브페이지 또는 자체 모듈 샌드박스에서 변경을 테스트해야 합니다.테스트한 변경은 한 번의 편집으로 이 페이지에 추가할 수 있습니다.토크 페이지에서 변경 사항을 논의한 후 구현하십시오. |
모듈 데이터 페이지는 다음과 같습니다.네임스페이스 검출 및 모듈:카테고리 핸들러/공유.mw.loadData를 사용하여 메인모듈에 의해 로드됩니다.즉, #invoke마다 1회 처리되는 것이 아니라 페이지마다 1회 처리됩니다.
-------------------------------------------------------------------------------- -- 네임스페이스 탐지 데이터 -- -- 이 모듈에는 [Module]의 데이터가 저장됩니다.로드되는 네임스페이스 탐지] 기준 - -- 퍼포먼스상의 이유로 #page가 아닌 page를 사용합니다. -------------------------------------------------------------------------------- 현지의 cfg = 요구하다('모듈:네임스페이스 검출/구성') 현지의 기능. 키 추가(t, 열쇠, default Key(기본 키)) 한다면 열쇠 ~= default Key(기본 키) 그리고나서 t[#t + 1] = 열쇠 끝. 끝. -- 기본 파라미터 이름별로 조회할 파라미터 테이블을 가져옵니다. --이것에 의해, Wiki는 cfg 테이블의 파라미터명을 커스터마이즈 할 수 있습니다. -- 디폴트 파라미터명이 항상 기능하도록 합니다.cfg 테이블 -- 값은 문자열 또는 문자열 배열로 추가할 수 있습니다. 현지의 defaultKeys(기본키) = { 메인, '말하다', '기타', '실패', 'demospace', '해제' } 현지의 arg키 = {} 위해서 i, default Key(기본 키) 에 아이페어(defaultKeys(기본키)) 하다 arg키[default Key(기본 키)] = {default Key(기본 키)} 끝. 위해서 default Key(기본 키), t 에 쌍들(arg키) 하다 현지의 cfg 값 = cfg[default Key(기본 키)] 현지의 cfg Value Type(cfg Value Type) = 유형(cfg 값) 한다면 cfg Value Type(cfg Value Type) == '문자열 그리고나서 키 추가(t, cfg 값, default Key(기본 키)) 그렇지 않으면 cfg Value Type(cfg Value Type) == '테이블' 그리고나서 위해서 i, 열쇠 에 아이페어(cfg 값) 하다 키 추가(t, 열쇠, default Key(기본 키)) 끝. 끝. cfg[default Key(기본 키)] = 제로 -- cfg 값은 필요 없기 때문에 해방합니다. 끝. 현지의 기능. getParamMappings() --[[ -- 매개 변수 이름이 네임스페이스 이름에 매핑되는 방법에 대한 테이블을 반환합니다.열쇠 -- 는 실제 네임스페이스 이름(소문자)입니다.값은 -- 그 네임스페이스에 사용할 수 있는 파라미터 이름(소문자).그 -- 테이블 엔트리는 다음과 같이 구성됩니다. -- { -- [''] = {'main'}, -- ['filename'] = {'filename', 'project', 'wp'} -- ... -- } --]] 현지의 매핑 = {} 현지의 메인 Ns 이름 = 음.위치.subject 네임스페이스[0].이름. 메인 Ns 이름 = 음.스트링.더 낮게(메인 Ns 이름) 매핑[메인 Ns 이름] = 음.클론(arg키.주된) 매핑['말하다'] = 음.클론(arg키.말해라.) 위해서 nsid, ns 에 쌍들(음.위치.subject 네임스페이스) 하다 한다면 nsid ~= 0 그리고나서 -- 메인 네임스페이스를 제외합니다. 현지의 nsname = 음.스트링.더 낮게(ns.이름.) 현지의 표준명 = 음.스트링.더 낮게(ns.표준명) 매핑[nsname] = {nsname} 한다면 표준명 ~= nsname 그리고나서 table.insert(매핑[nsname], 표준명) 끝. 위해서 _, 에일리어스 에 아이페어(ns.에일리어스) 하다 table.insert(매핑[nsname], 음.스트링.더 낮게(에일리어스)) 끝. 끝. 끝. 돌아가다 매핑 끝. 돌아가다 { arg키 = arg키, cfg = cfg, 매핑 = getParamMappings() }