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. 마크다운을 사용하는 곳
- 프로그래밍 / Git 저장소
- GitHub: 마크다운을 변형한 Github-Flavored Markdown을 쓴다.
- Stack Overflow
- 위키
- 블로그[7]
- 기타 이슈 트래커[8]
- 네이버 밴드: 마크다운 문서를 첨부할 수 있는 기능이 있다.
- Discord: 마크다운 문법을 일부 사용하고 있다.
- Ghost
- Jupyter Notebook
- Steemit
- Tumblr
- zeta
- 뤼튼: 캐릭터챗에서 사용할수 있다
4. 마크다운 변형판
4.1. Github-Flavored Markdown
Github-Flavored MarkdownGitHub, 디스코드에서 쓰이며 다음과 같은 차이점이 있다.
- 취소선을 쓸 수 있다.[9] (
~~취소선~~
) - 표를 만들 수 있다.
- do_this_and_do_that과 같은 형태의 단어를 기울임꼴 글자로 처리하지 않는다.
- URL을 자동으로 링크로 변환해준다.
- 코드를 입력할 때
```
로 감싸주는 문법이 추가되었다. - 여러 줄의 코드는 다음과 같이 쓴다.[10]
{{{#!syntax markdown
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] 파이썬의 간단한 코드