도움말:모수 기본값

Help:Parameter default

참고: 이 페이지의 정보는 MediaWiki 버전 1.6 이상과 관련됨.

표기법: 이 페이지에서 Wikitext{{{A}}}[a]라고 쓰여 있다.

템플릿에서 [a b]는 정의된 경우 [a]와 같고, 그렇지 않으면 b와 같다.

이러한 결과[a]와 b는 최종 결과일 수 있지만, 매개변수 이름, 매개변수 값, 템플릿 이름, 그 일부 등이 될 수도 있다.

결과가 정의되지 않은 외부 템플릿의 매개 변수를 포함하는 템플릿 호출의 일부로 템플릿 이름인 경우, 관련 매개 변수가 내부 템플릿에서 실제로 사용되지 않는 경우에만 정의되지 않은 외부 매개 변수에 따라 내부 템플릿이 호출되도록 설정할 수 있다(예: 더미 템플릿:x0 콘타이).닝 "<noinclude>{{documentation}}</noinclude> "는 [a]가 정의되지 않았더라도 {{x0 [a]}}이라고 부를 수 있다. 예: m:Template:foreach/pass1(백링크 편집)을 참조한다.

한계

복수의 기본 부품의 경우, 첫 번째 부분만 적용된다: [a b c d]는 [a b]와 동일하다.기본 부품은 " "를 전체 템플릿, 매개변수 또는 링크 구문의 일부로, 그리고 nowiki-tags 내에서만 포함할 수 있다.HTML 부호화("<table")"를 적용하면 테이블 구문에서는 " "를 방지할 수 있다는 점에 유의하십시오.

매개변수 이름에 대한 표현식은 전체 템플리트 또는 매개변수 구문의 일부로 " " "를 포함할 수도 있다.

예제, 사용{{x3}}재중{{{1}}}{{{1}}}{{{1}}}그리고{{t2}}재중start-{{{1}}}-middle-{{{2}}}-end:

  • {{{a b c d}}}주다b
  • {{{a {{x3 b}}}}}주다bbb
  • {{{a {{{b c}}}}}}주다c
  • {{{a [[b c]]}}}주다c
  • {{{{{x3 a}} b}}}주다b- 매개 변수 aaa가 정의되지 않음
  • {{{{{{a b}}} c}}}주다c- 매개 변수 b가 정의되지 않음
  • {{{a <nowiki>b c</nowiki>}}}주다b c- 텍스트 렌더링에는 문제가 없지만, 템플릿 호출에 매개 변수 b와 c를 삽입하는 데는 적합하지 않음(Nowiki 태그를 제거하는 기능은 없음):
    {{t2 {{{a <nowiki>b c</nowiki>}}}}}주다start-b c-middle-{{{2}}}-end
  • {{{a b{{!}}c}}}주다b c, 그리고 막대는 템플릿의 다음 레이어로 해석될 것이다.

매개 변수를 포함하는 식(기본값 포함)

