최근 수정 시각 : 2024-12-07 19:06:44

마크다운

markdown에서 넘어옴
1. 개요2. 문법
2.1. 문단 제목2.2. 문단2.3. 목록2.4. 글자 모양2.5. 코드2.6. 인용문2.7. 링크2.8. 그림 넣기2.9. 가로줄
3. 마크다운을 사용하는 곳4. 마크다운 변형판
4.1. Github-Flavored Markdown4.2. MultiMarkdown4.3. Haroopad Flavored Markdown
5. 관련 문서

1. 개요


마크다운 (Markdown)은 마크업 언어의 일종으로, 존 그루버(John Gruber)[1]와 아론 스워츠(Aaron Swartz)[2]가 만들었다. 온갖 태그로 범벅된 HTML 문서 등과 달리, 읽기도 쓰기도 쉬운 문서 양식을 지향한다. 그루버는 마크다운으로 작성한 문서를 HTML로 변환하는 Perl 스크립트도 만들었다.[3] 흔히 볼 수 있는 문서(파일명)은 'README.md', 파일의 확장자는 .md 또는 .markdown을 쓴다.[4]

2. 문법

여기서 언급하는 '위키 문법'은 나무마크가 기준입니다.

2.1. 문단 제목

위키 문법의 == 개요 ==에 대응하는 문법이다. 6단계까지 할 수 있다.
#!syntax markdown
# 1단계 제목
## 2단계 제목

또는 다음과 같이 쓸 수도 있다.
#!syntax markdown
1단계 제목
=======
2단계 제목
------

2.2. 문단

줄 바꿈을 두 번 하면 된다.
#!syntax markdown
첫째 문단입니다. 문장이 두 개죠.

둘째 문단입니다. 저도
문장이 두 개입니다.

마크다운은 기본적으로 강제 개행을 인식하지 않기 때문에, 두 번째 예시를 HTML 등으로 변환할 경우 줄 바꿈이 없는 '둘째 문단입니다. 저도 문장이 두 개입니다.'로 변환된다. 강제 개행을 인식하게 하려면 줄 끝에 공백을 두 칸 넣거나(가독성 문제로 권장되지 않음), 아니면 줄 끝에 역슬래시(\\)를 넣어도 된다.

2.3. 목록

위키 문법과 같으나 첫 번째 칸을 띄어 쓰지 않아도 된다.
#!syntax markdown
* 목록 하나
* 목록 두울
* 목록 세엣
- 이렇게 써도
- 된답니다.

순서가 있는 목록은 다음과 같이 쓴다. 숫자는 반드시 맞춰 쓸 필요는 없다. 어차피 마크다운 기본 문법에서는 각 행이 HTML의 <li> 태그로 변환되는 것일 뿐이라 번호 정보가 사라지기 때문.
#!syntax markdown
1. 첫째입니다.
2. 둘째입니다.
3. 셋째입니다.
5. 넷째입니다. 다섯째 아닙니다.
6. 이게 다섯째입니다.
4. 이건 여섯째.

2.4. 글자 모양

굵은 글자는 다음과 같이 쓴다. 위키 문법 '''굵게'''에 대응하는 문법이다.
#!syntax markdown
**굵게** 쓰거나 __두껍게__ 쓰거나

결과: 굵게 쓰거나 두껍게 쓰거나

기울임 꼴 글자는 다음과 같이 쓴다. 위키 문법 ''기울게''에 대응하는 문법이다.
#!syntax markdown
*기울게* 쓰면서 _기울게_ 쓴다

결과: 기울게 쓰면서 기울게 쓴다

2.5. 코드

(특히 프로그래밍 관련 문서에서) 코드를 입력할 필요가 있을 땐 다음과 같이 쓴다. 고정 폭 글꼴로 출력되며 위키 문법 {{{ code }}}에 대응하는 문법이다.

문장 중간에 표시할 땐 다음과 같이 쓴다.[5]
#!syntax markdown
예를 들어 `import antigravity` 이렇게요.

여러 줄의 코드는 다음과 같이 줄 첫 부분을 공백 4칸 이상 띄어서 쓴다.[6]
#!syntax markdown
다음은 Clojure의 예시 코드다.
clojure
    #!/usr/bin/env clojure
    (println "Hello, World!")

2.6. 인용문

줄 첫 번째마다 >를 쓰면 된다. 위키 문법에도 동일하게 쓴다.
#!syntax markdown
>> 빛이 있으라.
> 하니 빛이 있었다.

결과:
빛이 있으라.
하니 빛이 있었다.

2.7. 링크

