위키백과:카테고리 억제

Wikipedia:

많은 사용자 상자와 다른 템플리트는 자동으로 다양한 카테고리에 나타나는 페이지를 추가한다.이 기능이 항상 바람직한 것은 아니며, 자동 분류의 비활성화 또는 억제 과정을 템플릿에서 카테고리 억제라고 한다.이 가이드에서는 자동 분류 억제의 몇 가지 방법을 설명하고 각 방법에 대한 예를 제시한다.카테고리 억제에 관한 정책이나 엄격한 지침은 없지만, 본 가이드는 영어 위키백과에서 카테고리 억제를 시행하기 위해 사용되는 사실상의 방법을 설명한다.

배경 정보

많은 템플리트와 사용자 상자는 하나 이상의 카테고리에 페이지를 자동으로 추가하도록 설계되어 있다.이것이 유익할 수 있는 많은 이유들이 있다.사용자 상자는 관심사에 따라 다양한 위키피디아 범주로 사용자를 그룹화할 수 있다.WikiProject 헤더는 Wiki Project 구성원이 쉽게 찾을 수 있도록 관련 페이지를 그룹화한다.다른 템플리트는 관리 카테고리에 문서를 추가하여 특정 작업을 위해 문서에 플래그를 표시한다.

이것은 정말 유용하고 강력한 기능이 될 수 있지만, 누군가가 도움말 페이지나 템플릿 갤러리와 같이 원래 의도했던 위치가 아닌 다른 곳에 템플릿을 표시하고자 하는 경우에도 약간 혼란스러울 수 있다.도움말 페이지 또는 갤러리는 템플릿이 나타나는 다른 페이지와 마찬가지로 플래그가 지정되며 이는 바람직하지 않은 경우가 많다.예를 들어 삭제 템플리트를 보여주는 페이지에 삭제 플래그를 표시하지 않아야 한다.그 경우 페이지의 자동 분류는 억제하는 것이 바람직하다.이것을 범주 억제라고 한다.

템플릿 자체 내에서, 그러한 분류 문제를 <포함 전용>과 <포함되지 않음> 마크업을 이용하여 억제하는 것이 상당히 쉽다.그러나 이러한 기능은 도움말 페이지나 갤러리에 템플릿을 예로 표시할 때 도움이 되지 않는다.

서버에 약간의 추가 처리를 하고 템플리트 코드를 인간이 읽기 조금 더 어렵게 만들면, 템플리트나 간단한 파서 함수는 특정 템플리트 속성을 사용할 때 특정 네임스페이스나 어디서나 자동 분류를 억제할 수 있다.

여러 가지 다른 범주 억제 방법이 수년에 걸쳐 동시에 개발되었기 때문에 범주 억제를 달성하는 단일 또는 "최상의" 방법은 없다.어떤 방법은 어떤 상황에서는 더 잘 작동하고 다른 방법은 다른 상황에서는 더 잘 작동한다.템플릿 설계자는 자동 범주를 억제하기 위해 다음 방법 중 하나를 자유롭게 선택할 수 있지만, 템플릿 문서 내에서 어떤 방법이 사용되는지 명확히 문서화해야 한다.새로운 템플릿은 선호되는 기법을 따르도록 요청된다(여러 기법이 동일한 결과를 얻는 경우).많이 사용하지 않는 오래된 템플릿도 선호하는 기법을 사용하도록 수정할 수 있다.템플릿을 수정해야 하는 또 다른 설득력 있는 이유가 없는 한, 많이 사용되는 템플릿을 선호되는 기법을 사용하도록 개조하는 것은 가치가 없다.

사용법

네임스페이스 기반 억제를 사용하는 템플릿은 편집자가 원하는 네임스페이스 외부로 자동 분류하지 않도록 구성할 필요가 없다(예: 기사 템플릿은 토크 페이지나 사용자 페이지를 분류하지 않음).

