모듈:메시지 상자/샌드박스

Module
요구하다('''비공식''') 현지의 args를 얻다 현지의 예 아니오 = 요구하다('모듈:'예스노') 현지의 랑그 = mw.언어.콘텐츠 언어 가져오기()  현지의 CONFIG_MODULE = '모듈:메시지 상자/구성' 현지의 디스스페이스 = {말해라. = 'tmbox', 이미지 = '임박스', 파일 = '임박스', 카테고리 = 'cmbox', 기사 = '암박스', 주된 = '암박스'}  -------------------------------------------------------------------------------- 도우미 기능 --------------------------------------------------------------------------------  현지의 기능. 제목 개체 가져오기(...)  pcall을 통해 함수를 전달하는 제목 개체를 가져옵니다.  값비싼 기능 개수 제한을 초과할 경우.  현지의 성공., 제목 = pcall(mw.제목.신규, ...)  한다면 성공. 그리고나서   돌아가다 제목  끝. 끝.  현지의 기능. 조합(t1, t2)  두 배열의 결합을 반환합니다.  현지의 밸브 = {}  위해서 i, v  짝을 짓다(t1) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   밸브[v] = 진실의  끝.  위해서 i, v  짝을 짓다(t2) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   밸브[v] = 진실의  끝.  현지의 리트 = {}  위해서 k  쌍들(밸브) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   표.삽입(리트, k)  끝.  테이블. 테이블.(리트)  돌아가다 리트 끝.  현지의 기능. ArgNums 가져오기(논병아리, 접두어)  현지의 숫자들 = {}  위해서 k, v  쌍들(논병아리) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   현지의 번호 = mw.ustring.경기(끈으로 묶는(k), '^' .. 접두어 .. '([1-9]%d*)
                
) 한다면 번호 그리고나서 표.삽입(숫자들, 수에 달하여(번호)) 끝. 끝. 테이블. 테이블.(숫자들) 돌아가다 숫자들 끝. -------------------------------------------------------------------------------- 상자 클래스 정의 -------------------------------------------------------------------------------- 현지의 메시지 상자 = {} 메시지 상자.__index = 메시지 상자 기능. 메시지 상자.신규(상자 유형, 논병아리, cfg) 논병아리 = 논병아리 또는 {} 현지의 obj = {} 제목 개체와 네임스페이스를 설정합니다. obj.제목 = 제목 개체 가져오기(논병아리.페이지입니다.) 또는 mw.제목.현재 제목 가져오기() 상자 유형에 대한 구성을 설정합니다. obj.cfg = cfg[상자 유형] 한다면 것은 아니다. obj.cfg 그리고나서 현지의 ns = obj.제목.네임스페이스 boxType이 "mbox"이거나 잘못된 입력입니다. 한다면 논병아리.공간을 없애다 그리고. 논병아리.공간을 없애다 ~= '' 그리고나서 mbox의 demospace 매개 변수 구현 현지의 공간을 없애다 = 스트링.하의(논병아리.공간을 없애다) 한다면 디스스페이스[공간을 없애다] 그리고나서 DEMOSPACE의 템플릿 사용 obj.cfg = cfg[디스스페이스[공간을 없애다]] 그렇지 않으면 줄을 대다( 공간을 없애다, '말하기' ) 그리고나서 토크 페이지로서의 데모 obj.cfg = cfg.tmbox 또 다른 기본 Tombox obj.cfg = cfg.옴박스 끝. 그렇지 않으면 ns == 0 그리고나서 obj.cfg = cfg.탄약통 주 네임스페이스 그렇지 않으면 ns == 6 그리고나서 obj.cfg = cfg.우편함 파일 네임스페이스 그렇지 않으면 ns == 14 그리고나서 obj.cfg = cfg.cm박스 범주 네임스페이스 또 다른 현지의 ns테이블 = mw.위치.네임스페이스[ns] 한다면 ns테이블 그리고. ns테이블.아이스톡 그리고나서 obj.cfg = cfg.tmbox 임의의 토크 네임스페이스 또 다른 obj.cfg = cfg.옴박스 다른 네임스페이스 또는 잘못된 입력 끝. 끝. 끝. 인수를 설정하고 인수를 제외한 모든 빈 인수를 제거합니다. cfg.allowBlankParams에 나열됩니다. 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 현지의 뉴아그스 = {} 위해서 k, v 쌍들(논병아리) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 한다면 v ~= '' 그리고나서 뉴아그스[k] = v 끝. 끝. 위해서 i, PARAM. 짝을 짓다(obj.cfg.빈 매개 변수 허용 또는 {}) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 뉴아그스[PARAM.] = 논병아리[PARAM.] 끝. obj.논병아리 = 뉴아그스 끝. 내부 데이터 구조를 정의합니다. obj.분류 = {} obj. = {} 모듈을 느리게 로드하는 경우:범주 처리기]]. obj.범주 있음 = 거짓의 돌아가다 상을 차리다(obj, 메시지 상자) 끝. 기능. 메시지 상자:고양이 추가(ns, 고양이, 종류) 한다면 것은 아니다. 고양이 그리고나서 돌아가다 영의 끝. 한다면 종류 그리고나서 고양이 = string.형식('[[범주:%s %s]]', 고양이, 종류) 또 다른 고양이 = string.형식('[범주:%s]', 고양이) 끝. 자신.범주 있음 = 진실의 자신.분류[ns] = 자신.분류[ns] 또는 {} 표.삽입(자신.분류[ns], 고양이) 끝. 기능. 메시지 상자:addClass(학급) 한다면 것은 아니다. 학급 그리고나서 돌아가다 영의 끝. 표.삽입(자신., 학급) 끝. 기능. 메시지 상자:매개변수 설정() 현지의 논병아리 = 자신.논병아리 현지의 cfg = 자신.cfg 유형 데이터를 가져옵니다. 자신.유형 = 논병아리.유형 현지의 typeData = cfg.종류들[자신.유형] 자신.잘못된 유형 오류 = cfg.잘못된 유형 오류 표시 그리고. 자신.유형 그리고. 것은 아니다. typeData typeData = typeData 또는 cfg.종류들[cfg.체납] 자신.typeClass = typeData.학급 자신.typeImage = typeData.이미지 상자가 잘못 교체되었는지 확인합니다. 자신.대체됨 = cfg.하위 검사 그리고. 논병아리.하부의 == 'SUBST' 작은 메시지 상자를 사용하고 있는지 확인합니다. 자신.작음 = cfg.작게 허용 그리고. ( cfg.smallParam 그리고. 논병아리.작은. == cfg.smallParam 또는 것은 아니다. cfg.smallParam 그리고. 예 아니오(논병아리.작은.) ) 속성, 클래스 및 스타일을 추가합니다. 자신.이드 = 논병아리.이드 자신.이름. = 논병아리.이름. 한다면 자신.이름. 그리고나서 자신:addClass('박스-' .. string.gsub(자신.이름.,' ','_')) 끝. 한다면 예 아니오(논병아리.평이한 관계) ~= 거짓의 그리고나서 자신:addClass('연결 해제') 끝. 위해서 _, 학급 짝을 짓다(cfg. 또는 {}) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 자신:addClass(학급) 끝. 한다면 자신.작음 그리고나서 자신:addClass(cfg.소반 또는 'mbox-small') 끝. 자신:addClass(자신.typeClass) 자신:addClass(논병아리.학급) 자신.스타일. = 논병아리.스타일. 자신.trs = 논병아리.trs 텍스트 스타일을 설정합니다. 자신.텍스트 스타일 = 논병아리.텍스트 스타일 템플릿 페이지에 있는지 확인합니다.이 기능은 다음과 같습니다. Collapsible을 사용하는 경우 사용텍스트 필드가 설정되었거나 cfg.templateCategory가 모두 설정된 경우 및 cfg.templateCategoryRequireName이 설정됩니다. 자신.접을 수 있음텍스트 필드 = cfg.접을 수 있음텍스트 필드 한다면 자신.접을 수 있음텍스트 필드 또는 cfg.템플릿 카테고리 그리고. cfg.템플릿 카테고리이름 필요 그리고나서 한다면 자신.이름. 그리고나서 현지의 템플릿Name = mw.ustring.경기( 자신.이름., '^[tT][eE][mM][pP][lA][tT][eE][%s_]*:[%s_]*(*)
$$SIDE_BOTTOM$$
    $$BOTTOM$$