본문 바로가기
미디어위키

Help ExpandTemplates

by 다움위키 2024. 12. 11.

원문 보기: https://dawoum.duckdns.org/wiki/Help:ExpandTemplates

 

ExpandTemplates는 템플릿, 파서 함수, 및 변수의 재귀적 확장을 허용합니다.

페이지 Special:ExpandTemplates에는 두 개의 입력 상자가 있는데, 하나는 위키텍스트를 입력하는 것이고, 다른 하나는 페이지 이름을 입력하는 것입니다. "결과" 창에 확장된 위키 텍스트를 생성합니다. 즉, 템플릿, 파서 함수 및 변수가 재귀적으로 확장되고, 페이지 이름에 따라 변수는 제공된 페이지 이름을 기반으로 확장됩니다. 이것은 저장하거나 "Preview"를 누른 후 페이지가 렌더링되기 전의 중간 결과이며 (또는 결과 위키텍스트가 다른 처리에 제출됨), 위키텍스트 확장을 이해하고 디버깅하는 데 유용합니다. 그것은 대체를 지원하지 않습니다 (편집 창에 위키텍스트를 입력하고 "Show preview" 또는 "Save"을 누른 후 별도의 확장 프로세스 [저장-전 변환]가 수행되지만, 일반적인 파싱 전에 수행됩니다; 결과 위키텍스트는 "Show changes"를 누르거나 테스트 페이지를 저장하고 편집 창을 다시 열어 임의의 편집 창에서 검사할 수 있습니다). 만약 대체를 사용해야 하면, ExpandTemplates API 대신 parse API를 사용하고 저장-전 변환을 활성화합니다. [이렇게 하기 위해, pst를 true로 설정하십시오.]

게다가, 미리보기 영역이 있습니다. 어쨌든, 이것은 확장된 위키텍스트를 다시 확장한 렌더링된 결과를 보여줍니다 (T30616). 결과는 보통 단일 확장 후와 동일하지만, 첫 번째 확장에서 중괄호가 생성되면 다를 수 있습니다.

마법의 단어 '!'는 특히 테이블 구문에서 사용하기 위해 템플릿이나 파서 함수의 매개변수 값에 "|"를 허용하는 방법을 제공합니다. 이 템플릿은 ExpandTemplates와 함께 사용하여 부분 확장/대체를 수행할 수 있습니다.

Template:2x를 사용하여 만든 테이블은 매개변수 구분 기호 "|"를 {{!}} 형태로 사용한 호출은 보통의 확장을 방지한다는 것을 보여줍니다; 마지막 열은 미리보기 영역 (이중 확장의 결과 포함)을 보여줍니다.

Usage

Remove comments

"Remove comments" 옵션은 최종 결과뿐만 아니라 확장 프로세스 전체에서 주석을 제거할지 여부를 선택합니다. 이것은 파서 함수의 결과에 영향을 미칩니다: #expr 또는 #ifexpr의 표현에 주석이 있으면 "Remove comments"가 켜져 있지 않는 한 오류 메시지가 표시되고, 주석은 #if 및 ifeq에 영향을 미칩니다.

예제:

{{#expr:<!--p-->3}}

{{#ifeq:<!--p-->3|3|1|0}}

{{#if:<!--p-->|1|0}}

일반 확장, 및 "Remove comments"가 켜져 있는 ExpandTemplates:

3

1

0

전체 대체, 및 "Remove comments"가 끄져 있는 ExpandTemplates:

Expression error: Unexpected < operator

0

1

XML parse tree

선택적으로 XML 파스 트리 (위키텍스트의 XML DOM 표현, 문서 트리 또는 DOM 트리라고도 함)가 표시됩니다 (mw:Manual:Preprocessor_DOM.php도 참조하십시오). 예를 들어:

a [[b|c]]
{{CURRENTYEAR}}
{{{{{a}}}}}
{{#ifeq:2|3|a|b}}
{{#switch:a|a=3|b=4|a=5}}
{{a|b|c=d[[e|f]]g|h}}
{{{a|b}}}
{{#tag:nowiki|a=b}}
{{#tag:nowiki|aeb}}

다음을 제공합니다:

<root>a [[b|c]]
<template lineStart="1"><title>CURRENTYEAR</title></template>
<template lineStart="1"><title><tplarg><title>a</title></tplarg></title></template>
<template lineStart="1"><title>#ifeq:2</title><part><name index="1"/><value>3</value></part><part><name index="2"/><value>a</value></part><part><name index="3"/><value>b</value></part></template>
<template lineStart="1"><title>#switch:a</title><part><name>a</name>=<value>3</value></part><part><name>b</name>=<value>4</value></part><part><name>a</name>=<value>5</value></part></template>
<template lineStart="1"><title>a</title><part><name index="1"/><value>b</value></part><part><name>c</name>=<value>d[[e|f]]g</value></part><part><name index="2"/><value>h</value></part></template>
<tplarg lineStart="1"><title>a</title><part><name index="1"/><value>b</value></part></tplarg></root>
<template lineStart="1"><title>#tag:nowiki</title><part><name>a</name>=<value>b</value></part></template>
<template lineStart="1"><title>#tag:nowiki</title><part><name index="1"/><value>aeb</value></part></template>

따라서:

  • 결과는 실제 평가 전에 처리에서 단계를 보여줍니다. 따라서 변수, 파서 함수, 및 템플릿의 이름조차 결정되지 않았습니다. 역시, 콜론과 "#"은 아직 감지되지 않았으므로, 변수, 파서 함수, 및 템플릿을 구별하지 않으며, 존재하는 변수와 존재하지 않는 변수, 파서 함수, 및 템플릿을 구별하는 것은 말할 것도 없습니다. 그러므로:
    • 일부 파서 함수의 일부 항목은 결국 일반 텍스트로 처리되지만, "="을 갖는 매개변수 항목과 갖지 않는 매개변수 항목을 구별합니다.
    • "|a=b|a=c"는 아직 "|a=c"로 축소되지 않았는데, 왜냐하면 왼쪽 편이 같다는 사실은 평가 후에야 알려지고, 역시 이 축소는 title의 평가에 따라 달라지기 때문입니다. 예를 들어, #switch:.., "|a=b|a=c" 형식의 제목에 대해, "|a=b|a=c"는 결국 "|a=b"와 동등합니다.
  • 이중 직사각형 괄호 쌍은 "|"가 매개변수 구분 기호로 해석되는 것을 방지하지만, 링크는 트리에서 별도로 표시되지 않습니다.

Input text in URL

입력으로 역할을 하는 위키텍스트도 URL에 넣을 수 있습니다. 예를 들어, urlencode를 사용하여, {{fullurl:special:ExpandTemplates|wpInput={{urlencode:{{texpr{{!}}abc}}}}}}은 https://dawoum.duckdns.org/w/index.php?title=Special:ExpandTemplates&wpInput=%7B%7Btexpr%7Cabc%7D%7D를 제공합니다. {{!}}, {{!}}를 사용하여, 템플릿 texpr이 URL에서 확장되는 것을 방지하고, "|"가 더미 두 번째 매개변수에서 urlencode의 매개변수를 구분하는 것으로 해석되는 것을 방지합니다. 그것은 매개변수 없이 템플릿 호출에서도 사용할 수 있지만, ExpandTemplates의 입력 상자에서는 이름이 지정되지 않은 매개변수 {{{1}}}가 정의되지 않은 문자열 대신 빈 문자열이 되는 템플릿이 됩니다; 예를 들어, {{fullurl:special:ExpandTemplates|wpInput={{tc{{!}}}}}}. 이것은 변수와 파서 함수에는 작동하지 않습니다. 대신 한 쌍의 중괄호에 퍼센트 코드를 사용합니다 (위키텍스트 참조); ParserFunctions 접두사 "#"에 대해, %23을 사용합니다:

https://dawoum.duckdns.org/w/index.php?title=Special:ExpandTemplates&wpInput={{CURRENTTIME}}.

https://dawoum.duckdns.org/w/index.php?title=Special:ExpandTemplates&wpInput={{%23expr:2*3}}.

Example

Query parameters

  • wpContextTitle=pagetitle
  • wpGenerateRawHtml=true
  • wpGenerateXml=true
  • wpInput=
  • wpRemoveComments=true
  • wpRemoveNowiki=true

URL:

Customizing

Adjusting the box width

기본적으로, 입력 및 결과 상자의 너비는 11자입니다. CSS에 다음과 같은 것을 추가함으로써 전체 너비로 변경할 수 있습니다:

textarea {
    border: 1px solid #2f6fab;
    color: Black;
    background-color: white;
    width: 100%;
    padding: 0.1em;
    overflow: auto;
}

See also