                옵션)))
 
 (deftest 분석테스트
+
+  (testing "각주"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "[각주링크]: http://test.com")
+      [:문서 [:각주링크 [:참조이름 "각" "주" "링" "크"]
+              [:각주주소 "h" "t" "t" "p" ":" "/" "/" "t" "e" "s" "t" "." "c" "o" "m"]]]
+
+      (분석 "[각주링크]: http://test.com?test=t#123   \"링크 설명\"")
+      [:문서 [:각주링크
+              [:참조이름 "각" "주" "링" "크"]
+              [:각주주소 "h" "t" "t" "p" ":" "/" "/" "t" "e" "s" "t" "." "c" "o" "m" "?" "t" "e" "s" "t" "=" "t" "#" "1" "2" "3"]
+              [:링크타이틀 "링" "크" " " "설" "명"]]]))
+
+  (testing "소스코드"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "``` clojure\n(def a 1)\n```")
+      [:문서 [:소스코드
+              [:소스언어 "c" "l" "o" "j" "u" "r" "e"]
+              [:코드내용 "(" "d" "e" "f" " " "a" " " "1" ")" "\n"]]]
+
+      (분석 "```\n(def a 1)\n```")
+      [:문서 [:소스코드 [:코드내용 "(" "d" "e" "f" " " "a" " " "1" ")" "\n"]]]
+
+      (분석 "```clojure\n(def a 1)\n```\n그리고\n\n```\n한번더\n```")
+      [:문서
+       [:소스코드 [:소스언어 "c" "l" "o" "j" "u" "r" "e"]
+        [:코드내용 "(" "d" "e" "f" " " "a" " " "1" ")" "\n"]]
+       [:문단 "그" "리" "고"]
+       [:소스코드 [:코드내용 "한" "번" "더" "\n"]]]))
+
+  (testing "원문"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "    원문 텍스트는 줄넘김\n    문자도 유지")
+      [:문서 [:원문 "원" "문" " " "텍" "스" "트" "는" " "
+              "줄" "넘" "김" "\n" "문" "자" "도" " " "유" "지" "\n"]]
+
+      (분석 "    원문 텍스트는 *강조*처리 제외")
+      [:문서 [:원문 "원" "문" " " "텍" "스" "트" "는" " "
+              "*" "강" "조" "*" "처" "리" " " "제" "외" "\n"]]))
+
+  (testing "인용"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "> 짜라투스트라는 *이렇게* 말했다")
+      [:문서 [:인용 "짜" "라" "투" "스" "트" "라" "는" " "
+              [:기울임 "이" "렇" "게"] " " "말" "했" "다"]]
+
+      (분석 "> 한줄\n> 두줄\n평문")
+      [:문서 [:인용 "한" "줄" "두" "줄"] [:문단 "평" "문"]]
+
+      (분석 "> 첫줄\n>\n> 다음")
+      [:문서 [:인용 "첫" "줄" [:빈줄] "다" "음"]]
+      ))
+
+  (testing "목록"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "* 일반목록")
+      [:문서 [:일반목록 [:항목 "일" "반" "목" "록"]]]
+
+      (분석 "* 첫번째\n* 두번째")
+      [:문서 [:일반목록 [:항목 "첫" "번" "째"] [:항목 "두" "번" "째"]]]
+
+      (분석 "* *강조*한거\n* [링크](/12)건 거\n")
+      [:문서 [:일반목록
+              [:항목 [:기울임 "강" "조"] "한" "거"]
+              [:항목 [:일반링크 [:텍스트 "링" "크"] [:주소 "/" "1" "2"]] "건" " " "거"]]]
+
+      (분석 "1. 첫번째\n2. 두번째\n")
+      [:문서 [:숫자목록 [:항목 "첫" "번" "째"] [:항목 "두" "번" "째"]]]
+      ))
+
+  (testing "제목"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "# 큰제목")
+      [:문서 [:큰제목 "큰" "제" "목"]]
+
+      (분석 "# 큰제목 ####")
+      [:문서 [:큰제목 "큰" "제" "목"]]
+
+      (분석 "## 작은제목")
+      [:문서 [:작은제목 "작" "은" "제" "목"]]
+
+      (분석 "## 작은제목 #")
+      [:문서 [:작은제목 "작" "은" "제" "목"]]
+
+      (분석 "# **강조**제목\n다음")
+      [:문서 [:큰제목 [:굵게 "강" "조"] "제" "목"] [:문단 "다" "음"]]
+      ))
+
+  (testing "링크"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "[링크](주소)를 걸어보자")
+      [:문서 [:문단 [:일반링크 [:텍스트 "링" "크"] [:주소 "주" "소"]] "를" " " "걸" "어" "보" "자"]]
+
+      (분석 "[*강조*링크](주소)걸기")
+      [:문서 [:문단 [:일반링크 [:텍스트 [:기울임 "강" "조"] "링" "크"] [:주소 "주" "소"]] "걸" "기"]]
+
+      (분석 "[[링크]](주소)걸기")
+      [:문서 [:문단 [:일반링크 [:텍스트 "[" "링" "크" "]"] [:주소 "주" "소"]] "걸" "기"]]
+
+      (분석 "<http://자동.com/> 테스트>")
+      [:문서 [:문단 [:자동링크 "h" "t" "t" "p" "://" "자" "동" "." "c" "o" "m" "/"]
+              " " "테" "스" "트" ">"]]
+
+      (분석 "[참조 링크][1]")
+      [:문서 [:문단 [:참조링크 [:텍스트 "참" "조" " " "링" "크"] [:참조이름 "1"]]]]
+
+      (분석 "[참조 링크][]")
+      [:문서 [:문단 [:참조링크 [:참조이름 "참" "조" " " "링" "크"]]]]
+
+      (분석 "[참조 링크] [1]")
+      (분석 "[참조 링크][1]")))
+
+  (testing "문단"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "")
+      [:문서 [:문단]]
+
+      (분석 "문장 하나\n문장 둘.\n\n")
+      [:문서 [:문단 "문" "장" " " "하" "나" "문" "장" " " "둘" "."]]
+
+      (분석 "문단 하나\n\n문단 둘.\n")
+      [:문서 [:문단 "문" "단" " " "하" "나"] [:문단 "문" "단" " " "둘" "."]]))
+
+  (testing "강조"
+    (are [시도 결과] (= 시도 결과)
+      (분석 "*이탤릭* 시작")
+      [:문서 [:문단 [:기울임 "이" "탤" "릭"] " " "시" "작"]]
+
+      (분석 "_이탤릭_으로 시작")
+      [:문서 [:문단 [:기울임 "이" "탤" "릭"] "으" "로" " " "시" "작"]]
+
+      (분석 "**굵게*강조** *이탤릭*한 문장")
+      [:문서 [:문단 [:굵게 "굵" "게" "*" "강" "조"] " " [:기울임 "이" "탤" "릭"] "한" " " "문" "장"]]
+
+      (분석 "이렇게 __굵게_강조__한 문장")
+      [:문서 [:문단 "이" "렇" "게" " " [:굵게 "굵" "게" "_" "강" "조"] "한" " " "문" "장"]]
+
+      (분석 "이렇게 `코드` 인용한 문장")
+      [:문서 [:문단 "이" "렇" "게" " " [:코드 "코" "드"] " " "인" "용" "한" " " "문" "장"]]
+
+      (분석 "이렇게 ``a`b`` 인용한 문장")
+      [:문서 [:문단 "이" "렇" "게" " " [:코드 "a" "`" "b"] " " "인" "용" "한" " " "문" "장"]]))
+
   (testing "문서전체"
     (is (= (분석
-"# 큰제목
+            "# 큰제목
 ## 작은제목
 첫문단
 

    소스코드     := <\"```\" 공백*> (<LF> 코드내용 / 소스언어 <LF> 코드내용) <\"```\" LF LF?>
    소스언어     := ANY+
    코드내용     := (ANY+ LF)*

    (* 링크 *)
    <링크들>     := 일반링크 / 자동링크 / 참조링크


(def 파서
  (insta/parser
   "문서         := (제목 / 목록 / 인용 / 원문 / 소스코드 / 각주 / 문단)+
    꾸밈         := 제목 / 목록 / 소스코드

    (* 제목 *)
