최근 수정 시각 : 2021-05-12 17:21:29

나무위키:문법 도움말/개발


파일:상위 문서 아이콘.svg   상위 문서: 나무위키:문법 도움말
이 문서는
이 문단은
토론을 통해 나무위키:문법 도움말/개발 문서를 생성하기(으)로 합의되었습니다. 합의된 부분을 토론 없이 수정할 시 제재될 수 있습니다.
아래 토론들로 합의된 편집방침이 적용됩니다. 합의된 부분을 토론 없이 수정할 시 제재될 수 있습니다.
[ 내용 펼치기 · 접기 ]
||<table width=100%><table bordercolor=#ffffff,#1f2023><bgcolor=#ffffff,#1f2023><(> 토론 - 나무위키:문법 도움말/개발 문서를 생성하기
토론 - 합의사항2
토론 - 합의사항3
토론 - 합의사항4
토론 - 합의사항5
토론 - 합의사항6
토론 - 합의사항7
토론 - 합의사항8
토론 - 합의사항9
토론 - 합의사항10
토론 - 합의사항11
토론 - 합의사항12
토론 - 합의사항13
토론 - 합의사항14
토론 - 합의사항15
토론 - 합의사항16
토론 - 합의사항17
토론 - 합의사항18
토론 - 합의사항19
토론 - 합의사항20
토론 - 합의사항21
토론 - 합의사항22
토론 - 합의사항23
토론 - 합의사항24
토론 - 합의사항25
토론 - 합의사항26
토론 - 합의사항27
토론 - 합의사항28
토론 - 합의사항29
토론 - 합의사항30
토론 - 합의사항31
토론 - 합의사항32
토론 - 합의사항33
토론 - 합의사항34
토론 - 합의사항35
토론 - 합의사항36
토론 - 합의사항37
토론 - 합의사항38
토론 - 합의사항39
토론 - 합의사항40
토론 - 합의사항41
토론 - 합의사항42
토론 - 합의사항43
토론 - 합의사항44
토론 - 합의사항45
토론 - 합의사항46
토론 - 합의사항47
토론 - 합의사항48
토론 - 합의사항49
토론 - 합의사항50
||


파일:나무위키:로고2.png 나무위키의 규정
기본방침 ( 문서 관리 방침 · 토론 관리 방침 · 이용자 관리 방침) · 편집지침 ( 일반 문서 · 특수 문서 · 특정 분야 /창작물 · 등재 기준 · 표제어)
파일:나무위키:로고2.png 나무위키의 도움말
FAQ · 도움말 ( 기능 · 편집 · 문법 /심화 · 토론 · 스킨 · 소명 · 권리침해 · 게시판) · 문서 삭제식 이동 · 더미 · 다른 위키와의 차이점
파일:나무위키:로고2.png 나무위키의 운영
관리자 · 중재자 · 역대 운영진 · 운영진 지원 · 운영 도움말 ( 관리 · 중재 · 권한) · 접근 제한 ( 문서 목록) · 운영회의 ( 시행규칙 · 안건 건의) · 임명 회의 ( 관리자 · 중재자) · 대문 기념일 ( 시행규칙) · 봇 리스트 · 투명성 보고서
파일:나무위키:로고2.png 나무위키의 기능
분류 · 게시판 · 엔진 ( 업데이트) · 통계 · 데이터베이스 덤프 · 연습장 · 내 문서함 · 문서 작성 요청 · 다중 토론 합의
파일:나무위키:로고2.png 나무위키의 분류
프로젝트 · 주요 페이지 링크 · 보존문서 · 파일 · · 템플릿


1. 개요2. 전제
2.1. 문법의 적용 순위2.2. 해석 범위
3. 1순위
3.1. 리다이렉트3.2. 문단 구문3.3. 매크로 구문3.4. 링크 구문
3.4.1. 외부 링크3.4.2. 파일3.4.3. 분류
3.5. 3중괄호 구문
3.5.1. #! 계열
3.6. 리스트, 인용문3.7. 주석
4. 2순위
4.1. 각주
5. 3순위
5.1. 텍스트 효과5.2. <math> 구문5.3. 셀 구문

1. 개요

이 문서는 언어론적 관점에서 분석하며, 사용법 자체에 대한 서술은 매우 자제하여 서술한다. 사용법에 대해서는 상위 문서를 참고.