링크는 다음과 같이 쓴다. 위키 문법에 대응하는 문법이다.
#!syntax markdown
[나무위키](https://namu.wiki/w/나무위키:대문)

또는 다음과 같이 써서 주석 형태로 링크를 쓸 수 있다.
#!syntax markdown
출처는 [위키백과][wiki]입니다.

[wiki]: http://en.wikipedia.org/wiki/Markdown#Syntax_examples "위키백과 Markdown 항목"

2.8. 그림 넣기

그림을 넣을 땐 다음과 같이 쓴다.
#!syntax markdown
![세피로트](https://cdn.namu.wiki/r/http%3A%2F%2Fi.imgur.com%2F2megHz2.png "툴팁 메시지. 이 부분은 생략해도 됩니다.")

또는 다음과 같이 써서 주석 형태로 그림을 넣을 수 있다.
#!syntax markdown
![세피로트][SD]

[SD]: https://cdn.namu.wiki/r/http%3A%2F%2Fi.imgur.com%2F2megHz2.png "툴팁 메시지. 이 부분은 생략해도 됩니다."
"세피로트" 부분은 HTML img 태그의 alt 속성에, "툴팁 메시지" 부분은 title 속성에 해당한다.

2.9. 가로줄

가로줄을 넣는 문법은 여러 가지가 있다. 위키 문법의 ---- 에 대응하는 문법이다.
#!syntax markdown
* * *
***
*****
- - -
------------

3. 마크다운을 사용하는 곳

4. 마크다운 변형판

4.1. Github-Flavored Markdown

Github-Flavored Markdown
GitHub, 디스코드에서 쓰이며 다음과 같은 차이점이 있다.
  • 취소선을 쓸 수 있다.[9] (~~취소선~~)
  • 표를 만들 수 있다.
  • do_this_and_do_that과 같은 형태의 단어를 기울임 꼴 글자로 처리하지 않는다.
  • URL을 자동으로 링크로 변환해 준다.
  • 코드를 입력할 때 ``` 로 감싸주는 문법이 추가되었다.
  • 여러 줄의 코드는 다음과 같이 쓴다.[10]
    {{{#!syntax markdown
```Python
print('hello world')
```
}}}
  • 문법 강조가 적용이 된다. Linguist를 이용하여 처리한다.
  • 작업 목록(Task lists) 문법이 추가되었다.
  • Git관련 링크를 자동으로 처리해 준다. (SHA, 사용자, 이슈 등)

4.2. MultiMarkdown

MultiMarkdown
기존 마크다운에 없는 기능(주석, 표 등)이 추가되어 있다.

4.3. Haroopad Flavored Markdown

하루패드에서 쓰이며 다음과 같은 차이점이 있다.
  • 강조 문법이 추가되었다. 사용 방법은 == 강조 == 처럼 쓰면 된다. 어디서 본 것 같은데
  • 목차 기능이 추가되었다. 사용 방법은 [TOC]처럼 쓰면 된다.
  • @[](http://www.youtube.com/watch?v=jo_B4LTHi3I) 처럼 유튜브 영상 등을 추가할 수 있다.
  • 다이어그램 기능이 추가되었다.

5. 관련 문서



[1] 유명한 애플 관련 블로거 아마 제일 유명한 애플빠Daring Fireball의 운영자다.[2] 레딧의 공동 설립자이자 RSS를 고안하고 정보 자유를 중점적으로 주장한 인터넷 활동가이자 프로그래머. 게릴라 오픈 액세스 매니페스토 선언에서 천명한 것처럼 재판 기록 같은 각종 공공 정보를 무료로 대중에게 공개해야 한다는 신념으로 활동하던 중 유료 저널 검색 엔진 및 저장소인 JSTOR의 논문들을 다운받아 공개하려 한 건으로 FBI 수사로 기소되어 재판 과정 중에 자살로 생을 마감했다.[3] 다만 요즘에는 범용성이 높은 pandoc을 더 많이 쓰는 듯.[4] 대표 사례로 깃허브의 README.md가 있다. 확장자로서는 .md가 .markdown보다 압도적으로 많이 쓰인다.[5] 파이썬이스터 에그 중 하나. 웹 브라우저xkcd의 만화 PYTHON을 띄운다.[6] 첫 줄의 설명 '다음은 ... 코드다.'는 물론 마크다운 문법상 필요하지 않다. 다만 위키 문법의 한계인지 첫 줄 들여쓰기가 제대로 표시되지 않아, 들여쓰기 없는 한 줄이 부득이 예시에 추가되었다.[7] 설치형 블로그에서 지원하는 경향이 있다.[8] 협업 스타일의 노트, 일정 앱에서 활용된다.[9] 쉽게 간과되는 사실인데, 취소선 기능은 순수 마크다운 문법이 아니다.[10] 파이썬의 간단한 코드