모듈:카테고리 처리기
Module:Category handler| 이 루아 모듈은 시스템 메시지와 전체 페이지의 약 8%인 약 4310,000페이지에 사용된다. 그것에 대한 변경은 위키백과 사용자 인터페이스에 즉각적인 변화를 일으킬 수 있다. 큰 중단과 서버 로드를 방지하려면 모듈의 /샌드박스 또는 /테스트케이스 하위 페이지 또는 사용자 고유의 모듈 샌드박스에서 변경 사항을 테스트해야 한다.테스트한 변경사항은 한 번의 편집으로 이 페이지에 추가될 수 있다.변경 사항을 적용하기 전에 토크 페이지에서 논의하십시오. |
| 이 모듈은 페이지 보호의 대상이 된다.그것은 매우 많은 페이지들이 사용하고 있거나 매우 자주 교체되는 매우 눈에 잘 띄는 모듈이다.공공 기물 파손이나 실수가 많은 페이지에 영향을 미치고 사소한 편집이라도 서버에 상당한 부하를 줄 수 있기 때문에 편집으로부터 보호된다. |
이 모듈은 {{카테고리 핸들러}} 템플릿을 구현한다.범주 핸들러 템플릿은 다른 템플릿이 범주 분류와 범주 억제를 모두 자동화하는 데 도움이 된다.다른 템플릿에서 범주 핸들러 템플릿을 사용하는 방법에 대한 자세한 내용은 템플릿 설명서를 참조하십시오.다른 Lua 모듈에서 범주 핸들러 모듈을 사용하는 방법에 대한 정보 또는 이 모듈을 다른 Wiki로 내보내는 방법에 대한 정보를 보려면 계속 읽으십시오.
다른 Lua 모듈에서 사용
이 모듈을 사용하지 않을 경우
모듈이 네임스페이스 주(아티클), 파일(이미지) 또는 범주 중 하나로만 분류하면 되는 경우, 이 모듈을 사용하는 것은 과잉 살상이다.대신 mw.title.getCurrentTitle을 사용하여 제목 객체를 얻고nsText필드. 예:
국부적 칭호를 붙이다 = mw.칭호를 붙이다.getCurrentTitle() 만일 칭호를 붙이다.ns텍스트 == '파일' 그때 - 뭔가를 하다 종지부를 찍다 그러나 모듈이 다른 네임스페이스에서 분류해야 할 경우 적절한 범주 억제를 제공하고 다른 네임스페이스에서 분류하는 방법을 쉽게 선택할 수 있으므로 이 모듈을 사용하십시오.
네임스페이스
이 모듈은 위키피디아에서 사용되는 모든 다른 네임스페이스를 감지하고 여러 가지 유형으로 분류한다.이러한 유형은 이 모듈에서 매개 변수 이름으로 사용된다.
- main = 일반 위키백과 기사와 같은 메인/기사 공간.
- talk = "Talk:," "User talk:," "File talk:" 등으로 시작하는 페이지 이름 등 모든 대화 공간.
- 사용자, 위키백과, 파일...= 토크 페이지를 제외한 다른 네임스페이스.네임스페이스 별칭도 허용된다.전체 목록은 아래 표를 참조하십시오.
- 기타 = 템플릿의 매개 변수로 지정되지 않은 네임스페이스.아래 예제를 참조하십시오.
- 가능한 네임스페이스 매개 변수 목록
(제외)talk그리고other)
| 네임스페이스 | 별칭 |
|---|---|
main | |
user | |
wikipedia | project,wp |
file | image |
mediawiki | |
template | |
help | |
category | |
portal | |
draft | |
timedtext | |
module | |
gadget | |
gadget definition |
기본사용
이 모듈은 두 개 이상의 파라미터를 사용한다.헬로 월드 프로그램을 사용하는 예:
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 결과 = '헬로 월드!' 국부적 범주 = 카테고리 핸들러{ '[카테고리:썸캣]]', nocat = 액자에 넣다.아그.nocat - 그래서 "nocat=true/false"는 효과가 있다. } 범주 = 범주 또는 '' -- 범주 변수에 대한 nil 값이 없는지 확인하십시오. 돌아오다 결과 .. 범주 종지부를 찍다 돌아오다 p 위의 예에서는 범주 핸들러 모듈의 기본 설정을 사용한다.즉, 예제 모듈이 다음과 같은 네임스페이스의 페이지에서 분류된다는 것을 의미한다.
- 주, 파일, 도움말, 카테고리, 포털 및 책
그러나 다음과 같은 다른 네임스페이스에는 분류되지 않는다.
- 토크, 사용자, 위키백과, 미디어위키, 템플릿...
그리고 그것은 블랙리스트에 있는 페이지에 분류되지 않을 것이다.(아래 섹션 블랙리스트 참조)
범주 핸들러 모듈이 일부 네임스페이스에서 분류되지 않는 이유는 이러한 네임스페이스에서 대부분의 모듈과 템플릿이 사용되지는 않고 단지 시연되거나 나열되기 때문이다.따라서 대부분의 모듈과 템플릿은 그 네임스페이스에서 분류되지 않아야 한다.
이 모듈이 분류하는 하나 이상의 네임스페이스를 위한 모듈 또는 템플릿은 위와 같이 기본 구문을 사용할 수 있다.
고급 사용법
이 모듈은 위의 섹션 네임스페이스에 나열된 다른 페이지 유형의 이름을 딴 하나 이상의 매개 변수를 사용한다.이러한 매개변수를 사용하여 템플리트가 분류할 네임스페이스를 정확하게 지정할 수 있다.다음과 같은 경우:
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 결과 = '이것은 기사와 토크 페이지를 위한 모듈이다.' 국부적 범주 = 카테고리 핸들러{ 본래의 = '[카테고리:Sometcat1]]', -- 주(기사)공간에 분류 이야기를 나누다 = '[카테고리:Sometcat2]]', -- 대화 공간에서 분류 nocat = 액자에 넣다.아그.nocat - 그래서 "nocat=true/false"는 효과가 있다. } 범주 = 범주 또는 '' -- 범주 변수에 대한 nil 값이 없는지 확인하십시오. 돌아오다 결과 .. 범주 종지부를 찍다 돌아오다 p 위의 모듈은 메인 및 토크 공간에서만 분류된다.그러나 그것은 블랙리스트에 올라 있기 때문에 /아카이브 페이지에 분류되지 않을 것이다.(아래 섹션 블랙리스트 참조)그리고 만약 당신이 토크페이지에서 모듈을 시연(논의)할 필요가 있다면, 당신은 "를 먹일 수 있다.nocat='true'" 템플릿을 분류하지 않도록 하기 위해. (아래 섹션 nocat 참조)다음과 같은 경우:
==내 새 모듈 == 얘들아, 내 새 모듈 봤니?{{#invoke:mymodule main nocat=true}}좋지?--~~~~~ 때때로 우리는 몇 개의 네임스페이스에서 동일한 범주를 사용하고 싶다. 그리고 이렇게 한다.
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 결과 = '이것은 여러 네임스페이스에 사용되는 모듈이다.' 국부적 범주 = 카테고리 핸들러{ 본래의 = '[카테고리:Sometcat1]]', [ 1 ] = '[카테고리:Sometcat2]]', -- 도움말 및 사용자 공간용 돕다 = 1, 사용자 = 1, 이야기를 나누다 = '', -- 대화 페이지에 카테고리 없음 타사의 = '[카테고리:Sometcat3]]', -- 다른 모든 네임스페이스에 대해 nocat = 액자에 넣다.아그.nocat - 그래서 "nocat=true/false"는 효과가 있다. } 범주 = 범주 또는 '' -- 범주 변수에 대한 nil 값이 없는지 확인하십시오. 돌아오다 결과 .. 범주 종지부를 찍다 돌아오다 p 위의 예에서는 범주 중 하나를 공급하기 위해 번호가 매겨진 매개 변수를 사용하고 이 모듈에서 도움말과 사용자 공간 모두에 번호가 매겨진 매개 변수를 사용하도록 지시한다.
범주 핸들러 모듈은 번호가 매겨진 매개 변수를 무제한으로 이해한다.
다른 매개변수는 명시적으로 데이터를 공급하지 않은 나머지 네임스페이스에서 사용해야 하는 것을 정의한다.
비어 있지만 정의된 토크 매개 변수를 기록해 두십시오.그것은 이 모듈이 대화 공간에서 다른 매개변수에 공급된 것을 보여주지 못하게 한다.
범주 핸들러 모듈에도 all이라는 매개 변수가 있다.다음과 같이 작동한다.
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 결과 = '이것은 모든 네임스페이스에 사용되는 모듈이다.' 국부적 범주 = 카테고리 핸들러{ 전부 = '[카테고리:Sometcat1]]', -- 모든 네임스페이스에서 분류 nocat = 액자에 넣다.아그.nocat - 그래서 "nocat=true/false"는 효과가 있다. } 범주 = 범주 또는 '' -- 범주 변수에 대한 nil 값이 없는지 확인하십시오. 돌아오다 결과 .. 범주 종지부를 찍다 돌아오다 p 위의 예는 모든 네임스페이스에서 분류되지만 블랙리스트에 오른 페이지에서는 분류되지 않는다.해당 모듈을 페이지에 시연하려면 "을 사용하십시오.nocat=true" 템플릿의 범주화를 방지하십시오.
모듈 및 템플릿은 필요한 네임스페이스에서만 분류되는 것이 좋으므로 모든 매개변수를 피하는 것이 좋다.
모든 파라미터는 나머지 파라미터와 결합할 수도 있다.다음과 같은 경우:
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 결과 = '이것은 모든 네임스페이스에 사용되는 모듈이다.' 국부적 범주 = 카테고리 핸들러{ 전부 = '[카테고리:Sometcat1]]', -- 모든 네임스페이스에서 분류 본래의 = '[카테고리:Sometcat2]]', ­ 그리고 이것을 메인 스페이스에 추가하라. 타사의 = '[카테고리:Sometcat3]]', - 그리고 이것을 다른 네임스페이스에 모두 추가하십시오. nocat = 액자에 넣다.아그.nocat - 그래서 "nocat=true/false"는 효과가 있다. } 범주 = 범주 또는 '' -- 범주 변수에 대한 nil 값이 없는지 확인하십시오. 돌아오다 결과 .. 범주 종지부를 찍다 돌아오다 p 위의 모듈을 기사에 배치하면 "Somecat1"과 "Somecat2" 범주가 추가된다.그러나 다른 모든 유형의 페이지에는 대신 "Somecat1"과 "Somecat3"가 추가된다.이 예에서 알 수 있듯이, 모든 파라미터는 나머지 파라미터와 독립적으로 동작한다.
하위 페이지
카테고리 핸들러 모듈은 하위 페이지 매개변수를 이해한다.다음과 같은 경우:
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 결과 = '이것은 모든 네임스페이스에 사용되는 모듈이다.' 국부적 범주 = 카테고리 핸들러{ 하위 페이지 = '아니오' -- 하위 페이지에서 분류하지 않음 위키백과 = '[카테고리:썸캣]]', nocat = 액자에 넣다.아그.nocat - 그래서 "nocat=true/false"는 효과가 있다. } 범주 = 범주 또는 '' -- 범주 변수에 대한 nil 값이 없는지 확인하십시오. 돌아오다 결과 .. 범주 종지부를 찍다 돌아오다 p 만약."subpage='no'" 그러면 이 템플릿은 하위 페이지에서 분류되지 않는다.드물지만 하위 페이지에서만 분류할 수 있는 경우 "를 사용하십시오.subpage='only'". 하위 페이지가 비어 있거나 정의되지 않은 경우 이 템플릿은 기본 페이지와 하위 페이지에서 모두 분류한다.
블랙리스트
이 모듈에는 템플릿이 자동 범주화되지 않아야 하는 페이지 및 페이지 유형의 블랙리스트가 있다.따라서 이 메타템플릿을 사용하는 모듈은 예를 들어 /아카이브 페이지와 위키백과의 하위 페이지에서 분류하지 않는다.템플릿 메시지.
블랙리스트에 있는 페이지에서 템플릿을 분류하려면 "feed "nocat = false" 페이지에 배치하면 모듈로 전송되므로 블랙리스트 검사를 건너뛰십시오.이 모듈은 네임스페이스에 대한 데이터가 있는 경우에만 분류한다는 점에 유의하십시오.예를 들어 기본 구문을 사용하는 경우(위의 기본 사용법 참조), "를 설정하더라도nocat = false" 템플리트는 대화 페이지에 대한 데이터가 없기 때문에 대화 페이지에서 분류되지 않는다.그러나 이 페이지에는 도움말 공간에 대한 데이터가 있으므로 블랙리스트에 있는 도움말 페이지에서 이를 분류할 것이다.
블랙리스트가 구성 테이블에 있음cfg.blacklist모듈 코드의 맨 위에 위치한다.
nocat 매개변수
이 모듈은 nocat 매개 변수를 이해한다.
- 만약."
nocat = true" 그러면 이 템플릿은 분류되지 않는다. - 만약 nocat이
nil그러면 이 템플릿은 평소와 같이 분류된다. - 만약."
nocat = false" 이 템플릿은 블랙리스트에 있는 페이지에서도 분류된다.(위의 블랙리스트 섹션 참조) - nocat 매개 변수는 또한 다음에 대한 별칭을 허용한다.
true그리고false모듈에서 정의한 대로:예, 예: "예", "y", "참" 및 "참"true, 및 "아니오", "n", "거짓말" 및 "0"의 경우false.
{{카테고리 핸들러}}}을(를) 사용하는 모듈 및 템플릿은 nocat를 포워드 해야 하므로 nocat도 이해해야 한다.코드 "nocat = frame.args.nocat이 페이지의 예에 나타난 "는 그렇게 한다.
"카테고리
역호환성을 위해 이 모듈은 범주 파라미터도 이해한다.그것은 nocat과 같은 작용을 한다.다음과 같은 경우:
- 만약."
categories = false" 그러면 이 템플릿은 분류되지 않는다. - 범주가 비어 있거나 정의되지 않은 경우 이 템플릿은 평소와 같이 분류된다.
- 만약."
categories = true" 이 템플릿은 블랙리스트에 있는 페이지에서도 분류된다. - 범주 매개 변수는 또한 다음에 대한 별칭을 허용한다.
true그리고false모듈에서 정의한 대로:예, 예: "예", "y", "참" 및 "참"true, 및 "아니오", "n", "거짓말" 및 "0"의 경우false.
"category2" 매개변수
역호환성을 위해 이 템플릿의 종류는 이전 "카테고리 =" 매개변수를 지원한다.그러나 "카테고리"라는 매개변수는 이미 이 모듈에서 범주 공간에 있을 때의 범주 데이터를 공급하기 위해 사용되고 있다.대신 이 템플릿은 nocat와 유사한 사용에 대해 범주2를 사용한다.다음과 같은 경우:
- 만약."
category2 = "" (정확하지만 정의됨), 또는 "category2 = 'no'" 또는 범주2가 다른 데이터를 공급받는 경우(다음 두 지점에서 설명한 내용은 제외), 이 템플릿은 분류되지 않는다. - 범주2가 정의되지 않았거나 "인 경우
category2 = '¬'", 그러면 이 템플릿은 평소와 같이 분류된다. - 만약."
category2 = 'yes'" 이 템플릿은 블랙리스트에 있는 페이지에서도 분류된다.
카테고리 및 텍스트
범주 외에도 이 모듈에 다른 모든 것을 공급할 수 있으며, 예를 들어 텍스트도 일부 제공하십시오.다음과 같은 경우:
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 결과 = '이것은 토크 페이지에 사용되는 모듈이다.' 국부적 범주 = 카테고리 핸들러{ 이야기를 나누다 = '[카테고리:썸캣]]', 타사의 = '<p class="present">이 모듈은 토크 페이지에만 사용해야 한다.</p>.", nocat = 액자에 넣다.아그.nocat - 그래서 "nocat=true/false"는 효과가 있다. } 범주 = 범주 또는 '' -- 범주 변수에 대한 nil 값이 없는지 확인하십시오. 돌아오다 결과 .. 범주 종지부를 찍다 돌아오다 p 위의 모듈 코드를 토크 페이지 이외의 다른 항목에 사용할 경우 다음과 같이 표시된다.
- 이것은 토크 페이지에 사용되는 모듈이다.
이 모듈은 토크 페이지에만 사용해야 한다.
해당 텍스트는 블랙리스트 페이지에 표시되지 않으므로 이 방법을 사용하여 중요한 정보를 표시하지 마십시오.먹이 주기 "nocat = 'true'"는 어떤 카테고리를 억제하는 것처럼 텍스트를 숨긴다.
페이지 매개변수
이 모듈은 테스트 및 시연 목적으로 페이지라는 매개 변수를 사용할 수 있다.다음과 같은 경우:
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 범주 = 카테고리 핸들러{ 본래의 = '카테고리:썸캣', 이야기를 나누다 = '카테고리:토킹 캣', nocat = 액자에 넣다.아그.nocat, - 그래서 "nocat=true/false"는 효과가 있다. 페이지를 매기다 = '사용자 대화:예' } 돌아오다 범주 종지부를 찍다 돌아오다 p 위의 코드에서 우리는 일부러 카테고리 이름 주위의 괄호를 제외해서 우리는 페이지의 출력을 볼 수 있다.위의 코드가 어떤 페이지를 사용하든지 간에 이 코드는 다음과 같이 반환할 것이다.
- 범주:토크캣
페이지 매개변수는 이 모듈을 해당 페이지의 것과 같이 정확하게 작동시킨다.블랙리스트도 통한다.페이지 이름은 기존 페이지일 필요는 없다.
페이지 매개변수가 비어 있거나 정의되지 않은 경우, 현재 페이지의 이름이 결과를 결정한다.
모듈에서 페이지 매개변수를 이해하도록 만들 수 있다.즉, 해당 페이지를 실제로 편집할 필요 없이 템플릿이 다른 페이지에서 어떻게 분류되는지 테스트할 수 있다.그런 다음 이렇게 하십시오.
p = {} 국부적 카테고리 핸들러 = 요구하다( '모듈:카테고리 핸들러' ).본래의 기능을 하다 p.본래의( 액자에 넣다 ) 국부적 범주 = 카테고리 핸들러{ 본래의 = '카테고리:썸캣', 이야기를 나누다 = '카테고리:토킹 캣', nocat = 액자에 넣다.아그.nocat, - 그래서 "nocat=true/false"는 효과가 있다. 페이지를 매기다 = 액자에 넣다.아그.페이지를 매기다 -- 테스트용 } 돌아오다 범주 종지부를 찍다 돌아오다 p 매개변수
모든 매개 변수 목록:
- 첫 번째 위치 매개변수 - 기본 설정
- 하위 페이지 = '아니오' / '전용'
- 1, 2, 3 ...
- all = '[카테고리:Sometcat]]' / '텍스트'
- main = 1, 2, 3 ... / '[카테고리:Sometcat]]' / '텍스트'
- ...
- 기타 = 1, 2, 3 ... / '[범주:Sometcat]]' / '텍스트'
- nocat = frame.args.nocat / true / true / 'yes' / 'no' / 'n' / 'true' / 1 / 0
- 범주 = frame.args.properties / false / true / 'no' / 'n' / 'y' / 'false' / 'true' / 0 / 1
- 범주2 = frame.args.properties 또는 'frame' / 'no' / 'not defined' / 'reason' / 'yes'
- 페이지 = frame.args.page / '사용자:예'
"메인"에 대한 빈 값..."기타" 매개변수는 특별한 의미를 갖는다(위의 예 참조)."all" 매개변수는 번호가 매겨진 매개변수를 이해하지 못하는데, 이는 절대 그럴 필요가 없기 때문이다.
다른 Wiki로 내보내기
이 모듈은 에서 구성 값을 변경하여 다른 위키로 내보낼 수 있다.cfg표. 모든 변수 값은 구성할 수 있으므로 구성 값을 설정한 후에는 주 모듈 코드를 변경할 필요가 없다.각 구성 값에 대한 세부 정보가 모듈 코드 설명에 포함되어 있다.또한 이 모듈에는 다음과 같은 모듈이 필요하다.로컬 Wiki에서 사용할 수 있는 네임스페이스가 감지됨
참고 항목
-------------------------------------------------------------------------------- -- -- - 카테고리 핸들러 - -- -- -- 이 모듈은 루아에 {{category 핸들러} 템플릿을 구현하며, -- -- 몇 가지 향상된 기능: 모든 네임스페이스와 네임스페이스 별칭 -- --이 지원되며 --에 대해 네임스페이스 이름이 자동으로 검색됨 -- 지역 위키.이 모듈에는 [[모듈:네임스페이스 탐지]] - - 및 [[모듈:예스노]] 로컬 위키에서 사용 가능.그것은--일 수 있다. -- 값을 변경하여 다른 위키에 맞게 구성 -- - [모듈:카테고리 핸들러/config]]] 및 페이지를 블랙리스트에 추가할 수 있음 -- - [[모듈:]을 사용한 범주화범주 핸들러/블랙리스트]]]-- -- -- -------------------------------------------------------------------------------- -- 필요한 모듈 로드 국부적 예스노 = 요구하다('모듈:예스노') ­ 항상 필요하지 않은 것들을 느리게 적재 국부적 mShared, 매핑 국부적 p = {} -------------------------------------------------------------------------------- -- 도우미 기능 -------------------------------------------------------------------------------- 국부적 기능을 하다 trimWhitespace(s, learblanks) 만일 타자를 치다(s) ~= '끈' 그때 돌아오다 s 종지부를 찍다 s = s:짝을 맞추다('^%s*(^%)%s*