개발진이 직접 공인한 것은 거의 없고, 위키 문법을 실험한 것을 바탕으로 역설계하여 작성한다.

2. 전제

2.1. 문법의 적용 순위

  1. 구문 A를 연다.
  2. 구문 B를 연다.
  3. 구문 A를 닫는다.
  4. 구문 B를 닫는다.

다음과 같은 예시를 보자.
링크과 매크로를 서로 엮은 모습
[[[pagecount(]])]] [pagecount([[)] ]]
매크로 pagecount와 링크 구문이 서로 엮여있다. 분명 두 구문은 모두 유효하다.[1] 그렇다면 어떤 구문이 먼저 적용될까?
링크가 적용됨 매크로가 적용됨
[pagecount()]] 3747342 ]]
정답은 먼저 연 구문이 우선 적용된다. 다른 문법 구문들 사이에서도 대체로 순서가 먼저 온 것이 우선적으로 적용된다. 하지만 이런 관계는 항상 성립하는 것은 아니다. 다음과 같은 예시를 보자.


굵기 효과와 매크로를 서로 엮은 모습
'''[pagecount(''')]
[pagecount(''')]'''
이런 경우, 첫번째 셀은 굵기 구문이 먼저 시작되었으니 [pagecount\(\)\]처럼 작성될 것 같아 보인다. 하지만 결과는 다르다.
굵기 효과와 매크로를 서로 엮은 모습
[pagecount()]
3747342'''
이와 같이 무조건 매크로가 먼저 적용된 것을 볼 수 있다. 이처럼 일부 문법 간에는 우선순위가 명백히 정해진 부분이 있다. 이 문서에서 문법 구문에 매겨놓은 '순위'는 이에 기반함을 미리 밝힌다.

다만 이 순위는 문법이 포착되는 순위라고 봐야 맞으며 나무마크가 html로 변환되는 시점까지 설명한다고 보기는 곤란하다. 예를 들면 매크로 문법은 매개변수가 개입할 수 있기 때문에 매크로의 처리는 매개변수 문법이 변환되는 시점 이후라고 봐야한다.

2.2. 해석 범위

설명에 앞서 구문에 칠한 색상에 대해 설명한다.
  • #나무마크: 내부에 다른 나무마크 구문이 개입할 수 있다.
  • @변수: 인클루드 매개변수 구문만 개입할 수 있으며, 타 나무마크 문법을 적용할 수 없다.
    • @하위문법: 인클루드 매개변수만 적용되는 영역 중에서 별도의 문법이 적용되기도 하는데 이를 '하위문법'이라고 한다. 매크로의 소괄호 내부나, 링크에서의 문서간 상대 링크 지정을 하위문법이라고 부른다.
  • $상수: 매개변수 구문을 포함한 모든 나무마크 구문이 개입할 수 없다. 반드시 정해진 값들중에서만 골라 써야한다.
  • -텍스트: 어떤 텍스트도 허용되지 않는다.
  • -개행: 개행이 허용되지 않는다. "\
    " 매크로에 의한 개행은 허용된다.
  • (반복)*n~m: 괄호 안의 내용이 n번에서 m번까지 반복될 수 있다. 괄호는 상황에 따라 (소괄호) 뿐만 아니라 {중괄호}, [대괄호]도 쓰일 수 있다.

3. 1순위

특이점이라면, 문법 구문 내에서 개행이 지원되는 문법은 전부 1순위에 해당한다.

3.1. 리다이렉트

-텍스트
#redirect @대상문서
(이후 구문은 무시됨)
  • 리다이렉트 구문은 구문 이전에 주석을 포함한 어떤 텍스트도 존재해서는 안된다.
  • 구문을 완성하면 구문 이후의 모든 텍스트는 편집을 저장하는 순간, 편집자의 의도와는 상관없이 제거된 채로 편집에 반영된다.
  • 의미는 없지만, 인클루드 매개변수 구문이 유효하다.

3.2. 문단 구문

-텍스트(=)*1~6 #나무마크-개행 (=)*1~6-텍스트
-텍스트(=)*1~6# #나무마크-개행 #(=)*1~6-텍스트
구문이 반드시 한 행을 전부 차지해야 한다.

양옆의 등호(=)는 서로 갯수가 같아야 한다.

양쪽 등호 안쪽에 #을 넣으면 기본 숨김 상태가 된다.

문단 구문은 해당 위치에 암묵적으로 's-(문단 번호)'와 '문단 이름' 앵커를 남긴다.

3.3. 매크로 구문

[$매크로 이름]
[$매크로 이름(@매개변수)]
유효한 매크로 이름
매개변수가 사용됨 매개변수가 사용되지 않음
age, dday, include, youtube, nicovideo, kakaotv, pagecount br, clearfix, date, datetime, footnote, tableofcontents, 각주, 목차
매크로의 인수는 0~1개이다. 소괄호 밖은 단일 행이지만, 소괄호 안은 다중 행을 지원한다. 유효한 매크로 외 다른 이름을 호출하려고 시도하면 매크로 문법으로 취급되지 않는다. 대소문자는 구분하지 않는다.

매개변수 구문 내에는 공백을 포함한 어떤 텍스트를 쓰든 매크로 구문 자체는 유효하다.

|| [include(||)] || 와 같이 적었을 때 표가 뜨지 않는 것으로 보아 매개변수를 받는 매크로 구문 역시 셀(3순위)보다 먼저 처리되는 것으로 보인다. 만약 4순위 이후에 처리된다면, 아래와 같이 나와야 정상이다.
\[include\( )]

그러나 실제 출력 결과는 아래와 같다.
[include( )]

3.4. 링크 구문

\[\[@하위문법-개행]]
\[\[@하위문법#@앵커-개행]]
\[\[#@앵커-개행]]
\[\[@하위문법|#나무마크-개행]]
\[\[@하위문법#@앵커|#나무마크-개행]]
\[\[#@앵커|#나무마크-개행]]
6개의 바리에이션이 있다.

인수는 1~3개를 받는다. 단일 행 문법이며, 위에 적은 것부터 적용된다.

구조적으로 링크 속 링크가 가능해보이지만 실제 결과는 조금 다르게 나온다.

3.4.1. 외부 링크

\[\[$프로토콜://@하위문법-개행]]
\[\[$프로토콜://@하위문법|#나무마크-개행]]
유효한 프로토콜
http, https, ftp

하위문법은 URL에서 프로토콜을 뺀 부분이다. (앵커도 하위문법에 포함된다.)

URL의 호스트 부분에는 2글자 이상의 최상위 도메인과 2단계 도메인이 있어야 유효한 외부 링크이다.

인수는 2~3개를 받는다. 단일 행 문법이며, 위에 적은 것부터 적용된다.

3.4.2. 파일

\ 파일:{{{#blue @하위문법}}}{{{
\ 파일:{{{

3.4.3. 분류

\
\

3.5. 3중괄호 구문

3.5.1. #! 계열

\{\{\{#!$기능 이름 @속성
@본문}}}
유효한 기능 이름 속성 본문
folding 접기 문법의 제목을 받는다. 기본값은 More 숨길 내용
wiki style="@CSS 문법" 꼴로 취한다. css를 적용할 내용
syntax 적절한 언어값이 와야 한다. 해당 언어의 문법을 적용해 스크립트를 보여준다.

3.6. 리스트, 인용문

-텍스트( )*1~*#나무마크
-텍스트( )*1~$번호.#나무마크
-텍스트( )*1~$번호.#$시작#나무마크
-텍스트(>)*1~#나무마크
유효한 번호
1, a, A, i, I

$시작에는 0 이상의 정수가 유효하다.

3.7. 주석

-텍스트\#\#&주석 내용

4. 2순위

4.1. 각주

5. 3순위

5.1. 텍스트 효과

\+{{{#blue @크기}}} {{{#green #나무마크}}}\
\-{{{#blue @크기}}} {{{#green #나무마크}}}\
\#{{{#blue @색상}}} {{{#green #나무마크}}}\
\#{{{#blue @라이트모드 색상}}},#{{{#blue @다크모드 색상}}} {{{#green #나무마크}}}\
인수는 1개에서 2개를 받는다. 단일 행 문법이다.

5.2. <math> 구문

5.3. 셀 구문

한 행이 '||'로 시작해서 '||'로 끝나야 함.
[1] 매크로 pagecount의 매개변수로 이름공간이 와야 의미가 있지만 소괄호 안에 무엇이 오든 매크로 구문 자체는 성립한다. pagecount의 경우 매개변수에 알맞은 이름공간이 오지 않으면 전체 문서의 수를 보여준다.