속성 기반 억제 템플릿 사용: nocat=true(iii) 또는 categories=no(iii) 자동 범주화를 억제한다.분류가 억제되어야 하는 곳이라면 어디든, 단지 추가하기만 하면 된다. nocat=true또는 categories=no템플릿의 마지막 속성과 (템플릿이 올바르게 구현되었는지 확인), 템플릿은 어떤 범주에도 페이지를 추가하지 않는다.각 템플릿의 설명서를 참조하여 두 가지 속성 중 사용할 속성을 확인하십시오.

범주 억제 방법

범주 억제 기법은 다음과 같은 방법으로 한다.

  1. 페이지의 네임스페이스에 따라 범주 분류가 활성화되거나 억제됨
  2. 템플릿 속성이 템플릿으로 전달되어 페이지 자동 분류가 금지됨
  3. 혼합 억제 기능은 복잡한 요구 사항을 충족하기 위해 다른 두 가지 방법을 함께 사용함
  4. 범주화하면 안 되는 페이지 이름 블랙리스트 사용(예: 템플릿: 참조):카테고리 핸들러

네임스페이스 기반 억제

개요

특정 페이지 유형(아티클, 토크 페이지, 카테고리, 기타 템플릿, 프로젝트 페이지 등)에만 추가하도록 설계된 템플릿은 이 방법의 가장 큰 혜택을 받을 가능성이 있다.이 방법을 사용하면 템플리트는 자신이 있는 페이지 유형을 자동으로 탐지할 수 있으며, 올바른 네임스페이스에 있는 페이지만 분류할 수 있다.예를 들어 추가 참조가 필요한 문서에 플래그를 지정하는 템플릿은 이 방법을 사용하여 템플릿 문서 페이지와 같이 템플릿이 나타나는 다른 모든 곳에서만 기사를 분류하고 범주 분류를 억제할 수 있다.

프로스

  • 단일 네임스페이스만 분류해야 하는 템플릿에 대한 매우 간단한 카테고리 억제 방법
  • 템플리트에 기능을 쉽게 추가
  • 특별한 속성을 추가하는 것을 기억하는 사람에게 의존하지 않음

단점

  • 둘 이상의 네임스페이스에서 사용할 수 있는 템플릿에는 적합하지 않을 수 있음
  • 여러 네임스페이스 지원을 올바르게 구현하기가 더 어려움
  • 편집자는 속성을 사용하는 것만큼 이 방법에 익숙하지 않을 수 있다.

는 다음과 같다.

속성 기반 억제

개요

이러한 템플릿에는 항상 기본적으로 자동 분류가 설정되어 있다.템플릿이 나타나는 페이지는 두 가지 특수 속성 중 하나가 템플릿에 전달되지 않는 한 자동으로 분류된다.이것은 여러 네임스페이스에 걸쳐 사용되는 템플리트에 적합한 선택이다.예를 들어 기사, 토크 페이지, 프로젝트 페이지, 사용자 페이지 및 포털에 사용할 수 있는 타이핑 보조 템플릿이 좋은 선택일 수 있다.

프로스

  • 페이지 편집기의 명시적 요청 시 자동 분류 기능을 억제하는 간단하고 익숙한 방법
  • 템플리트에 기능을 쉽게 추가
  • 모든 네임스페이스에서 작동

단점

  • 카테고리 억제가 필요한 페이지에서 자동 분류 억제를 기억하기 위해 편집기를 사용
  • 단일 네임스페이스용으로 설계된 템플릿에는 적합하지 않을 수 있음

는 다음과 같다.

혼합 억제

개요

이것은 범주를 억압하는 가장 다재다능하고 복잡한 방법이다.이전의 두 가지 기법을 모두 사용하여 네임스페이스 기반의 기본 분류/억제를 속성과 결합하여 사례별로 기본 동작을 변경할 수 있다.이것은 대부분의 템플릿에 필요하지 않아야 하지만, 여러 관련 템플릿의 특징을 하나의 큰 템플릿으로 결합하는 좀 더 복잡한 메타 템플릿에서 유용할 수 있다.그것은 템플릿 설계와 유지에 있어 이미 복잡하거나(그리고 초보 템플리트에 의해 편집될 가능성이 없는) 이전의 두 가지 기법이 충분한 제어를 제공하지 않는 템플릿에만 고려되어야 하는 추가적인 난이도를 추가한다.