템플릿에서 발생하는 [a[b] f([b]) 식을 고려하십시오. 여기서 f([b])는 [b]의 식을 가리킨다.

조건:

  • [a[b]는 해당되는 모든 [b]에 대해 정의되지 않음(템플릿이 호출되는 매개 변수 b의 모든 값)
  • [ac]=d(템플릿은 ac=d로 호출됨)

그런 다음 이 표현식은 [b]가 정의되면 f([b])를, 그렇지 않으면 d를 준다.

해당 조건에서는 적용 가능한 [b]이 값 c를 가지지 않아야 한다는 점에 유의하십시오.[b]의 모든 문자와 숫자를 사용할 수 있고 null(빈 문자열)도 허용하려면 c의 경우 "@"와 같이 사용할 수 있다.

만일 [b]가 비어 있으면 결과가 f("")가 아니라 ""이고, [b]가 정의되지 않았을 때 우리는 d=""가 되는 것이 바람직하거나 최소한 허용 가능하다면, 예를 들어 c를 빈 문자열로 선택할 수 있다.그러면 템플릿에서 [a[b ] f([b]])라는 표현이 발생하며, 다음과 같은 조건에서 [b]가 정의되면 f([b])를 주고, 그렇지 않으면 빈 문자열을 부여한다.

  • [a[b]는 해당되는 모든 [b]에 대해 정의되지 않음(템플릿이 호출되는 매개 변수 b의 모든 값)
  • 템플릿은 "a="로 호출된다.

동일한 템플릿은 여러 식[ai [bi c ] fi ([bi ])을 포함할 수 있다.모든 동등점을i 선택함으로써 우리는 템플릿 호출에서 "a=" 하나만 있으면 된다.그 다음 표현은 [a [bi c ] f ([bi ])이다i.

특별한 경우는 기능 f가i 일정하며, 즉 [bi ]에 의존하지 않는다.그 다음 표현은 [a [bi c ] f ]이다i.템플릿에서 호출은 각 b에i 대해서만 중요하며, 어떤 값이 있는지 여부는 중요하지 않다.편의상 빈 문자열을 정의한 문자열에 할당할 수 있다.적용 가능한 [b]는 값 c(위 참조)를 가질 수 없으므로, c는 이 경우 빈 문자열이어서는 안 된다.빈 문자열의 경우 템플릿은 배열 역할을 하며 인덱스 b의i 경우 배열 값은 f이다i.그것은 "ac="와 "bi="로 불리거나 심지어 할당 목록i "b="로 불리며 해당 배열 값의 목록을 제공한다.m:템플릿 참조:짧은 DOW alt 2(백링크 편집)

일반적으로 템플리트 호출의 매개변수 사양은 템플리트 사용자가 선택할 수 있는 것을 나타내지만, "ac="를 지정해야 하는 것은 템플리트 사용자에게 부과되는 불행한 기술적 요구 사항이다. 템플리트 호출을 다른 템플리트 내부에 넣어 사용자로부터 보호할 수 있다. 서버 스트레이인이 이와 관련된 프로젝트에서는바람직하지 않을 수도 있다.

템플릿의 다른 파라미터가 그것에서 시작하는 이름을 갖지 않도록 "a"라는 이름을 선택할 수 있으며, 그러면 첫 번째 조건이 충족된다(이미 논의된 사례와는 별도로, [b]는 빈 문자열이다).좋은 선택은 "if"이다.그러므로

[만약i [bi c ] f ([bi ])]

수단

b가i 정의된 경우i f([bi ])

c="는 if-statement가 최단이며 최상의 외관을 갖는 반면, 예: c="u"("정의되지 않은"의 경우)는 템플릿 호출에서 최단 사양이 값이 무관한 경우i b("bi=")를 정의할 수 있도록 허용한다.후자는 "비어 있는" 것과 "정의되지 않은" 것이 보통 동등한 것으로 취급되는 맥락에서 혼란스러울 수 있다.

결과(f([b]) 또는 빈 문자열(즉, 템플릿 이름, 매개 변수 이름, 매개 변수 값, 링크의 페이지 이름 등에 대한 식에 사용하지 않는 경우) CSS를 사용하는 것이 대안이 된다. MediaWiki talk:common.css.

a="if"와 c=d="를 사용한 비교와 "HiddenStructure" 대신 "if"라는 단축 클래스 이름을 사용한 비교를 위해 두 줄은 다음과 같다.

<span class=" if{{{b }}} " > ...</span>{{ if{{{b}}}} ...}}}

두 번째 방법에서 템플릿의 Wikitext는 각 선택 항목에 대해 15자씩 짧지만 각 통화는 4자("if= ") 더 길다.

첫 번째 방법에서는 다른 클래스 이름과의 충돌을 피해야 하며, 두 번째 방법에서는 다른 매개 변수 이름과 충돌한다.

반복

"용 루프"는 다음을 사용하여 달성된다.

m:템플릿:fors(백링크 편집), 다음을 포함:


{{fors/aux    v@=    c={{{call}}}    pv={{{pv 1}}}    s={{{sep }}}    pc1={{{pc1 =}}}    pc2={{{pc2 =}}}    pc3={{{pc3 =}}}    pc4={{{pc4 =}}}  1={{{1 @}}} 2={{{2 @}}} 3={{{3 @}}} }}

m:와 함께템플릿:fors/aux(백링크 편집), 포함:


{{{v{{{1}}} {{{{{c}}} {{{pc1}}} {{{pc2}}} {{{pc3}}} {{{pc4}}} {{{pv}}}={{{1}}}}}}}} {{{v{{{2}}} {{{s}}}{{{{{c}}} {{{pc1}}} {{{pc2}}} {{{pc3}}} {{{pc4}}} {{{pv}}}={{{2}}}}}}}} {{{v{{{3}}} {{{s}}}{{{{{c}}} {{{pc1}}} {{{pc2}}} {{{pc3}}} {{{pc4}}} {{{pv}}}={{{3}}}}}}}}

짧은 형태에서 후자는 구성 요소로 구성된다.

[ v[i] [s] {{[c] [pc1] [pc2] [pc3] [pc4] [pv]=[''i'']}} ](i = 1, 2, 3, i = [s]가 없는 1)

또는 첫 번째 템플릿의 매개 변수:

[v[i @] [sep ] {{[call] [pc1 ] [pc2 ] [pc3 ] [pc4 ] [pv 1]=[''i'']}} ]

이것은 실제로 위에 언급한 형태[a[b] f(b)]의 형태로서 a=v, b=i, c=@, 그리고

f(x) = [sep ] {{[call] [pc1 ] [pc2 ] [pc3 ] [pc4 ] [pv 1]=x}}

위에서 언급한 가정은 d가 null과 같으며, 그 어떤 [i]도 "@"와 같지 않다는 전제하에 적용된다.

변형

v@=null이기 때문에 연결도 외부 작업으로 할 수 있다.[v[i @] [sep ]] [v[i @] {{[call] [pc1 ] [pc2 ] [pc3 ] [pc4 ] [pv 1]=[''i'']}} ]

조건문

m:템플릿:만약 (백링크 편집)이 다음을 포함하는 경우:


{{{{{115}{테스트}}}}{{{테스트}}}{{{{{}}}}}}}}}}}}}


