도움말:특수 명령문

L위키, 시민들이 참여하여 가꾸는 리버럴 위키
(도움말:특수 함수에서 넘어옴)

L위키가 사용하고 있는 위키 소프트웨어인 미디어위키는 특정한 기능을 가지고 있는 특수 명령문(또는 매직워드)을 제공하고 있습니다. 이 명령들은 문서 이름에 대한 정보를 보여주거나, 혹은 목차 사용에 관련된 설정을 변경하는 데에 사용됩니다.

특수 명령문의 종류[편집 | 원본 편집]

특수 명령문에는 총 세 종류가 있습니다.

  • 작동 스위치(behavior switch): 밑줄로 호출하며, 목차 강제, 목차 숨김, 분류 숨기기 등의 문서가 표시되는 방법을 설정합니다. 매개 변수는 받지 않습니다. 두 개의 밑줄표로 둘러싸이고 대문자로 된 문자열을 가지는 경우가 보통입니다. 예시: __FOO__
  • 변수(variable): 두 개의 중괄호로 둘러싸이고 대문자로 된 문자열을 가지며, 시간, 서버, 문서, 통계 정보 등을 출력합니다. 틀과 이름이 겹칠 경우 우선 순위는 특수 변수입니다. 틀:지역일 문서가 있을 때 {{지역일}}을 쓸 경우 틀이 호출되지 않고 특수 변수가 호출되며, 틀을 부르려면 {{틀:지역일}}을 써야 합니다. 단, 일부 상황에서는 틀이 우선됩니다. 예시: {{FOO}}. 보시다시피, 틀을 사용하는 것과 매우 닮았습니다.
  • 파서 함수(parser function): 중괄호로 호출하며, URL 처리, 이름공간 출력, 문자열 형식 처리 등을 수행합니다. 매개 변수를 받는지 여부는 파서 함수마다 다릅니다. 매개 변수를 받는 특수 변수 또한 기술적으로는 파서 함수입니다. {{foo:...}}{{#foo:...}}의 형태를 가집니다. 예시: {{#invoke:...}}.

문서 설정 스위치[편집 | 원본 편집]

목차[편집 | 원본 편집]

입력 설명
__목차숨김__, __NOTOC__ 목차를 숨깁니다.
__목차보임__, __FORCETOC__ 목차를 보이게 합니다.
__목차__, __TOC__ 원하는 위치에 목차를 두게 합니다.

그 외[편집 | 원본 편집]

입력 설명 지원 버전
__INDEX__ 검색엔진이 이 문서를 수집하는 것을 허가합니다. MW1.14+
__색인안함__, __NOINDEX__ 검색엔진이 이 문서를 수집하는 것을 거부합니다. MW1.14+
__단락편집숨김__, __NOEDITSECTION__ 각 단락별 오른쪽에 위치한 "[편집]" 버튼을 숨깁니다. (몇몇 브라우저는 큰 용량의 문서를 편집할 때 문제가 발생할 수 있으니, 특별한 문서를 제외하고는 이 기본 틀을 사용하지 않는 것을 권장합니다.)
__새글쓰기__, __NEWSECTIONLINK__ 새 글 쓰기 상위 메뉴(새 주제)를 만듭니다. MW1.7+
__새글쓰기숨기기__, __NONEWSECTIONLINK__ 새 글 쓰기 상위 메뉴(새 주제)를 숨깁니다. MW1.15+
__화랑숨김__, __갤러리숨김__, __NOGALLERY__ 분류에 그림이 포함될 경우 갤러리 형태로 '그림 미리보기'가 되는 것을 막습니다. MW1.7+
__숨김분류__, __HIDDENCAT__ 분류를 숨은 분류로 만들어 주며, ‘숨은 분류’된 분류를 분류하게 되면, 항목 아래에 나타나지 않고 문서 편집 모드에서 분류가 나타납니다. (예 분류:문장에 출처가 필요한 글, 2007년 서해안 원유 유출 사고) MW1.13+


특수 변수[편집 | 원본 편집]

협정 세계시[편집 | 원본 편집]

협정 세계시의 시간 표기

입력 표시 설명 지원 버전
{{현재일}} 24 현재의 날짜를 표시합니다.
{{현재일2}} 24 위와 같지만, 한자리수일 경우는 앞에 0이 붙습니다. MW1.6+
{{현재요일}} 일요일 요일을 해당 언어로 표시합니다.
{{현재요일숫자}} 0 요일을 숫자로 표시합니다. 일요일이 0, 토요일이 6입니다.
{{현재월}} 11 달을 숫자로 표시합니다. 단, 한자리수일 경우는 앞에 0을 붙입니다.
{{현재월1}} 11 달을 숫자로 표시합니다. 한자리수일 경우 0을 붙이지 않습니다.
{{현재월이름}} 11월 달을 이름으로 표시합니다. 한국어의 경우에는 특별한 이름이 없기 때문에 숫자 뒤에 '월'자를 붙인 꼴입니다.
{{현재월이름약자}} 11 달 이름을 3자 약어로 표시합니다. 한국어의 경우에는 역시 위와 동일합니다. MW1.5+
{{현재시분}} 00:15 현재 시각(시:분) (00:00 ~ 23:59)
{{현재시}} 00 현재 시각(시) (00 ~ 23)
{{현재주}} 47 현재의 주. ISO 8601에 의한 숫자(1 ~ 53). (한자리수일 경우 앞에 0을 붙지 않습니다.)
{{현재년}} 2024 현재의 서기년도.
{{현재타임스탬프}} 20241124001543 ISO 8601에 의한 타임스탬프 MW1.7+

현지 시각[편집 | 원본 편집]

  • 사이트에서 설정된 표준시에 따른 시각입니다. L위키에서는 한국표준시로 시간대가 설정되어 있습니다. 그러므로 사용자의 현지 시각과 다를 수 있습니다.
입력 표시 설명 지원버전
{{지역일}} 24 현재의 날짜를 표시합니다. MW1.8+
{{지역일2}} 24 {{지역일}}과 같지만, 두자리로 표시합니다. 즉, 한자리 수일 경우는 앞에 0이 붙습니다. MW1.8+
{{지역요일}} 일요일 요일을 해당 언어로 표시합니다. MW1.8+
{{지역요일숫자}} 0 요일을 숫자로 표시합니다. 일요일이 0, 토요일이 6입니다. MW1.8+
{{지역월}} 11 달을 숫자로 표시합니다. 단, 한자리수일 경우에는 앞에 0이 붙습니다. MW1.8+
{{지역월1}} 11 달을 숫자로 표시합니다. 한자리수일 경우 0을 붙이지 않습니다.
{{지역월이름}} 11월 달을 이름으로 표시합니다. 한국어의 경우에는 특별한 이름이 없기 때문에 숫자 뒤에 '월'자를 붙인 꼴이 출력됩니다. MW1.8+
{{지역월이름약자}} 11 달 이름을 3글자 약어로 표시한다. 한국어의 경우에는 역시 위와 동일합니다. MW1.8+
{{지역시분}} 09:15 현재의 현지시각(시:분) (00:00 ~ 23:59) MW1.8+
{{지역시}} 09 현재의 현지시각(시) (00 ~ 23) MW1.8+
{{지역주}} 47 현재의 주. ISO 8601에 의한 숫자(1 ~ 53). (한자리수일 경우 앞에 0이 붙지 않습니다.) MW1.8+
{{지역년}} 2024 현재의 서기년도. MW1.8+
{{지역타임스탬프}} 20241124091543 ISO 8601에 의한 타임스탬프. MW1.8+

통계[편집 | 원본 편집]

  • 페이지가 캐시되고 있는 경우에는 최신 자료가 아닐 수도 있습니다.
입력 표시 설명 지원 버전
{{현재버전}} 1.39.8 (fbca402) 미디어위키의 버전 MW1.7+
{{문서수}}
{{문서수:R}}
536
536
일반 문서의 총 개수
{{모든문서수}}
{{모든문서수:R}}
5,144
5144
모든 문서의 총 개수
{{파일수}}, {{그림수}}
{{파일수:R}}, {{그림수:R}}
400
400
업로드된 파일 총 개수
{{사용자수}}, {{계정수}}
{{사용자수:R}}, {{계정수:R}}
100
100
등록된 사용자 총 수(데이터베이스에서 사용자 테이블의 행 수)
{{관리자수}}
{{관리자수:R}}
3
3
관리자의 수
{{이름공간문서수}} 사용불가 페이지 공간 내의 페이지 수
{{이름공간문서수:ns}}
{{이름공간문서수:ns:R}}
{{이름공간문서수:2}}
사용불가
주어진 페이지 공간 내의 페이지 수. 기본설정(default)에서는 사용할 수 없고, $wgAllowSlowParserFunctions 옵션을 바꾸어야 가능합니다. MW1.7+

파서 함수[편집 | 원본 편집]

#expr[편집 | 원본 편집]

#expr은 간단한 계산을 할 수 있는 기능으로, 다음과 같이 사용합니다.

{{ #expr: 계산식 }}
연산자 기능 예제
- {{#expr: 123456789012345}} = 1.2345678901234E+14
{{#expr: 0.000001}} = 1.0E-6
( ) 괄호 {{#expr: (30 + 7) * 7 }} = 259
+ 양수 부호 {{#expr: +30 * +7}} = 210
- 음수 부호 {{#expr: -30 * -7}} = 210
not 부정문 {{#expr: not 0 * 7}} = 7
{{#expr: not 30+7}} = 7
* 곱셈 {{#expr: 30 * 7}} = 210
/ 나눗셈 {{#expr: 30 / 7}} = 4.2857142857143
div 나눗셈. /과 같음 {{#expr: 30 div 7}} = 4.2857142857143
{{#expr: 5 div 2 * 2 + 5 mod 2}} = 6
mod 정수 나눗셈을 한 나머지를 구합니다.

주의: 다른 프로그래밍 언어와 작동 방식이 다릅니다.

{{#expr: 30 mod 7}} = 2
{{#expr: -8 mod -3}} = -2
{{#expr: -8 mod +3}} = -2
{{#expr: 8 mod 2.7}} = 0
{{#expr: 8 mod 3.2}} = 2
{{#expr: 8.9 mod 3}} = 2
+ 덧셈 {{#expr: 30 + 7}} = 37
- 뺄셈 {{#expr: 30 - 7}} = 23
round 반올림 계산을 합니다. {{#expr: 30 / 7 round 3}} = 4.286
{{#expr: 30 / 7 round 0}} = 4
{{#expr: 3456 round -2}} = 3500
= 등호 {{#expr: 30 = 7}} = 0
<> 부등호. 다를 경우에 true=1, 같을 경우에 false=0이 나옵니다. {{#expr: 30 <> 7}} = 1
!= 부등호. <>와 같습니다. {{#expr: 1 != 0}} = 1
< 작다 {{#expr: 30 < 7}} = 0
> 크다 {{#expr: 30 > 7}} = 1
<= 작거나 같다 {{#expr: 30 <= 7}} = 0
>= 크거나 같다 {{#expr: 30 >= 7}} = 1
and Logical AND {{#expr: 4<5 and 4 mod 2}} = 0
or Logical OR {{#expr: 4<5 or 4 mod 2}} = 1

입력할 때에 0이 false, 나머지의 값이 true로 처리됩니다. 계산 결과로는 false가 0, true가 1로 나옵니다.

#if[편집 | 원본 편집]

#if는 if-then-else 조건문입니다. 다음과 같이 사용합니다.

{{ #if: <조건 문자열> | <조건이 참이면 나올 문장> | <조건이 거짓이면 나올 문장> }}
{{ #if: <조건 문자열> | <조건이 참이면 나올 문장> }}

이때 조건의 판단은 "조건 문자열"이 비어 있느냐 비어 있지 않느냐입니다. 다시 말해, 조건 문자열이 비어 있지 않을 때 참, 비어 있을 때 거짓을 반환합니다. 그러므로 조건 문자열이 공백 문자들로만 구성되어 있으면 거짓으로 판단하고, 결과로 "조건이 거짓이면 나올 문장"이 반환됩니다.

거짓일 때 나올 문장은 생략할 수 있습니다. 이런 경우에는, 조건이 거짓이면 빈 문장이 반환됩니다.

주의해야 할 점은, 이것은 기존의 {{{parameter|}}} 동작과 다릅니다. 다음의 두 작동을 비교해 보세요.

{{{parameter|없음}}} {{#if: {{{parameter|}}} | {{{parameter}}} | 없음}}
{{틀|parameter=a}} a a
{{틀}} 없음 없음
{{틀|parameter=}} 없음

또한, 조건이 참/거짓일 때 나오는 문장에는 자동으로 앞뒤로 빈 문자열이 삭제됩니다.

#ifeq[편집 | 원본 편집]

{{#ifeq: 문자열 1 | 문자열 2 | 같을 경우 | 다를 경우}}
  • {{#ifeq: aa | aa | same | different}} -> same

문자열 부분에 숫자가 들어오면 숫자 값으로 검사합니다.

  • {{ #ifeq: +07 | 007 | 1 | 0 }} -> 1
  • {{ #ifeq: "+07" | "007" | 1 | 0 }} -> 0

매개변수가 정의되었는지를 #if로는 검사할 수 없습니다. 이를 검사하려면 #ifeq문을 사용해야 합니다.

  • {{ #if: {{{x| }}}|not blank|blank}} = blank
  • {{ #ifeq: {{{x| }}}| |blank|not blank}} = blank
  • {{ #ifeq: {{{x| }}}|{{{x|u}}}|defined|undefined}} = undefined

#ifexist[편집 | 원본 편집]

{{#ifexist: 문서 이름 | 문서가 있을 경우 | 문서가 없을 경우}}

만약 문서 이름에 인터위키를 넣으면 결과는 항상 문서가 없는 경우로 나옵니다.

#ifexpr[편집 | 원본 편집]

{{#ifexpr: 계산식 | true일 경우 | false일 경우}}

계산식이 빈 문자열일 때도 false가 나옵니다.

  • {{#ifexpr: {{ns:0}}|Toast|'''or else'''}} = or else

true, false 두 문장을 쓰지 않으면 아무것도 출력되지 않습니다. 단, 오류가 있을 경우에는 오류 메시지가 출력됩니다. 이를 이용해서 수식에 오류가 있는지 없는지 확인하는 것도 가능합니다.

  • {{#ifexpr: 1/0}} -> 0으로 나눴습니다.
  • {{#if: {{#ifexpr: 1/0}} | 오류 있음 | 오류 없음}} -> 오류 있음

#switch[편집 | 원본 편집]

다른 프로그래밍 언어의 switch문과 비슷한 구조를 가지고 있습니다.

{{#switch: 비교할 값
| <value1> = <result1>
| <value2> = <result2>
| ...
| <valuen> = <resultn>
| <default result>
}}

마지막 default값은 모든 비교가 실패했을 때의 값으로, 항상 있어야 합니다. 만약 default 값에 등호가 들어간다면, #default = <값>를 사용할 수 있습니다.

#time, #timel[편집 | 원본 편집]

{{ #time:  형식 }}
{{ #time:  형식 | 시간 }}

현재 년월일과 시간을 출력합니다. #timel의 경우 L위키에서 기본적으로 설정된 시간대(KST)의 값을 보여줍니다.

코드 설명 예시 현재
Y 네 자리 연도 예: 2006 2024
y 두 자리 연도 00~99,
예: 06=2006.
24
L 윤년일 경우 1이면 윤년, 0이면 평년 1
n 현재 달(앞에 0이 붙지 않음) 1~12 11
m 현재 달(앞에 0이 붙음) 01~12 11
M 줄인 달 이름 1~12 11
F 달 이름 1월~12월 11월
t 각 달에 있는 날짜 수 28~31 30
j 현재 날(앞에 0이 붙지 않음) 1~31 24
d 현재 날(앞에 0이 붙음) 01~31 24
z 그 해의 1월 1일부터 지난 일수(0부터 시작함) 0~364, 윤년일 경우 365까지 328
D 줄인 요일 이름 월~일
l 요일 이름 월요일~일요일 일요일
w 요일 숫자(미국식) 0(일요일)~6(토요일) 0
N 요일 숫자(ISO 8601 방식). 1(월요일)~7(일요일) 7
W ISO 8601 주 숫자(ISO 연도는 월요일부터 일요일까지 완전히 있어야 한 주로 치고, 첫 번째 주는 늘 1월 4일이나 역년 목요일을 포함한다.). 1 to 52 or 53 (depends on year) 47
o ISO 8601 주 에 따른 연도 현재연도와 대체로 일치 2024
a am(같은 날 01:00:00부터 12:59:59까지)이나 pm을 소문자로 나타낸다(시간 단위를 12시간제로 표시할 때 쓴다.). am이나 pm am
A a와 같지만, 대문자로 나타낸다. AM이나 PM AM
g 시간을 12시간 단위로 표기하되, 앞에 0을 붙이지 않음(1, 2자리이고 am/pm 또는 AM/PM과 같이 쓴다.). 1~12 12
h 시간을 12시간 단위로 표기하되, 앞에 0을 붙임(2자리이고 am/pm 또는 AM/PM과 같이 쓴다.). 01~12 12
G 시간을 24시간 단위로 표기하되, 앞에 0을 붙이지 않음(1자리 또는 2자리). 0~23 0
H 시간을 24시간 단위로 표기하되, 앞에 0을 붙임(2자리). 00~23 00
i 분(2자리). 00~59 15
s 초(2자리). 00~59 43
U 1970년 1월 1일 00:00:00 UTC부터 흐른 초 수. 0~2147483647 1732407343
c ISO 8601 형식을 따른 날짜로, {{#time:Y-m-dTH:m:s{{#time:+H:m|+0 hours}}}}와 같다. fixed length string 2024-11-24T00:15:43+00:00
r RFC 2822 형식을 따른 날짜로, {{#time:D, j M Y H:m:s {{#time:+H:m|+0 hours}}}}와 같다. variable length string Sun, 24 Nov 2024 00:15:43 +0000

#rel2abs[편집 | 원본 편집]

상대 주소를 절대 주소로 바꿔줍니다.

  • “도움말:가나/다라”에서 {{ #rel2abs: ../마바 }}를 호출한 경우, 결과는 도움말:가나/마바가 됩니다.
  • “도움말:가나”에서 {{ #rel2abs: ../마바 }}를 호출한 경우, 결과는 마바가 됩니다.
  • “도움말:가나”에서 {{ #rel2abs: ../../마바 }}를 호출한 경우, 아래와 같은 오류 메시지가 출력됩니다.
    • 오류: 경로 구조가 잘못되었습니다: "도움말:가나/../../마바" (루트 노드 위의 노드에 접속을 시도했습니다)
  • {{ #rel2abs: ../마바 | 도움말:가나/다라 }}를 호출한 경우, 결과는 도움말:가나/마바가 됩니다.
  • {{ #rel2abs: 도움말:가나/다라/../마바 }}를 호출한 경우, 결과는 도움말:가나/마바가 됩니다.

#language[편집 | 원본 편집]

해당 언어 코드에 맞는 언어명을 출력합니다.

  • {{ #language: ko }} → 한국어
  • {{ #language: vi }} → Tiếng Việt
  • {{ #language: zh-min-nan }} → Bân-lâm-gú

#invoke[편집 | 원본 편집]

L위키:모듈을 불러 들여와 실행합니다.

  • {{ #invoke: Bananas|hello }} → 모듈:Bananashello 함수를 호출한 결과를 출력합니다.

조사 관련[편집 | 원본 편집]

한국어조사 확장 기능이 존재합니다. 해당 확장기능은 로마자 등은 지원되지 않습니다. 자세한 사항은 여기를 참고하세요.

  • {{ #은는: 사과 }} → 사과는
  • {{ #은는: 사과|조사만 }} → 는
  • {{ #을를: 연필 }} → 연필을
  • {{ #이가: 친구 }} → 친구가
  • {{ #과와: 인터넷 }} → 인터넷과
  • {{ #아야: 영희 }} → 영희야
  • {{ #이: 태준 }}가 → 태준이가
  • {{ #으로: 위키백과 }} → 위키백과로

같이 보기[편집 | 원본 편집]