문법 설명서

본 문서는 위키 문서 작성에 사용되는 문법을 상세히 설명합니다. 기본적으로 Markdown 문법 사용을 권장하며, DokuWiki 문법은 필요시 선택적으로 사용할 수 있습니다.

개요

마크다운 모드 활성화

마크다운 문법을 사용하려면 문서 상단에 다음 선언을 추가해야 합니다:

<!DOCTYPE markdown>

이 선언이 없으면 문서는 DokuWiki 문법으로 처리됩니다.

<note tip>편집 팁: 편집 탭 오른쪽에서 3번째 버튼을 누르면 <!DOCTYPE markdown> 선언을 손쉽게 추가할 수 있습니다.</note>

서식 도구모음 버튼

편집 화면 오른쪽 도구모음에서 다음 버튼들을 활용할 수 있습니다:

위치 기능
오른쪽 1번째 Indexmenu 탭
오른쪽 2번째 Markdown 서식 (밑줄, 이탈릭, 코드, 취소선)
오른쪽 3번째 <!DOCTYPE markdown> 선언 추가
오른쪽 4번째 Wrap 플러그인
오른쪽 5번째 Note 플러그인
오른쪽 6번째 페이지 삽입/인용

Markdown 문법 (권장)

<!DOCTYPE markdown> 선언 후 사용 가능한 CommonMark 0.30 기반 문법입니다.

제목 (Headings)

제목은 # 기호를 사용하여 표현합니다. 1단계부터 3단계까지 사용 가능합니다.

문법:

<!DOCTYPE markdown>
# 1단계 제목 (가장 큼)
## 2단계 제목
### 3단계 제목

렌더링 결과:

  • # → 큰 제목 (h1에 해당)
  • ## → 중간 제목 (h2에 해당)
  • ### → 작은 제목 (h3에 해당)

텍스트 서식

<note tip>편집 팁: 오른쪽에서 2번째 버튼을 누르면 Markdown 문법의 밑줄, 이탈릭, 코드, 취소선 형식을 쉽게 적용할 수 있습니다.</note>

강조 (Emphasis)

문법:

<!DOCTYPE markdown>
*이탤릭 텍스트* 또는 _이탤릭 텍스트_
**굵은 텍스트** 또는 __굵은 텍스트__
***굵은 이탤릭*** 또는 ___굵은 이탤릭___

설명:

  • 별표 1개 또는 밑줄 1개로 감싸면 기울임꼴
  • 별표 2개 또는 밑줄 2개로 감싸면 굵은 글씨
  • 별표 3개 또는 밑줄 3개로 감싸면 굵은 기울임꼴

취소선 (Strikethrough)

문법:

<!DOCTYPE markdown>
~~취소할 텍스트~~

설명: 물결표(~) 2개로 감싸면 텍스트에 취소선이 적용됩니다.

인라인 코드 (Inline Code)

문법:

<!DOCTYPE markdown>
`코드 또는 명령어`

설명: 역따옴표(backtick)로 감싸면 인라인 코드 형식이 적용됩니다. 변수명, 함수명, 파일명 등을 강조할 때 유용합니다.

단락과 줄바꿈

단락 구분

문법:

<!DOCTYPE markdown>
첫 번째 단락입니다.

두 번째 단락입니다. 빈 줄이 단락을 구분합니다.

설명: 빈 줄 하나로 단락을 구분합니다.

강제 줄바꿈

문법:

<!DOCTYPE markdown>
첫 번째 줄  
두 번째 줄 (줄 끝에 공백 2개)

설명: 줄 끝에 공백을 2개 이상 넣으면 같은 단락 내에서 줄바꿈이 됩니다.

목록 (Lists)

순서 없는 목록 (Unordered List)

문법:

<!DOCTYPE markdown>
- 첫 번째 항목
- 두 번째 항목
  - 중첩 항목 (공백 2개로 들여쓰기)
  - 또 다른 중첩 항목
- 세 번째 항목

또는

* 첫 번째 항목
* 두 번째 항목
+ 첫 번째 항목 (플러스 기호도 가능)

설명: 하이픈(-), 별표(*), 플러스(+) 중 하나를 사용합니다. 들여쓰기로 중첩 목록을 만듭니다.

