모듈:고양이 메인/샌드박스

Module
-- 이 모듈은 {{cat main}}을(를) 구현합니다.  현지의 mHatnote = 요구하다('모듈:해트노트') 현지의 mFormatLink = 요구하다('모듈:링크 포맷') 현지의 네, 아니요 = 요구하다('모듈:네, 아니요.) 현지의 mTable툴 --게으른 초기화 현지의 mArguments(인수) --게으른 초기화  현지의 p = {}  기능. p.캣메인()  mTable툴 = 요구하다('모듈:테이블 도구')  mArguments(인수) = 요구하다('모듈:인수')  현지의 args = mArguments(인수).취득하다(, {포장지 = '템플릿:고양이 메인'})  현지의 페이지 = mTable툴.compressSparseArray(args)  현지의 옵션들 = {   기사 = args.기사,   셀프레프 = args.셀프레프  }  돌아가다 p._catMain(옵션들, 개봉하다(페이지)) 끝.  기능. p._catMain(옵션들, ...)  옵션들 = 옵션들 또는 {}   -- 링크 테이블을 가져옵니다.  현지의 링크 = mFormatLink.포맷 페이지({}, {...})  한다면 것은 아니다. 링크[1] 그리고나서   현지의 페이지입니다. = .직함.get Current Title(전류 제목)().본문   링크[1] = mFormatLink._formatLink{링크 = 페이지입니다.}  끝.  위해서 i, 링크  아이페어(링크) 하다   링크[i] = string.format("'%s'", 링크)  끝.   -- 페이지 유형을 가져옵니다.  현지의 페이지 = {...}  현지의 페이지 타입     한다면 옵션들.기사 ~= 제로 그리고나서   페이지 타입 = 네, 아니요(옵션들.기사) ~= 거짓의 그리고. 기사 또는 페이지  그렇지 않으면 페이지 그리고. 페이지[1] 그리고나서   현지의 페이지입니다. = 페이지[1]:서브(" .*","")   페이지 타입 = .직함.신규(페이지입니다.).네임스페이스 == 0 그리고. 기사 또는 페이지  또 다른   페이지 타입 = 기사  끝.   --단수인지 복수인지를 판단합니다.  현지의 string To Format(스트링 투 포맷)  한다면 #링크 > 1 그리고나서   string To Format(스트링 투 포맷) = '도움말의 메인 %ss:카테고리 카테고리]는 %s입니다.'  또 다른   string To Format(스트링 투 포맷) = '이 [[도움말의 메인 %s:카테고리 카테고리]는 %s입니다.'  끝.   --텍스트를 가져옵니다.  현지의 본문 = string.format(   string To Format(스트링 투 포맷),   페이지 타입,   .본문.list To(링크)  )    -- 모듈로 전달합니다.모자 노트.  현지의 hn옵션 = {}  hn옵션.셀프레프 = 옵션들.셀프레프   돌아가다 mHatnote._해트노트(본문, hn옵션) 끝.  돌아가다 p