프로스

  • 믿을 수 없을 정도로 유연하고 역동적인 제품
  • 자동 분류 및 억제를 위한 기본값과 예외 모두에 대한 완벽한 제어
  • 메타 템플릿은 다양한 범주 억제 방법을 사용하여 설계된 이전 템플릿을 지원할 수 있음

단점

  • 추가적인 복잡성으로 인해 경험이 적은 템플리트가 유지되기 어려움
  • 잘못 구성하기 쉬움. 잘못 범주화되거나 여러 페이지에 걸쳐 템플릿 오류가 표시될 수 있음
  • 자동 분류와 억제의 논리는 명확한 문서화 없이는 명확하지 않을 수 있다.

는 다음과 같다.

래퍼 템플릿

  • {{Suppress categories ...}}템플릿이 범주 억제를 지원하는지 여부에 관계없이 템플릿 호출 주위에 배치될 수 있다.
  • {{Draft categories ...}}카테고리를 추가하지 않고 메인 스페이스 외부에 카테고리 링크를 표시하기 위해 카테고리 목록 주위에 배치할 수 있다.

범주 억제 예제

네임스페이스 기반 억제 예제

이 방법은 자동적이며 억제를 호출하는 매개 변수가 필요하지 않다.

{{Main other}} 템플릿 제품군 사용

  • 기사(주공간)의 자동 분류 및 다른 모든 곳에서 카테고리 억제의 경우:
    • {{Main other [[Category:Example]] <!-- Don't categorize when not in main (article) space. -->}}
  • 모든 대화 페이지(대화:, 사용자 대화:, 파일 대화: 및 기타 대화 네임스페이스):
    • {{Talk other [[Category:Example]] <!-- Don't categorize when not in talk space. -->}}
  • 템플릿 페이지(템플릿: 네임스페이스):
    • <includeonly>{{Template other [[Category:Example]] <!-- Don't categorize when not in template space. -->}}</includeonly>
템플릿이 템플릿 공간으로 분류되는 경우 다음과 같이 분류 코드를 둘러싸십시오.<includeonly></includeonly>그렇지 않으면 템플릿 자체가 분류될 것이다.

{{user other}}, {{wikipedia other}, {{file other}, {{help other}, {{category other}, {{portal other}}}} 등도 있어 다른 네임스페이스를 취급한다.

{{Namespace detect}} 템플릿 사용

여러 네임스페이스에서 자동 분류/압축이 필요하거나 서로 다른 네임스페이스에서 사용할 다른 범주가 필요한 경우 강력한 범주를 사용하십시오.{{Namespace detect}}템플릿:

<포함 전용>{{Namespace 검출
main = [[Category:
기사 카테고리]]
토크 = [[ 카테고리:
Talk category]
템플릿 = [[category:
템플릿 범주]
기타
= <!-- 주, 대화 또는 템플릿 공간에 없을 때는 분류하지 마십시오 --}</포함 전용.

파서 함수 사용

사용{{Main other}}템플릿 패밀리는 네임스페이스 기반 범주 억제를 활성화하는 가장 쉬운 방법이지만, 동일한 작업을 수행하기 위해 #ifeq 또는 #switch 파서 함수를 사용할 수도 있다.

  • #ifeq 파서 함수를 사용하는 다른 모든 곳에서 기사 자동 분류( 네임스페이스) 및 카테고리 억제에 대한 간단한 예:
{{#ifeq:{{{네임스페이스} {{ns:0}} [[카테고리:기사 카테고리]] <!-- 주(기사) 공간에 없을 때는 분류하지 말 것. -->}}}
  • #switch 파서 함수를 사용하여 범주가 다른 여러 네임스페이스에서 자동 분류/압축하는 다른 예:

<실제 전용>{#스위치:{{{{네임스페이스}
=[카테고리:
물품분류]]]
토크 = [카테고리:대화 카테고리]]]
템플릿 = [[범주:템플릿 카테고리]]
#default
= <!-- 메인, 토크 또는 템플릿 공간에 없을 때는 분류하지 마십시오 --}}</포함 전용.

속성 기반 억제 예제

속성 기반 카테고리 억제 방법에 대해 권장되는 표준 기법은 다음과 같다.

  • 사용하다 nocat=false자동 분류를 활성화하려면(기본값이 분류를 억제하는 경우)
  • 사용하다 nocat=, nocat=true또는 nocat=anything else분류[분류]를 억제하다

즉, 「nocat」를 「거짓」(아무것도) 이외의 것으로 설정하면, 분류가 되지 않는다.

불행히도 범주 억제 속성 이름은 이전에 표준화되지 않아 몇 가지 변형을 초래했다.범주 억제를 수행해야 하는 시기를 나타내기 위해 일반적으로 사용되는 다음 속성 이름은 다음과 같다.

  • nocat=true— 권장 표준 기술
  • categories=no— 동일한 작업을 수행하지만 더 이상 권장되는 속성이 아님
  • category=— 대부분의 상황에 권장되지는 않지만 대안적인 방법(아래에서 설명됨)
예제: nocat=여기서 기본값은 자동으로 분류하는 것이다.
<includeonly>{{#ifeq: {{lc:{{{nocat false}}}}}   false   [[Category:Example]]  <!-- Category suppressed -->}}</includeonly> 
  • {{#ifeq: {{lc:{{{nocat false}}}}}"nocat라는 속성이 이 템플릿에 전달되었는가?"라는 질문에 대한 대답을 결정하는 파서 함수 입니다.그렇지 않으면 기본값이 "라고 가정한다.false".
  • 다음 부분. false 는 일치하는지 확인하기 위해 nocat의 값을 false와 비교한다(즉, nocatfalse로 명시적으로 설정되었는지 또는 false로 디폴트되었는지 여부).일치는 범주 억제를 비활성화해서는 안 된다는 것을 나타낸다(즉, 자동 분류가 이루어져야 함).
  • 일치하는 항목이 있는 경우 파이프 기호 사이에 입력된 범주(" ")를 표시하십시오.
  • 범주 이름 ""를 올바른 범주로 변경하십시오.해당되는 경우 둘 이상의 카테고리를 추가할 수 있다.
  • 파이프 기호 및 HTML 설명( <!-- Category suppressed -->)는 편집자가 템플릿의 기능을 이해하는 데 도움이 되는 선택적 정보지만, 공간과 대역폭을 절약하기 위해 생략할 수 있다.
  • 최종 교정기(Brace)}}) 파서 함수를 종료한다.
예제: categories=no분류[분류]를 억제하다
<includeonly>{{#ifeq: {{lc:{{{categories}}}}}   no    [[Category:Example]]}}</includeonly> 
  • {{#ifeq: {{lc:{{{categories}}}}} no 파서 함수는 " 템플릿에 범주라는 속성이 no로 설정된 상태로 전달되었는가?"라는 질문에 대한 답변을 결정하는 함수다. (lc:모든 텍스트를 소문자로 변환하여 일치시키십시오.)
  • 다음 부분. 는 그 질문에 대한 대답이 사실이라면 아무것도 표시하지 않는다(즉, 범주를 억압한다).
  • 나머지는 일반적으로 범주를 표시하는 데 사용되는 코드지만, 질문에 대한 대답이 거짓인 경우(즉, no로 설정된 속성이 없는 경우)에만 나타난다.
  • 범주 이름 ""를 올바른 범주로 변경하십시오.
  • 결승전}}파서 기능을 종료한다.
구현 노트
  • nocat=true그리고 categories=no동일한 목적을 달성하도록 설계되었지만 이들의 명백한 논리는 역전된다(한 가지는 "참"을 사용하고 다른 하나는 "아니오"를 사용하지만 두 가지 모두 범주 억제를 가능하게 한다).이후 categories=no덜 명확하며(특징을 활성화하기 위해 부정에 의존함), 그리고 일부 템플릿은 다른 목적으로 "message"라는 이름의 속성을 사용하기 때문에, " nocat="는 모든 새 템플릿에서 이 기능에 사용할 기본 속성 이름(누군가가 이전 템플릿을 업데이트하려는 경우 이전 템플릿도 포함)이다.
  • 사용된 2007년 5월 17일 이전에 설계된 템플릿 nocat=여기서 설명한 것과 조금 다르게 작동할 수 있다.그들은 오직 "만 알아볼 수 있다. nocat=true", 그리고 다른 값들은 잘못 해석될 수 있다.
  • 이전 템플릿은 다음 기능을 사용하지 않을 수 있음lc:쉽게 일치하도록 모든 소문자로 속성 값을 강제하는 파서 함수. 따라서 편집자는 항상 안전한 소문자 값을 사용할 것을 권장한다.
카테고리= 속성

category=일부 템플릿에서 #ifeq 파서 함수를 사용하지 않도록 하기 위해 사용된다.속성 이름 "category"는 일반적으로 많은 템플릿에서 다른 용도로 사용되기 때문에(낮은 정도로 "category"가 권장되는 속성 이름이 아니다.그러한 이유와 다른 이유로, 이 기술은 여기에서 논의되지 않는다.참고: nocat=정확히 동일한 목적을 달성할 수 있으며 권장되는 대안이다.

혼합 억제 예제

혼합 억제는 속성 기반 억제 방법과 네임스페이스 기반 억제 방법을 단일 템플릿 내에 모두 결합한다.두 가지 방법을 병행하기 때문에 복잡성이 배가된다.템플릿에서 혼합 방법을 사용하기 전에 다른 두 가지 방법을 모두 완전히 이해했는지 확인하십시오.

혼합이 이루어질 수 있는 방법은 여러 가지가 있다.다음의 예는 Willscrlt가 혼합 억제(대부분의 경우에 적용되어야 하며 일관성을 위해 권장되어야 함) 구현을 선호하는 방법이다.

이 프로세스는 먼저 범주를 억제해야 함을 나타내는 속성을 확인하는 것이다.속성에 의해 범주 억제가 요청되면 네임스페이스에 기반한 모든 기본 범주 분류를 재정의한다.속성 규격이 없으면 네임스페이스에 기반한 기본 범주 분류를 사용하십시오.속성이 범주 억제를 사용하지 않도록 명시적으로 요청하는 경우, 기본값이 분류되지 않는 경우를 제외하고 네임스페이스에 기반한 기본 범주 분류를 사용하십시오.기본값이 분류되지 않는 경우, demospace 속성을 사용하여 기본값을 재정의하고 카테고리를 표시하십시오.이러한 옵션들은 함께 템플릿 개발자들에게 보다 복잡한 템플릿 코드를 희생시키면서 자동 분류와 범주 억제에 대한 상당한 통제력을 제공한다.

완전한 예

<<includeonly>{#ifeq:{{nocat false}}}}} 거짓
{{Namespace 탐지
주 = [카테고리:물품분류]]]
talk = [카테고리:대화 카테고리]]]
템플릿 = [[범주:템플릿 카테고리]]]
기타 = {{#ifeq: {{lc:{{nocat false}}}}} [[
범주:
기타 카테고리]
<!-- nocat=true가 아닌
이상 메인, 토크, 템플릿 공간 -->}}}}}}}

<!-- nocat 속성 -->}}</포함 전용으로 억제된 범주

  • {{#ifeq: {{lc:{{{nocat false}}}}}"nocat라는 속성이 이 템플릿에 전달되었는가?"라는 질문에 대한 대답을 결정하는 파서 함수 입니다.그렇지 않으면 기본값이 "라고 가정한다.false".
  • 다음 부분. false 는 일치하는지 확인하기 위해 nocat의 값을 false와 비교한다(즉, nocatfalse로 명시적으로 설정되었는지 또는 false로 디폴트되었는지 여부).일치는 범주 억제를 비활성화해서는 안 된다는 것을 나타낸다(즉, 자동 분류가 이루어져야 함).
  • 일치하는 항목이 있는 경우 네임스페이스는{{Namespace detect}}템플릿.
    • 페이지가 기본(문서) 네임스페이스에 있는 경우( main = ), 아래 페이지를 분류한다.[[Category:Article category]].
    • 페이지가 토크 네임스페이스에 있는 경우 talk = ), 아래 페이지를 분류한다.[[Category:Talk category]].
    • 페이지가 템플릿 네임스페이스에 있는 경우 template = ), 아래 페이지를 분류한다.[[Category:Template category]].
    • 페이지가 다른 네임스페이스에 있는 경우 other = )) 분류는 다음의 값에 따라 달라진다.nocat.
      • 만약nocat명시적으로 "true"로 설정됨({{#ifeq: {{lc:{{{nocat false}}}}}(), 그 다음 아래 페이지를 분류한다.[[Category:Other category]].
      • 그렇지 않으면 HTML 주석(파이프 기호 및 HTML 주석)만 표시하십시오. <!-- Unless nocat=true, don't categorize when not in main, talk, or template space -->)는 편집자가 템플릿의 기능을 이해하는 데 도움이 되는 선택적 정보지만, 공간 및 대역폭을 절약하기 위해 생략할 수 있음)
  • 일치 항목이 없는 경우 HTML 주석(파이프 기호 및 HTML 주석)만 표시하십시오. <!-- Category suppressed by nocat attribute -->)는 편집자가 템플릿의 기능을 이해하는 데 도움이 되는 선택적 정보지만, 공간 및 대역폭을 절약하기 위해 생략할 수 있음)
  • 다양한 카테고리 이름("기사 카테고리", "토크 카테고리", "템플릿 카테고리", "기타 카테고리")을 적절한 카테고리로 변경해야 함을 기억하십시오.해당되는 경우 둘 이상의 카테고리를 추가할 수 있다.
  • {{Namespace detect}}여기에 표시된 것보다 더 많은 네임스페이스를 이해하고, 상황에 맞는 네임스페이스를 사용할 수 있다.여기에 표시된 "메인", "토크" 및 "템플릿" 네임스페이스는 이 기능을 사용하는 방법에 대한 예일 뿐이다.

메타 템플릿에서 이전 구현 지원

메타 템플릿(두 개 이상의 템플릿의 기능을 하나의 템플릿으로 결합한 템플릿)을 생성하려는 경우 편집자가 원래 템플릿 구문에 따라 범주 억제를 요청하는 다른 방법을 사용할 수 있으므로 둘 이상의 범주 억제 방법을 지원해야 할 수 있다.

다음 방법은 두 가지 공통 속성 중 하나를 점검한다. nocat=true그리고 categories=no) 및 둘 중 하나가 억제되도록 설정된 경우 자동 분류 기능을 억제하십시오.