순서 있는 목록 (Ordered List)

문법:

<!DOCTYPE markdown>
1. 첫 번째 항목
2. 두 번째 항목
3. 세 번째 항목
   1. 중첩된 순서 항목
   2. 또 다른 중첩 항목

설명: 숫자와 마침표로 시작합니다. 실제 숫자 값은 중요하지 않으며, 렌더링 시 자동으로 번호가 매겨집니다.

인라인 링크

문법:

<!DOCTYPE markdown>
[링크 텍스트](https://example.com)
[제목 있는 링크](https://example.com "마우스 올리면 표시될 제목")

설명: 대괄호 안에 텍스트, 소괄호 안에 URL을 넣습니다.

자동 링크

문법:

<!DOCTYPE markdown>
<https://example.com>
<user@example.com>

설명: 꺾쇠괄호로 감싸면 URL이나 이메일이 자동으로 링크됩니다.

참조 링크

문법:

<!DOCTYPE markdown>
[링크 텍스트][참조id]

[참조id]: https://example.com "선택적 제목"

설명: 긴 URL을 문서 하단에 모아두고 참조 ID로 연결할 때 유용합니다.

이미지 (Images)

문법:

<!DOCTYPE markdown>
![대체 텍스트](이미지URL)
![대체 텍스트](이미지URL "이미지 제목")

설명: 링크 문법 앞에 느낌표(!)를 추가합니다. 대체 텍스트는 이미지가 표시되지 않을 때 나타납니다.

인용문 (Blockquotes)

문법:

<!DOCTYPE markdown>
> 이것은 인용문입니다.
> 여러 줄에 걸쳐 작성할 수 있습니다.

> 중첩 인용도 가능합니다.
>> 이중 인용
>>> 삼중 인용

설명: 줄 시작에 > 기호를 넣습니다. 중첩하려면 >를 여러 개 사용합니다.

인용문 내 다른 요소:

<!DOCTYPE markdown>
> ## 인용문 안의 제목
> 
> - 인용문 안의 목록
> - 두 번째 항목
>
> **굵은 텍스트**도 사용 가능

코드 블록 (Code Blocks)

펜스형 코드 블록 (Fenced Code Block)

문법:

<!DOCTYPE markdown>
```
일반 코드 블록
여러 줄 작성 가능
```

```python
# 언어 지정 시 구문 강조 적용
def hello():
    print("Hello, World!")
```

```javascript
// JavaScript 예시
function greet(name) {
    return `Hello, ${name}!`;
}
```

설명: 역따옴표 3개로 감싸고, 시작 부분에 언어명을 지정하면 구문 강조가 적용됩니다.

들여쓰기 코드 블록

문법:

<!DOCTYPE markdown>
일반 텍스트

    4칸 들여쓰기된 텍스트는
    코드 블록으로 처리됩니다

설명: 4칸 공백으로 들여쓰기하면 코드 블록이 됩니다.

테이블 (Tables)

문법:

<!DOCTYPE markdown>
| 헤더 1 | 헤더 2 | 헤더 3 |
|--------|:------:|-------:|
| 기본 정렬 | 가운데 정렬 | 오른쪽 정렬 |
| 내용 | 내용 | 내용 |
| 셀 1 | 셀 2 | 셀 3 |

정렬 옵션:

  • |——–| → 기본 (왼쪽) 정렬
  • |:——:| → 가운데 정렬 (양쪽 콜론)
  • |——-:| → 오른쪽 정렬 (오른쪽 콜론)
  • |:——-| → 왼쪽 정렬 (왼쪽 콜론)

수평선 (Horizontal Rules)

문법:

<!DOCTYPE markdown>
---

***

___

설명: 하이픈, 별표, 밑줄을 3개 이상 연속으로 입력합니다.

이스케이프 (Escaping)

마크다운 특수 문자를 그대로 표시하려면 백슬래시(\)를 앞에 붙입니다.

문법:

<!DOCTYPE markdown>
\*별표를 그대로 표시\*
\# 샵 기호를 그대로 표시
\[대괄호 그대로\]

이스케이프 가능한 문자:

\ ` * _ { } [ ] ( ) # + - . !

각주 (Footnotes)

문법:

<!DOCTYPE markdown>
여기에 각주가 있습니다[^1].

또 다른 각주[^note]도 있습니다.

[^1]: 첫 번째 각주 내용입니다.
[^note]: 이름이 붙은 각주 내용입니다.

설명: [^식별자]로 각주를 표시하고, 문서 어디서든 [^식별자]:로 내용을 정의합니다.

DokuWiki 문법 (선택 사항)

마크다운 선언(<!DOCTYPE markdown>)을 사용하지 않으면 DokuWiki 문법이 적용됩니다. DokuWiki 문법은 마크다운 문법과 함께 사용할 수 없으며, 둘 중 하나를 선택해야 합니다.

기본 텍스트 서식

**굵은 텍스트**
//기울임 텍스트//
__밑줄 텍스트__
''고정폭 텍스트''
<del>취소선</del>
<sub>아래첨자</sub>
<sup>위첨자</sup>

제목

DokuWiki에서는 등호(=)의 개수로 제목 수준을 나타냅니다:

====== 1단계 제목 ======
===== 2단계 제목 =====
==== 3단계 제목 ====
=== 4단계 제목 ===
== 5단계 제목 ==

링크

[[페이지이름]]
[[페이지이름|표시할 텍스트]]
[[네임스페이스:페이지]]
[[https://example.com|외부 링크]]
[[페이지이름#섹션이름|섹션으로 링크]]

목록

  * 순서 없는 목록 (공백 2칸 + 별표)
    * 중첩 항목 (공백 4칸)
  - 순서 있는 목록 (공백 2칸 + 하이픈)
    - 중첩 항목

테이블

^ 헤더 1 ^ 헤더 2 ^ 헤더 3 ^
| 내용 1 | 내용 2 | 내용 3 |
| 내용 4 | 내용 5 | 내용 6 |

인용 기능

다른 사람의 글을 인용하는 방법에는 직접인용간접인용 두 가지가 있습니다. 인용된 글은 백링크로 추적이 가능하며, 많이 인용된 글은 검색이나 목록에서 상단에 노출됩니다.

직접인용 (Include 플러그인)

다른 페이지의 내용을 현재 페이지에 직접 삽입합니다.

<note tip>편집 팁: 인용하려는 문서의 각 섹션 제목(Heading) 옆에 있는 링크 버튼을 오른쪽 마우스로 클릭하여 주소를 복사한 뒤, 오른쪽에서 6번째 버튼을 누른 후, 나타난 팝업 창에 붙여넣기하면 직접인용할 수 있습니다.</note>

문법:

{{page>페이지ID}}
{{section>페이지ID#섹션이름}}
{{namespace>네임스페이스}}

옵션:

{{page>페이지ID&noheader}}        noheader: 제목 숨기기
{{page>페이지ID&nofooter}}        nofooter: 푸터 숨기기
{{page>페이지ID&firstseconly}}    firstseconly: 첫 섹션만 표시
{{page>페이지ID&inline}}          inline: 인라인으로 삽입
{{page>페이지ID&link}}            link: 제목을 링크로 표시

사용 예시:

{{section>:syntax#직접인용_(Include_플러그인)&nofooter}}
{{section>:syntax#간접인용_(내부_링크)}}

이와 같이, 여러 섹션을 동시에 인용하고 싶은 경우에는 마지막을 제외하고 nofooter 옵션을 추가하여 보기 좋게 만들 수 있습니다.

간접인용 (내부 링크)

다른 페이지로 연결되는 링크를 생성합니다.

<note tip>편집 팁: 각 섹션 제목 옆의 링크 버튼을 오른쪽 마우스로 눌러 섹션 주소를 복사하면 정확한 섹션으로 링크를 만들 수 있습니다.</note>

문법:

[[페이지ID]]
[[페이지ID#섹션이름]]
[[페이지ID#섹션이름|표시할 텍스트]]

사용 예시:

자세한 내용은 [[참고자료:마크다운가이드#기본문법|마크다운 기본 문법]]을 참조하세요.

인용과 백링크

  • 직접인용과 간접인용 모두 백링크로 추적됩니다
  • 페이지 상단의 “역링크” 기능으로 해당 페이지를 인용한 모든 문서를 확인할 수 있습니다
  • 많이 인용된 글일수록 높은 점수를 받을 수 있습니다

Indexmenu 플러그인

위키의 네임스페이스와 페이지 구조를 트리 형태로 표시합니다.

<note tip>편집 팁: 오른쪽에서 1번째 버튼을 누르면 Indexmenu 탭을 이용할 수 있습니다.</note>

기본 문법

{{indexmenu>네임스페이스}}
{{indexmenu>네임스페이스#레벨}}
{{indexmenu>네임스페이스|옵션}}

네임스페이스 지정

표기 설명
{{indexmenu>.}} 현재 네임스페이스
{{indexmenu>:}} 루트 네임스페이스
{{indexmenu>:wiki}} 특정 네임스페이스 (wiki)
{{indexmenu>..}} 상위 네임스페이스

레벨 제한

{{indexmenu>.#1}}      현재 레벨만 표시
{{indexmenu>.#2}}      2레벨까지 표시
{{indexmenu>.#3}}      3레벨까지 표시

옵션

옵션 설명
js JavaScript 트리 메뉴 사용
js#테마명 특정 테마 적용 (예: js#thread)
navbar 현재 페이지 위치 자동 열기
nocookie 트리 상태 저장 안 함
nons 네임스페이스 제외 (페이지만 표시)
nopg 페이지 제외 (네임스페이스만 표시)
tsort 제목순 정렬
dsort 날짜순 정렬
nsort 네임스페이스도 정렬에 포함
rsort 역순 정렬
notoc 목차 미리보기 비활성화
nomenu 컨텍스트 메뉴 비활성화
max#숫자 AJAX로 하위 레벨 로드

사용 예시

기본 사이드바용 메뉴:

{{indexmenu>.#1|js navbar nocookie}}

제목순 정렬된 전체 트리:

{{indexmenu>:|js tsort navbar}}

특정 네임스페이스의 페이지만:

{{indexmenu>:프로젝트#2|nons}}

테마와 AJAX 적용:

{{indexmenu>:#1|js#thread navbar max#3}}

정렬 순서 커스텀

특정 페이지의 정렬 순서를 지정하려면 해당 페이지에 다음 태그를 삽입합니다:

{{indexmenu_n>숫자}}

그리고 indexmenu에서 msort 옵션을 사용합니다:

{{indexmenu>:#1|js msort navbar}}

Folded 플러그인

클릭하면 펼쳐지는 접힌 콘텐츠를 만듭니다.

인라인 방식 (span)

문장 내에서 일부 텍스트를 숨기고 클릭하면 펼쳐지게 합니다.

문법:

++제목|숨겨진 내용++

사용 예시:

이것은 예시 텍스트입니다. ++더 보기|숨겨진 추가 정보가 여기에 표시됩니다.++ 그리고 계속됩니다.

출력:

이것은 예시 텍스트입니다. 더 보기 그리고 계속됩니다.

블록 방식 (div)

단락, 테이블, 목록 등 큰 영역을 접습니다.

문법:

++++제목|
숨겨진 내용입니다.
여러 줄이 될 수 있습니다.
테이블이나 목록도 포함 가능합니다.
++++

사용 예시:

++++상세 설명 보기|
다음은 추가 설명입니다:

  * 첫 번째 항목
  * 두 번째 항목
  * 세 번째 항목

| 헤더1 | 헤더2 |
| 내용1 | 내용2 |
++++

출력:

상세 설명 보기

차이점 비교

구분 인라인 (++) 블록 (++++)
HTML 태그 <span> <div>
서식 포함 가능 가능
블록 요소 불가 가능 (테이블, 목록 등)
사용 위치 문단, 테이블, 목록 내부 독립적인 블록으로

중첩 사용

Wrap 플러그인과 함께 사용하면 중첩된 접힌 영역을 만들 수 있습니다:

++++외부 접기|
외부 내용입니다.
<WRAP>
++++내부 접기|
내부 내용입니다.
++++
</WRAP>
++++

Note 플러그인

강조 메모나 경고 박스를 생성합니다.

<note tip>편집 팁: 오른쪽에서 5번째 버튼을 누르면 Note 플러그인 문법을 쉽게 삽입할 수 있습니다.</note>

기본 문법

<note>기본 메모입니다.</note>
<note tip>팁이나 유용한 정보입니다.</note>
<note important>중요한 정보입니다.</note>
<note warning>경고 메시지입니다.</note>

노트 유형

유형 용도 색상
<note> 일반 정보 파랑
<note tip> 팁, 유용한 정보 노랑
<note important> 중요한 내용 주황
<note warning> 경고, 위험 빨강

사용 예시

<note>
이것은 일반적인 정보를 담은 노트입니다.
여러 줄로 작성할 수 있습니다.
</note>

<note tip>
**팁:** 마크다운 선언을 잊지 마세요!
문서 상단에 ''<!DOCTYPE markdown>''을 추가하세요.
</note>

<note important>
**중요:** 변경사항을 저장하기 전에 미리보기를 확인하세요.
</note>

<note warning>
**주의:** 이 작업은 되돌릴 수 없습니다!
</note>

Wrap 플러그인

컨테이너를 생성하여 콘텐츠를 정렬하고 스타일을 적용합니다.

<note tip>편집 팁: 오른쪽에서 4번째 버튼을 누르면 Wrap 플러그인 도구를 사용할 수 있습니다.</note>

기본 문법

블록 컨테이너 (div):

<WRAP 클래스 너비>
내용
</WRAP>

인라인 컨테이너 (span):

<wrap 클래스>내용</wrap>

정렬 클래스

클래스 설명
left 왼쪽 정렬 (float)
right 오른쪽 정렬 (float)
center 가운데 정렬
leftalign 텍스트 왼쪽 정렬
rightalign 텍스트 오른쪽 정렬
centeralign 텍스트 가운데 정렬
justify 텍스트 양쪽 정렬

박스 클래스

클래스 설명
box 기본 박스
info 정보 박스 (파랑)
tip 팁 박스 (노랑)
important 중요 박스 (주황)
alert 경고 박스 (빨강)
help 도움말 박스 (보라)
todo 할 일 박스 (청록)
download 다운로드 박스 (초록)
round 둥근 모서리

레이아웃 클래스

클래스 설명
column 컬럼 레이아웃용
half 50% 너비
third 33% 너비
twothirds 66% 너비
quarter 25% 너비
col2 ~ col5 다중 컬럼
group 컬럼 그룹 컨테이너

기타 클래스

클래스 설명
clear float 초기화
hide 화면에서 숨김
noprint 인쇄 시 숨김
onlyprint 인쇄 시에만 표시
pagebreak 인쇄 시 페이지 나눔
indent 들여쓰기
outdent 내어쓰기
hi 하이라이트
lo 덜 중요한 텍스트
em 강조
spoiler 스포일러 (호버 시 표시)
button 버튼 스타일 링크

사용 예시

정보 박스:

<WRAP info>
이것은 정보 박스입니다.
</WRAP>

가운데 정렬된 60% 박스:

<WRAP center 60% box>
내용이 여기에 들어갑니다.
</WRAP>

2단 레이아웃:

<WRAP group>
<WRAP half column>
왼쪽 컬럼 내용
</WRAP>

<WRAP half column>
오른쪽 컬럼 내용
</WRAP>
</WRAP>

둥근 모서리 팁 박스:

<WRAP tip round>
유용한 팁 내용
</WRAP>

인라인 하이라이트:

이 문장에서 <wrap hi>이 부분</wrap>이 강조됩니다.

버튼 스타일 링크:

<wrap button>[[페이지명|버튼 텍스트]]</wrap>

언어 방향 지정

<WRAP :en>English content here.</WRAP>
<WRAP :ko>한국어 내용입니다.</WRAP>
<WRAP :ar>محتوى عربي</WRAP>

RefNotes 플러그인

DokuWiki 기본 각주보다 확장된 참조 및 인용 기능을 제공합니다.

기본 참조 문법

텍스트[(참조 내용입니다.)]

렌더링: 텍스트 뒤에 숫자 링크가 표시되고, 페이지 하단에 참조 내용이 나타납니다.

동일 참조 재사용

번호로 참조:

첫 번째 언급[(참조 내용)]입니다.
두 번째 언급[(#1)]입니다.

이름으로 참조:

첫 번째 언급[(myref>참조 내용)]입니다.
두 번째 언급[(myref)]입니다.

네임스페이스 분리

다른 종류의 참조를 분리합니다:

본문[(cite:>출처 정보)]에서 인용합니다.
각주[(footnote:>일반 각주)]도 있습니다.

구조화된 참조

[(BookRef>>
title    : 책 제목
authors  : 저자 이름
publisher: 출판사
published: 2024
pages    : 100-150
)]

위에서 정의한 참조: [(BookRef)]

참조 블록 위치 지정

기본적으로 페이지 하단에 표시되지만 위치를 지정할 수 있습니다:

~~REFNOTES~~                   루트 네임스페이스 참조 표시
~~REFNOTES cite~~              cite 네임스페이스 참조 표시
~~REFNOTES cite 10~~           10개만 표시

스타일 정의

<refnotes>
refnote-id     : a
reference-format: []
note-id-format : []
note-id-base   : text
</refnotes>

숨겨진 참조

줄 시작에 참조를 두면 숨겨집니다 (본문에 표시 안 됨):

| 기능 A | 예[(a)] |
| 기능 B | 아니오 |

[(a>A 기능의 세부 조건)]

실용적인 사용 예시

완성된 마크다운 문서 예시

<!DOCTYPE markdown>
# 프로젝트 개요

## 소개

이 프로젝트는 **중요한 목표**를 달성하기 위해 시작되었습니다.
자세한 내용은 아래를 참조하세요.

## 주요 기능

1. 첫 번째 기능
   - 세부 사항 A
   - 세부 사항 B
2. 두 번째 기능
3. 세 번째 기능

## 코드 예시

```python
def hello():
    print("Hello, World!")
```

## 참고 자료

| 자료 | 설명 |
|------|------|
| 문서 A | 기본 안내서 |
| 문서 B | 고급 가이드 |

> 인용문: 이 프로젝트는 지속적으로 개선됩니다.

---

*마지막 수정: 2024년*

플러그인 조합 예시

<WRAP info round>
**안내:** 아래 섹션은 접혀 있습니다. 클릭하여 펼치세요.
</WRAP>

++++상세 정보|
<note tip>
이 내용은 Folded와 Note 플러그인을 함께 사용한 예시입니다.
</note>

{{page>참고자료:가이드#설치방법&noheader}}
++++

<WRAP group>
<WRAP half column>
=== 왼쪽 컬럼 ===
내용...
</WRAP>

<WRAP half column>
=== 오른쪽 컬럼 ===
내용...
</WRAP>
</WRAP>

문법 빠른 참조표

Markdown (<!DOCTYPE markdown> 선언 후)

요소 문법
제목 # 제목 / ## 제목 / ### 제목
굵게 텍스트
기울임 *텍스트*
취소선 ~~텍스트~~
인라인 코드 `텍스트`
링크 [텍스트](URL)
이미지 ![대체텍스트](URL)
인용 > 인용문
순서없는 목록 - 항목
순서있는 목록 1. 항목
코드 블록 ``` 코드 ```
테이블 | 헤더 | 내용 |
수평선

플러그인 문법

플러그인 문법
Indexmenu {{indexmenu>네임스페이스|옵션}}
Folded (인라인) ++제목|내용++
Folded (블록) ++++제목|내용++++
Note <note 유형>내용</note>
Wrap (블록) <WRAP 클래스>내용</WRAP>
Wrap (인라인) <wrap 클래스>내용</wrap>
Include {{page>페이지ID}} 또는 {{section>페이지ID#섹션_제목}}
RefNotes [(참조 내용)]

마무리

  • 마크다운 사용을 권장합니다 - 문서 상단에 <!DOCTYPE markdown> 선언을 추가하세요
  • 마크다운을 사용하면 DokuWiki 문법을 사용할 수 없습니다 (둘 중 하나 선택)
  • 인용 기능은 백링크로 추적되며, 많이 인용된 글은 상단에 노출됩니다
  • 편집 도구모음의 버튼들을 적극 활용하세요