사용자:유한림
한림국 세계관 구성
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
{{Linkget}}의 이용
게임을 제작하다 보면 자신이 생각했던 것을 쉽게 구현하지 못하는 경우가 허다할 것입니다. 그래서 미디어위키에서 제공하는 여러 가지 확장 기능들을 사용해서 게임을 꾸밀수도 있습니다.
{{Linkget}}은 매개변수를 사용할 수 있게 해 주는 틀입니다. 몇몇 게임을 플레이 하다보면 ?offset=숫자 같은것들이 주소에 붙어있는것을 확인할 수 있습니다. 이런 건 {{CGI}}를 이용한 게임으로(참고로 구형입니다), 새로 만들어진 {{Linkget}}의 기능은 이와 유사합니다.
- {{Linkget}}의 이용방법
- {{#urlget:var}} 라고 바로 쓰게 되면 주소에 쓰여 있는 var= 뒤의 값을 바로 출력합니다. 주소에 그런 게 없다면, 아무 것도 출력하지 않습니다.
- {{Linkget|링크에 나타날 텍스트|get=var=값}} 라고 바로 쓰게 되면 현재 페이지에 var의 새로운 값을 넘겨줍니다.
- {{Linkget|넘길 페이지|링크에 나타날 텍스트|get=var={{#urlget:var}}}} 라고 바로 쓰게 되면 현재 var의 값을 다른 페이지로 넘겨줍니다.
- 지금까지 계속 변수 이름으로 var라는 것을 사용해 왔는데요, var 대신 다른 문자열을 택해도 좋습니다. 여러 변수값을 넘겨주려면
get=변수1=값1&변수2=값2&...
과 같이 쓸 수 있습니다. (여기서 변수1, 변수2, ...는 아까 썼던 var와 같은 것입니다.)
특수 함수
#ifanon, #ifblocked, #ifsysop
사용자의 여부와 관련된 특수 함수로 #ifanon은 익명 (IP 사용자)의 여부를 알려주며, #ifblocked는 차단 당했는지의 여부를, #ifsysop는 관리자의 여부를 알려줍이다.
{{#ifanon: 참 | 거짓}}
여기서 익명일 때에는 참을, 아닐 때에는 거짓을 출력합니다.
너가 익명인가? 참
이 때 #ifanon 뿐만 아니라 #ifblocked와 #ifsysop도 사용법은 같습니다.
#ifingroup
#ifingroup은 소속된 사용자 권한 그룹의 여부를 알려줍니다.
{{#ifingroup: 그룹 | 구성원일 경우 | 구성원이 아닐 경우}}
이 때 그룹에는 autoconfirmed, sysop, user, rollback을 입력할 수 있습니다.
아래는 예제입니다.
너가 자동으로 인증된 사용자인가? {{#ifingroup:autoconfirmed|참|거짓}}
아래는 결과입니다.
너가 자동으로 인증된 사용자인가? 거짓
#time
{{ #time: 형식 }} {{ #time: 형식 | 시간 }}
시간을 출력합니다.
코드 | 설명 | 예시 | 현재 |
---|---|---|---|
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 | 10 |
d | 현재 날(앞에 0이 붙음) | 01~31 | 10 |
z | 그 해부터 지난 날수(0부터 시작함) | 0~364, 윤년일 경우 365까지 | 314 |
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) | 45 |
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 | 5 |
h | 시간을 12시간 단위로 표기하되, 앞에 0을 붙임(2자리이고 am/pm 또는 AM/PM과 같이 쓴다.). | 01~12 | 05 |
G | 시간을 24시간 단위로 표기하되, 앞에 0을 붙이지 않음(1자리 또는 2자리). | 0~23 | 5 |
H | 시간을 24시간 단위로 표기하되, 앞에 0을 붙임(2자리). | 00~23 | 05 |
i | 분(2자리). | 00~59 | 00 |
s | 초(2자리). | 00~59 | 47 |
U | 1970년 1월 1일 00:00:00 UTC부터 흐른 초 수. | 0~2147483647 | 1731214847 |
c | ISO 8601 형식을 따른 날짜로, {{#time:Y-m-dTH:m:s{{#time:+H:m|+0 hours}}}}와 같다. | fixed length string | 2024-11-10T05:00:47+00:00 |
r | RFC 2822 형식을 따른 날짜로, {{#time:D, j M Y H:m:s {{#time:+H:m|+0 hours}}}}와 같다. | variable length string | Sun, 10 Nov 2024 05:00:47 +0000 |
예제
- {{ #time: Y년 M월 j일 l | 20070304 }} → "2007년 3월 4일 일요일"
- {{ #time: Y년 M월 j일 l | 2007-3-4 }} → "2007년 3월 4일 일요일"
- {{ #time: Y년 M월 j일 l | 4 March 2007 }} → "2007년 3월 4일 일요일"
- {{ #time: Y년 M월 j일 l | -32 days }} → "2024년 10월 9일 수요일" (32일 전)
- {{ #time: H:i | +9 hours }} → "14:00" (UTC보다 9시간 빠름)
- {{ #time: H:i | 8:15 +9 hours }} → "17:15"
- {{ #time: Y/m | -17 months }} → "2023/06" (17개월 전)
- {{ #time: [[Y년]] [[M월 j일]] l | 4 March 2007 }} → "2007년 3월 4일 일요일"
#var , #vardefine
#var 과 #vardefine은 변수를 지정하고 사용할 수 있는 함수로 다음과 같이 사용합니다.
{{#vardefine: 변수이름 | 변수값 }} {{#var: 변수이름 }}
이렇게 사용할 수 있습니다.
{{#vardefine:sky|blue}} Sky is {{#var:sky}}
아래는 결과값입니다.
Sky is blue
#len
#len는 문자열의 개수를 새어주는 함수로 다음과 같이 사용합니다.
{{#len: 문자열 }}
아래는 예제입니다.
"Nu is babo"의 길이는 {{#len:Nu is babo}}입니다.
아래는 결과값입니다.
"Nu is babo"의 길이는 10입니다.
#pos
#pos는 문자열에 어떤 문자를 찾아서 맨처음으로 찾아진 문자가 어디에 위치해 있는지 확인해주는 함수로 다음과 같이 사용합니다.
{{#pos: 문자열 | 찾을 문자 }}
아래는 예제입니다.
"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 {{#pos:Nu와 GNU가 싸우면 GNU가 이긴다.|GNU}}입니다.
아래는 결과값입니다.
"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 4입니다.
#rpos
#rpos는 문자열에 어떤 문자를 찾아서 마지막으로 찾아진 문자가 어디에 위치해 있는지 확인해주는 함수로 다음과 같이 사용합니다.
{{#rpos: 문자열 | 찾을 문자 }}
아래는 예제입니다.
"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 {{#rpos:Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다.|GNU}}입니다.
아래는 결과값입니다.
"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 28입니다.
#replace
#replace는 문자열에서 특정 단어를 찾아서 다른 단어로 치환해주는 함수로 다음과 같이 사용합니다.
{{#replace:문자열|특정 단어|다른단어}}
아래는 예제입니다.
"Nu는 바보다" 에서 Nu를 GNU로 바꾸면 "{{#replace:Nu는 바보다|Nu|GNU}}"입니다.
아래는 결과값입니다.
"Nu는 바보다" 에서 Nu를 GNU로 바꾸면 "GNU는 바보다"입니다.
#rand
임의의 숫자를 출력해주는 기능을 갖고 있습니다. {{#rand:a|b}}로 입력하시면 a에서 b사이에 있는 임의의 정수를 출력합니다.
예제 | {{#rand:1|100}} |
---|---|
결과 | 100}} |
#titleparts
- titleparts는 페이지 제목을 조금 더 정교하게 자르기 위한 것입니다. Magic Words 중 하나인 {{PAGENAME}}류와 함께 쓰면 더욱 효과적입니다.
{{#titleparts: 페이지명 | 반환할 구역 수 | 반환할 첫번째 구역 }}
구역이라는 것은 상위/하위 문서 하나 단위를 의미합니다. 예제를 보겠습니다.
{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|2}}
이와 같이 하면 다음과 같이 출력됩니다. 두번째 변수가 없으면 처음부터 앞에 쓴 숫자만큼 잘라버립니다.
백괴책:낚시학개론/둘째낚시
다른 예제를 보겠습니다.
- {{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|3|2}}
이는 3개만큼 자르되 2번째 칸부터 시작한다는 뜻입니다. 첫번째 변수(빨간 글씨)를 생략할 시는 기본값이 1로 지정됩니다. 따라서 결과는 다음과 같습니다.
둘째낚시/셋째낚시/넷째낚시방
#titleparts는 음수도 가능합니다.
{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|-1}}
음수의 경우 뒤쪽부터 셉니다. 따라서 이렇게 입력하였을 때의 결과는 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방이 됩니다. 같은 원리로, 첫째 변수가 아닌 둘째 변수가 -1일 시에는 마지막이다가 나옵니다.
고급 내부 링크
바깥 링크를 거는 방법을 응용해서 고급 내부 링크를 걸 수 있습니다. 이때 fullurl과 urlencode를 사용하게 됩니다. fullurl은 현재 위키의 주소를 나타내며 urlencode는 문서 제목을 입력할 때 URL 주소에 맞게 글자를 변환(인코딩)을 해줍니다. 다만 {{urlencode:{{FULLPAGENAME}}}}와 같은 경우에는 {{FULLPAGENAMEE}} 처럼 ‘E’를 덧붙임으로서 문서를 URL 주소에 맞게 변환해줍니다.
문서를 보여줄 때
문서를 보여줄 때에는 다음과 같이 링크를 걸면 됩니다만 보여줄 내용을 태그로 글자를 꾸미지 않는 이상 쓸 필요는 없습니다.
[{{fullurl:{{urlencode:문서 제목}}|offset=오프셋}} 보여줄 내용]
- 문서 제목 : 링크할 문서 제목을 입력합니다.
- offset : 오프셋 숫자를 입력합니다. {{CGI}} 또는 {{Get}}에서 사용하는 변수로, 해당 숫자를 CGI 틀에 보여줄 수 있습니다.
- 보여줄 내용 : 링크에 보여줄 내용을 입력합니다.
- 오프셋을 사용하지 않을 때 보여줄 내용에 태그로 글자를 꾸미려면 다음과 같은 방법으로 걸 것을 권합니다.
- [[문서 제목|보여줄 내용]]
- 보여줄 내용을 태그로 글자를 꾸미지 않고 그냥 넣을 때에는 고급 내부 링크를 거는 대신에 다음과 같은 방법으로 걸 것을 권합니다.
편집을 할 때
편집을 할 때에는 다음과 같이 링크를 걸면 됩니다.
[{{fullurl:{{urlencode:문서 제목}}|action=edit&editintro={{urlencode:편집 윗부분에 보여줄 문서 제목}}&summary={{urlencode:편집 요약}}&minor=사소한 편집&offset=오프셋}} 보여줄 내용]
여기서 editintro, summary, minor, offset 변수는 생략할 수 있으며 나머지는 반드시 입력해야 올바른 링크가 됩니다.