모듈:고양이 메인/샌드박스
Module| 모듈 샌드박스 페이지는 다음과 같습니다.고양이 메인(diff). 테스트 케이스에 대해서는, 부속의 서브 페이지도 참조해 주세요(실행). |
| 이 Lua 모듈은 약 178,000페이지에 걸쳐 사용되고 있습니다. 중대한 중단과 서버 로드를 방지하려면 모듈의 /sandbox 또는 /testcase 서브페이지 또는 자체 모듈 샌드박스에서 변경을 테스트해야 합니다.테스트한 변경은 한 번의 편집으로 이 페이지에 추가할 수 있습니다.변경을 실장하기 전에 토크 페이지에서 변경에 대해 논의해 주십시오. |
이 모듈에서는 "이 카테고리의 주요 기사는 x"라는 해트노트를 작성합니다.{{cat main}} 템플릿 구현.
Wikitext에서 사용
이 모듈은 보통 {{cat main}} 템플릿을 사용하여 사용해야 합니다.단, #invoke에서 다음 구문을 사용하여 사용할 수도 있습니다.{{#invoke:Cat main catMain parameters}}사용 가능한 파라미터에 대해서는 {{cat main} 템플릿 매뉴얼을 참조하십시오.
다른 Lua 모듈에서 사용
모듈을 로드합니다.
현지의 mCatMain = 요구하다('모듈:고양이 메인') 다음으로 _catMain 함수를 다음과 같이 사용할 수 있습니다.
mCatMain._catMain(옵션들, ...) options는 함수의 출력을 설정하기 위해 사용할 수 있는 옵션 테이블입니다.사용 가능한 옵션은 "article"과 "selfref" 두 가지가 있습니다.
- article - false, n, false 또는 0으로 설정되어 있는 경우 모듈은 "The main article"이 아닌 "The main page"를 출력합니다.코드를 사용하다
{article = false}. - selfref - 출력이 Wikipedia에 대한 자체 참조일 때 사용합니다.이 옵션을 설정하려면
{selfref = true}(자기 참조에 대한 자세한 내용은 {{selfref}} 템플릿을 참조하십시오.)
나머지 인수는 "이 카테고리의 주요 문서" 텍스트 뒤에 있는 링크로 변환되는 페이지 이름입니다.페이지 이름을 지정하지 않으면 첫 번째 링크에 현재 페이지 이름(네임스페이스 이름 제외)이 사용됩니다.
- 예 1
mCatMain._catMain(제로, '푸우') 작성:
<div class="hatnote relarticle mainarticle">The main article for this [[Help:Categories category]] is '''[[Foo]]'''.</div>
다음과 같이 표시됩니다.
- 예 2
mCatMain._catMain(제로, '푸우', '바', '바즈') 작성:
<div class="hatnote relarticle mainarticle">The main articles for this [[Help:Categories category]] are '''[[Foo]]''', '''[[Bar]]''' and '''[[Baz]]'''.</div>
다음과 같이 표시됩니다.
- 예 3
mCatMain._catMain({기사 = 거짓의}, '푸우') 작성:
<div class="hatnote relarticle mainarticle">The main page for this [[Help:Categories category]] is '''[[Foo]]'''.</div>
다음과 같이 표시됩니다.
기술적 세부사항
-- 이 모듈은 {{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