또는 짧은 형식:

[ 다른[시험 ] [시험 ] [시험 ] [그때 ] ]

[테스트]를 정의하면 다음과 같이 감소한다.

[ 다른[시험] [시험] [그때 ] ]

null과 동일한 테스트의 경우 이는 [else ]로 감소한다. 그렇지 않으면, "test" 또는 "else"로 시작하는 매개변수 이름이 이들 자체를 제외하고 적용되지 않는 경우, []로 감소한다.

[테스트]가 정의되지 않은 경우

[ 다른 [그 때 ]

라스트비트 기법

마지막 또는 마지막이지만 x 매개변수 값이 필요할 때도 있지만 입력된 매개변수의 수는 알 수 없다.다음은 템플릿을 사용하지 않고 마지막 "할당된" 매개변수 값을 얻는 기법이다.
[4 [3 [2 [1 *]]]].

그런 다음 마지막이지만 한 가지는 다음과 같이 달성할 수 있다: ("ifu"는 비어 있는 상태로 미리 할당됨)

[[4 u] 3] [만약[3 u] 2] [만약[2 u] 1] [[만약[1 u] 0] *] //이 라인이 실제로 쓸모없다면 "*" ]로 대체될 수 있다. ]

즉, "4", "3", "2", "1"을 D4, D, D2, D로31 교체한다.그리고x D=[만약[x u] x-1.이처럼 "마지막 x" 파라미터 값을 얻을 수 있다.
{{lastbut0}} 및 {{lastbut1}을(를) 사용하는 예:

  • {{lastbut0}}입력하지 않는다.
  • {{lastbut0 a}}A를 주다
  • {{lastbut0 a b c d e f g h i j}}j를 주다.
  • {{lastbut1 ifu=}}입력하지 않는다.
  • {{lastbut1 ifu= a}}입력하지 않는다.
  • {{lastbut1 ifu= a b}}A를 주다
  • {{lastbut1 ifu= a b c d e f g h i j}}나는 준다.
  • {{lastbut0 53=53 81=81 28=28}}81개 제공(1 - 100 범위의 정수 리스트의 최대값)

참고 항목 m:템플릿:max(백링크 편집)

서버 효율성

매개변수 기본 구조는 추가 템플리트 레이어를 사용하는 유사한 구조보다 서버에 의해 더 효율적으로 실행된다고 한다.

참고 항목