확장기능:변수

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:Variables and the translation is 75% complete.

Other languages:
Deutsch • ‎English • ‎Tiếng Việt • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語 • ‎한국어
미디어위키 확장 기능 매뉴얼
OOjs UI icon advanced.svg
Variables
출시 상태: 안정
구현 파서 함수
설명 문서 상의 변수를 더욱 활용할 수 있는 파서 기능을 제공합니다.
만든이
유지보수자 MGChecker
최신 버전 2.5.1 (2019-03-10)
MediaWiki 1.29+
PHP 5.5+
데이터베이스 변경 아니오
라이선스 ISC License
다운로드
README
RELEASE-NOTES
Variables 확장 기능 번역 (translatewiki.net에서 가능한 경우)
사용법과 버전 매트릭스를 확인합니다.
Vagrant 역할 variables
이슈 미해결 작업 · 버그 보고

Variables 확장 기능에서는 문서 상의 변수를 정의해서 같은 문서 또는 불러들인 틀에서의 변수를 사용할 수 있습니다. 식에 따라서는 오래된 값 등을 지정된 값으로 변경할 수도 있습니다.

단 그것뿐인 기능이지만 매우 가벼운 확장기능이기에 위키로의 부하도 없으며 하나의 문서에서 많은 변수를 취급할 수 있습니다. 최상의 결과를 얻기 위해서는 ParserFunctions 확장 기능도 갖추어서 사용하는 것도 좋을 것입니다.

This extension will not be enabled for wikis run by the Wikimedia Foundation (WMF).[1][2][3][4] See alternatives.

값 대입하기

#vardefine

  • {{#vardefine:변수 이름|특정 값}}

(이미 또는 여기에 기입된) 변수 이름의 변수에 지정한 값의 값이 할당됩니다.

예시: {{#vardefine:iconwidth|25}} iconwidth 를 25로 지정한다

#vardefineecho

  • {{#vardefineecho:변수 이름|특정 값}}

#vardefine와 거의 마찬가지로 기능하지만 영향을 받은 값이 출력됩니다.

  • 예시: making iconwidth = <code>{{#vardefineecho:iconwidth|25}}</code>

값 획득하기

#var

변수 변수 이름의 값은 아래와 같이 해서 획득할 수 있습니다

  • {{#var:변수 이름}}

정의를 하지 않았을 경우에 결과는 빈 문자열이 됩니다. 경고 메시지는 표시되지 않습니다.

변수가 정의되지 않았을 경우나 비었을 경우(void)에 사용되는 값(한정값)은 아래와 같이 정의할 수 있습니다:

  • {{#var:변수 이름 | 한정값 }}

이것은 이하와 같습니다:

  • {{#if: {{#var:변수 이름}} | {{#var:변수 이름 }} | 한정값 }}

이는 최단의 최고의 배열입니다. 하지만 버전 2.0 이전은 한정값이 상시 전개되도록 되어 있습니다. 버전 2.0부터는 실제로 사용된 경우에만 전개됩니다.

값은 파서 함수 등에서 사용할 수 있습니다.

#varexists

  • {{#varexists:변수 이름 }} 변수가 이미 정의되어 있는 경우에는 1을 반환합니다. 변수가 정의되어 있지 않은 경우에는 빈 값(void)가 반환됩니다.

It supports a second and a third parameter to replace these values.

  • {{#varexists: 변수 이름 | if-value | else-value }}

이것은 이하와 같습니다:

  • {{#if: {{#varexists: 변수 이름 }} | if-value | else-value }}

but it is much shorter and better arranged. Before version 2.5 though, both were always expanded. From version 2.5 on the if and else values only get expanded when their cases are actually entered.

#var_final

Variables 2.0에서 새롭게 도입된 실험적인 함수입니다. 이 함수에서는 문서의 표시가 종료된 시점에서 변수의 값을 최종적으로 출력합니다. 파서가 모든 위키 마크업을 검증된 후에 값이 삽입되기 때문에 정확한 값이 표기될 것입니다. 단, 다른 함수와 병용할 수는 없습니다. 예시:

  • {{#var_final:변수 이름 | 한정값}}

최종적인 문서의 표시 단계에서 변수가 존재하지 않을 경우에 또는 그 값이 빈 문자열일 경우에 default의 값이 사용됩니다. 한정으로는 함수가 어디서 사용되고 있어도 전개하기 위해서 매개변수는 그것이 필요로 하지 않아도 전개됩니다.

예제

#expr를 사용하려면 ParserFunctions 확장 기능을 설치할 필요가 있습니다.

x = 2*a + b를 계산:

  • {{#vardefine:x|{{#expr:2*{{#var:a}}+{{#var:b}}}}}}

n에 1을 더한다:

  • {{#vardefine:n|{{#expr:{{#var:n}}+1}}}}

설치

  • 파일을 다운로드해서, extensions/ 폴더 내의 Variables 이라는 이름의 디렉터리 내에 설치합니다.
  • 아래의 코드를 LocalSettings.php의 말미에 추가합니다:
    wfLoadExtension( 'Variables' );
    
  • Yes 완료 – 위키의 ‘Special:Version’에 이동해서, 확장기능이 올바르게 설치된 것을 확인합니다.

미디어위키 1.30 이하를 실행 중인 사용자에게:

위의 지시사항은 wfLoadExtension()을 사용하여 이 확장기능을 설치하는 새로운 방법을 기술한 것으로, wfLoadExtension( 'Variables' ); 대신 초기 버전(미디어위키 1.30 이하)에 이 확장기능을 설치하려면 다음을 사용해야 합니다:

require_once "$IP/extensions/Variables/Variables.php";

Compatibility

The recommended version of the Variables extension for recent MediaWiki releases is listed below. Older versions of the extensions might work as well, but aren't tested for new MediaWiki releases.

Alternatives

As this extension will not be enabled for wikis run by the Wikimedia Foundation (WMF)[1][2][3][4], here are some alternatives:

  • If you use Variables as cache for expensive operations, you can transform the section where you need them into a template and pass the required information as template parameters instead. This will work until you reach the expansion depth limit.
  • If you use Variables to do more complex template operations than possible with simple ParserFunctions, you can use Scribunto's Lua functionality instead. Note that this does not add support for global Variables. However, Extension:VariablesLua adds an Scribunto interface for the Variables store.
  • Don't use variables, instead duplicate the information you need as a variable. If that information is aquired by an expensive template call, performance may suffer. This will work until you reach the node count limit.

같이 보기

References