<<includeonly>{{#ifexpr:{#
ifeq:{{:}:
{{}}}} 1 0 }} + {{
#ifeq: {{lc:{{{{categories yes}}}}}} no
1 0 } }< 1

[[범주:]]]
<!-- 카테고리 억제 -->}</포함 전용

  • {{#ifexpr:}}산술 식을 평가하는 파서 함수(예: "0+0=0" 또는 "1+0=1")이다.이 경우 다른 두 파서 함수의 출력을 평가한다.
    • 첫 번째 기능은 다음과 같은지 점검한다.nocat명시적으로 "진실"로 설정되었다.그렇다면 출력이 1위다.그렇지 않으면 출력이 0이다.
    • 두 번째 기능은 다음과 같은지 점검한다.categories명시적으로 "아니오"로 설정되었다.그렇다면 출력이 1위다.그렇지 않으면 출력이 0이다.
  • #ifexpr 함수는 두 함수의 출력을 함께 추가한다(가능한 결과는 0 [0+0=0], 1 [1+0=1] 또는 2 [1+1=2]이다.
  • 결과가 1보다 작을 경우(즉, 어느 속성도 자동 범주화를 억제하도록 설정되지 않은 경우), 카테고리가 표시된다.
  • 결과가 1보다 크거나 같으면 HTML 주석(파이프 기호 및 HTML 주석)만 표시하십시오. <!-- Category suppressed -->)는 편집자가 템플릿의 기능을 이해하는 데 도움이 되는 선택적 정보지만, 공간 및 대역폭을 절약하기 위해 생략할 수 있음)

참고 항목