연습장:Junhg0211: 두 판 사이의 차이

317번째 줄: 317번째 줄:


{{인용문1|<nowiki>{{#ifeq: <expression> | 0 | <false> | <true>}}</nowiki>|<nowiki>{{#ifexpr: <expression> | <true> | <false>}}</nowiki>}}
{{인용문1|<nowiki>{{#ifeq: <expression> | 0 | <false> | <true>}}</nowiki>|<nowiki>{{#ifexpr: <expression> | <true> | <false>}}</nowiki>}}
=== #ifexist ===
<nowiki>#ifexist</nowiki> 표현식은 파라미터 1에 해당하는 문서가 위키에 존재하면 파라미터 2의 값을 출력하고, 그렇지 않다면 파라미터 3의 값을 출력한다.
{| class="wikitable"
! 표현식
! 출력
|-
| <nowiki>{{#ifexist: 사트 | [[사트]] 있음 | [[사트]] 없음}}</nowiki>
| {{#ifexist: 사트 | [[사트]] 있음 | [[사트]] 없음}}
|-
| <nowiki>{{#ifexist: 없는 문서 | [[없는 문서]] 있음 | [[없는 문서]] 없음}}</nowiki>
| {{#ifexist: 없는 문서 | [[없는 문서]] 있음 | [[없는 문서]] 없음}}
|}


== 주석 ==
== 주석 ==

2022년 1월 25일 (화) 22:43 판

+Sat
사트
6653년 2월 12일[1]
국가연합 지리 이벤트 단체 무역품 마법 테크 레벨 인류 언어
기여자 행동 강령 설정 표준 기여자 관리표준 디스코드[2] 네이버 카페[2]

이렇게 하면 굵은 글씨를 쓸 수 있군요!! 기울임꼴편집 지침에서 안 쓰는 게 좋다고 했어요. 이렇게 하면 굵은 기울임꼴을 쓸 수 있어요!!! 기울임꼴보다 더 쓸 일이 없을 것 같아요. 취소선은 HTML태그를 이용해서 이렇게 써요. 혹은 이렇게 쓸 수도 있어요. 강제 줄바꿈은 이

게 할 수 있는데, 이건 아마 paragraph 안에서 줄바꿈일 거에요. 이건 한 줄 띄운 것이고,

이것 두 줄 띄운 것이에요. 그냥 줄바꿈(새로운 문단 만들기)은 두줄 띄우면 할 수 있어요.

큰 제목 1

위키문법 끄기'''!!<del>라는 게 있는데 신기해요.

외부 링크는 이렇게 하면 된다는데, 신기해요.

큰 제목 2

큰 제목은 <h1>이에요. 이렇게 입력하면 다른 장으로 이동할 수 있어요.

  • 목록은 이렇게,
  • 또 이렇게,
    • 혹은 이렇게

만들 수 있어요.

  1. 숫자가 매겨진 목록은 이렇게,
    1. 혹은 이렇게
      1. 혹은 이렇게

만들 수 있어요. 숫자가 매겨진 목록은 더 많은 들여쓰기(indentation)를 가지고 있습니다.

항목에 대한 정의도
이렇게 할 수 있어요.
정의를 여러 개 달 수도 있어요.

글쎄요, 언제 "정의"를 사용하게 될까요?[3] 신기하죠?

커스텀 사이드바

표현식 연습

이 부분은 이 문서를 참고하여 작성되었다.

#expr

#expr 표현식은 수식을 계산해서 그 결과를 출력한다.

표현식 결과
{{#expr: 1 + 2}} 3
{{#expr: 2 * pi ^ 2}} 19.739208802179
{{#expr: sqrt(2)}} 1.4142135623731
{{#expr: not 37}} 0[4]
{{#expr: e < pi}} 1
{{#expr: tan(90)}}, {{#expr: tan(pi / 2)}} -1.9952004122082, 1.6331239353195E+16

#expr의 수식이 오류를 내포하고 있으면 다음과 같이 표현된다.

0으로 나눴습니다.
{{#expr: 1 / 0}}

round 연산자는 소수점 몇째 자리까지 표현할지를 포함하여 사용할 수 있다.

표현식 결과
{{#expr: 1234.5678 round 2}} 1234.57
{{#expr: 1234.5678 round -2}} 1200

연산자인 round와는 다르게, ceil과 floor는 함수이다.

참고 자료에 따르면, 상기한 #expr는 수치와 같은 값에 대해서만 기능하고, 문자열이나 문자를 비교하는 것은 불가능하다. 대신하여 #ifeq를 사용할 수 있다고 한다.

#if

#if 표현식은 1번 파라미터가 비어있는 문자열인지를 판단하여, 비어있지 않은 문자열이라면 2번 파라미터, 비어있는 문자열이라면 3번 파라미터를 출력한다.

3번 파라미터는 입력을 생략할 수 있고, 3번 파라미터의 기본값은 공백 문자열(" ")이다.

2번 3번 파라미터는 표현식인 반면, 1번 파라미터는 문자열 입력이고, 표현식 입력이 아니라는 점을 명심하여야 한다.

표현식 결과
{{#if: 123 | yes | no}} yes
{{#if: 스치는 바보 | yes | no}} yes
{{#if: {{#if: | yes | no}} | yes | no}} yes
{{#if: | yes | no}} no
{{#if: | yes}}
{{#if: 1 == 2 | yes | no}} yes

#ifeq

#ifeq는 4개의 파라미터를 받아서, 1번과 2번째 파라미터가 서로 "같은 값"을 나타내고 있는지를 파악하고 만약 그렇다면 3번째 파라미터를 출력하고, 그렇지 않다면 4번째 파라미터를 출력한다.

1번과 2번째 파라미터가 수(数)로 파싱 가능한 값이라면 두 수가 같은지 비교하게 되고, 그렇지 않다면 문자열이 서로 같은지를 비교한다.

표현식 결과
{{#ifeq: 01 | 1 | equal | not equal}} equal
{{#ifeq: 0 | -0 | equal | not equal}} equal
{{#ifeq: 1e3 | 1000 | equal | not equal}} equal
{{#ifeq: {{#expr: 10 ^ 3}} | 1000 | equal | not equal}} equal
{{#ifeq: foo | bar | equal | not equal}} not equal
{{#ifeq: foo | Foo | equal | not equal}} not equal
{{#ifeq: "01" | "1" | equal | not equal}} not equal
{{#ifeq: 10^3 | 1000 | equal | not equal}} not equal

#ifeq의 모든 파라미터는 표현식이기 때문에 템플릿의 변수 호출 등을 파라미터에서 사용할 수 있다.

#iferror

#iferror 표현식은 파라미터 1의 표현식을 파싱하는 도중에 오류가 발생한다면 파라미터 2의 값을, 그렇지 않다면 파라미터 3의 값을 출력한다.

표현식 출력
{{#iferror: {{#expr: 1 / 0}} | error | correct }} error
{{#iferror: {{#expr: 1 + 2}} | error | correct }} correct

#ifexpr

#ifexpr 표현식은 파라미터 1의 표현식의 값이 참이라면 파라미터 2의 값을, 거짓이라면 파라미터 3의 값을 출력한다.

표현식 출력
{{#ifexpr: 1 | true | false}} true
{{#ifexpr: 0 | true | false}} false
{{#ifexpr: 1 = 2 | true | false}} false
{{#ifexpr: | true | false}} false
{{#ifexpr: {{#expr: 1 < 2}} | true | false}} true
{{#ifexpr: {{#expr: 1 > 2}} | true | false}} false

상기한 참고 문서의 설명에 따르면, 다음 두 문장은 동등한 것이라고 한다.

{{#ifeq: <expression> | 0 | <false> | <true>}}
{{#ifexpr: <expression> | <true> | <false>}}

#ifexist

#ifexist 표현식은 파라미터 1에 해당하는 문서가 위키에 존재하면 파라미터 2의 값을 출력하고, 그렇지 않다면 파라미터 3의 값을 출력한다.

표현식 출력
{{#ifexist: 사트 | [[사트]] 있음 | [[사트]] 없음}} 사트 있음
{{#ifexist: 없는 문서 | [[없는 문서]] 있음 | [[없는 문서]] 없음}} 없는 문서 없음

주석

주석 목록은 이렇게 가져올 수 있어요. 두 개는 못 써요.

  1. 2024년 5월 9일 22시 04분 09초 기준. 미디어위키 표현식의 한계에 의해서 이 값은 정확하게 나타나기 힘들다. 정확한 값을 얻기 위해서는 사트/표준#Python 구현에서 설명하는 방법을 통하는 것이 바람직하다.
  2. 2.0 2.1 현재 제이위키에서는 비공개 상태
  3. 이것은 주석이라고 하는 것이에요.
  4. 37은 boolean으로 true와 같기 때문에 not 37은 not true와 같다. 이는 false이다. 아마 미디어위키 엔진에서 출력 형태로 boolean을 지원하지 않아서 int의 false인 0이 나왔나보다.

Junhg0211 (토론) 2021년 12월 28일 (화) 17:52 (JST)