asciidoctor
Asciidoc
์ด ๋ฌธ์๋ฅผ ์์ฑํ๊ณ  ์๋ Mark down๋ฌธ๋ฒ๊ณผ ๋น์ทํ๊ฒ ๋ฌธ์ ์์ฑ์ ์ํ ๊ฒฝ๋ ๋งํฌ์
 ์ธ์ด์ด๋ค.
Spring Rest Docs๋ฅผ ๋ณด๋ค ์ ์ํํ๊ธฐ ์ํด Asciidoc๋ฌธ๋ฒ์ ๊ณต๋ถํ๊ณ  ๋จ๊ฒจ๋๊ธฐ ์ํด ์์ฑํ๊ฒ ๋์๋ค.
Mark Down๋ฌธ๋ฒ์ ์ต์ํด์ ธ ์๊ธฐ ๋๋ฌธ์ ๋ณด๋ค ์ฌ์ด ์ต๋์ ์ํด Mark Down๊ณผ ๋น๊ตํ๋ฉฐ ์์ฑ์ ํ๋ค.
๋ฌธ๋ฒ
์ ๋ชฉ
MD์ ๋ค๋ฅด๊ฒ ์ ๋ชฉ์ 3๊ฐ์ง ๋ถ๋ฅ๊ฐ ์กด์ฌํ๋ค.
๋ฌธ์ ์ ๋ชฉ
= ์ผ๋ก ์์ํ์ฌ ๋ฌธ์ ์ ๋ชฉ๊ณผ ๋ฌธ์์ ๊ด๋ จ๋ ๋ด์ฉ๋ค (์ ์, ๋ ์ง, ๋ฒ์  ๋ฑ)์ ํ์๊ฐ ๊ฐ๋ฅํ๋ค.
= ๋ฌธ์์ ๋ชฉ
Doc Writer <๋ฌธ์ ์์ฑ์>
v1.0, 2021-01-01
According to https://asciidoctor.org/ ...๊ธฐ๋ณธ ๋ฌธ์ ํ์
์ article๋ก book์ผ ๊ฒฝ์ฐ์๋ ๋ ๋ฒจ 0์ ๋ฌธ์ ์ ๋ชฉ์ ํ๊ฐ๋ง ์กด์ฌ๊ฐ๋ฅํ๋ค.
๋ฌธ์ ์์ฑ (:word:)
MD์๋ ์๋ ๊ธฐ๋ฅ์ผ๋ก ์ผ์ข
์ ์ ์ญ๋ณ์์ ๊ฐ์ด ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ด๋ค.
:var: 10
variable is {var} //variable is 10์ผ๋ก ์ถ๋ ฅ
:var!:!์ ์ฌ์ฉํด ์์ฑ์ ํด์ ๋ ๊ฐ๋ฅํ๋ค.
:imagesdir:
:iconsdir:
:stylesdir:
:scriptsdir:์์ ๊ฐ์ ์์ฑ์ ์ด์ฉํด ํ์ผ์ ๊ธฐ๋ณธ ๊ฒฝ๋ก๊ฐ๋ ์์ ์ด ๊ฐ๋ฅํ๋ค.
์น์
 ์ ๋ชฉ (=)
MD์ #์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋ค.
= ๋ฌธ์ ์ ๋ชฉ level0
== level1
=== level2
==== level3
===== level4
====== level5
์ค๋ฐ๊ฟ (+)
Asciidoc๋ MD์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฌธ๋จ์ ๊ณต๋ฐฑ์ ํ ์ค๋ก ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ ๊ณต๋ฐฑ์ด ์๋ค๋ฉด ํ ๋ฌธ๋จ์ผ๋ก ์ด์ด์ ์ถ๋ ฅ์ด ๋๋ค.
๊ฐ์ ๋ฌธ๋จ ์์์ ์ค๋ฐ๊ฟ์ ํ๊ณ  ์ถ์๋ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก MD์ <br>๊ณผ ๊ฐ๋ค.
[%hardbreaks]๋ฅผ ๋ฌธ๋จ์์ ์ฌ์ฉํ๋ฉด ํด๋น ๋ฌธ๋จ์ ์ํฐ(์ค๋ฐ๊ฟ)ํค๊ฐ ๊ทธ๋๋ก ์ธ์๋์ด ์ ์ฉ๋๋ค.
๊ฒฝ๊ณ 
NOTE
์ฐธ๊ณ
TIP
ํ
IMPORTANT
์ค์
CAUTION
์ฃผ์
WARNING
๊ฒฝ๊ณ
๊ธ์ ๊ฐ์กฐ (Text formating)
`(`)
์ธ๋ผ์ธ ์ฝ๋
*(*)
๊ฐ์กฐ
_(_)
Italic
MarkDown์์๋ ์ธ๋ผ์ธ ์ฝ๋๋ `word` , ๊ฐ์กฐ๋ **word **, Italic์ *word * ์ด๋ _word _์ผ๋ก ํน์๊ธฐํธ์ ๊ฐ์์ ๋ฐ๋ผ ๊ธฐ๋ฅ์ด ๋ฌ๋ผ์ก์ง๋ง Asciidoc์ ๊ฐ์๋ ์๊ด์์ด ์ข
๋ฅ์๋ฐ๋ผ ๊ธฐ๋ฅ์ด ๊ตฌ๋ถ๋๋ค.
๋ธ๋ญ
์ฝ๋ ๋ธ๋ญ
MD ์ **``` code ```**์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋ ๊ฒ์ผ๋ก Asciidoc์์๋ ---- code ---- ์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋๋ค.
[source]๋ธ๋ญ์ ์ฌ์ฉํด์ ์ฝ๋๋ฅผ ๊ฐ์กฐํ  ์๋ ์๋ค.
MardDown
    ```js
    console.log("Hello")
    ```
Asciidoc
    [source,javascript,linenums]
    ----
    console.log("Hello")
    ----
    [source,java]
    ----
    include::helloworld.java[]
    ----linenums์ต์
์ ํตํด ์ค ๋ฒํธ๋ ํ์๊ฐ ๊ฐ๋ฅํ๊ณ  ์ธ๋ถ ์์ค์ฝ๋ include๊ฐ ๊ฐ๋ฅํ๋ค
์ธ์ฉ๋ฌธ (์ธ์ฉ ๋ธ๋ญ)
MD์ >์ ๊ฐ์ ๊ธฐ๋ฅ์ผ๋ก __ ์ธ์ฉ ๋ฌธ __์ ๊ฐ์ด ์ฌ์ฉํ  ์ ์๋ค.
ํ (Table)
MD๋ณด๋ค๋ ํ๋ ์กฐ๊ธ๋ ๊ฐํธํ๊ฒ ์์ฑ์ด ๊ฐ๋ฅํ ๊ฒ ๊ฐ๋ค.
|===์ผ๋ก ํ์ ์์๊ณผ ๋ ๋ธ๋ญ์ ํ์ํ๊ณ  ๊ฐ ์ปฌ๋ผ์ |์ ์ด์ฉํ๋ค.
[%header,cols=2*,]
|===
|col1 |col2 |col3
|data1
|date2
|data3
|===
[%header,cols="3,4,5"]
|===
|col1 |col2 |col3
|data1
|date2
|data3
|===์์ ๊ฐ์ด header์ต์
์ผ๋ก ํค๋๋ฅผ ํํํ  ์ ์๊ณ  col์ต์
์ผ๋ก col ๋๋น๋ฅผ ์กฐ์ ์ด ๊ฐ๋ฅํ๋ค.
[%header,format=csv]
|===
data1, data2, data3
data4, data5, data6
|===
[%header,format=csv]
|===
include::example.csv[]
|===๋ํ, csv์์ ํ๋ฅผ ๋ง๋ค์ด๋ผ ์๋ ์๊ณ ์ธ๋ถ csvํ์ผ์ ์ฝ์ด์ ํํ๋ ๊ฐ๋ฅํ๋ค.
Asciidoc์ Markdown๊ณผ ๋ค๋ฅธ ๊ฐ์ฅ ํฐ ์ฅ์ ์ด ์ด include์ธ ๊ฒ ๊ฐ๋ค.
์์์๋ ๋ฆฌ์คํธ
* ์ด๋ MD์ ๊ฐ์ด -์ ์ฌ์ฉํ์ฌ ํ์ํ์ง๋ง ๋ค๋ฅธ ์ ์ ๋ฆฌ์คํธ ๊น์ด๋ฅผ ํ์ํ  ๋ MD๋ TAB์ผ๋ก ๊ตฌ๋ถํ์๋ค๋ฉด Aciidoc์ ํน์๊ธฐํธ๋ฅผ ์ฌ๋ฌ๋ฒ ์์ฑํด์ฃผ๋ฉด ๋๋ค.
- 1
-- 2
--- 3
---- 4
----- 5์ค์ฒฉ์ 5๊ฐ๊น์ง ํํ์ด ๊ฐ๋ฅํ๋ค.
๋ฆฌ์คํธ์ ์ ๋ชฉ ํํ
MD์๋ ์๋ ๊ธฐ๋ฅ์ธ๋ฐ list์ ์์ .์ ์ฌ์ฉํ๋ฉด ๋ฆฌ์คํธ์ ์ ๋ชฉ์ ์์ฑ์ด ๊ฐ๋ฅํ๊ณ  .title๊ณผ ๊ฐ์ด .์ดํ์ ๊ณต๋ฐฑ์ด ์์ด์ผํ๋ค.
.title
- list1
- list2
์์์๋ ๋ฆฌ์คํธ
MD๋ 1. ์ผ๋ก ํต์ผํด๋ ์์์ ์์๊ฐ ์๋ ์ฆ๊ฐ๊ฐ ๋์ง๋ง Asciidoc์ ์์๋ฅผ ๋ง๊ฒ ์
๋ ฅํด ์ฃผ์ด์ผ ํ๊ณ  ์๋์ฆ๊ฐ๋ฅผ ํ๊ณ  ์ถ๋ค๋ฉด . ์ผ๋ก ์์ํ๋ฉด ์๋ ์ฆ๊ฐ๊ฐ ๋๋ค.
1. list1
2. list2
. list1
. list2
4. list4
5. list5
[start=4]
. list4
. list5
[%reversed]
. list2
. list1start๋ reversed๋ฅผ ํตํด ์์ ๋ฒํธ๋ฅผ ์ค์ ํ๊ฑฐ๋ ์ญ์์ผ๋ก ์์ฑ๋ ๊ฐ๋ฅํ๋ค.
[arabic]
. 1     // 1.
. 2     // 2.
[loweralpha]
. 1     // a.
. 2     // b.
[lowerroman]
. 1     // i.
. 2     // ii.
[upperalpha]
. 1     // A.
. 2     // B.
[upperroman]
. 1     // I.
. 2     // II.์์ ๊ฐ์ด ๊ธฐ๋ณธ์ arabic์ผ๋ก ์ซ์๊ฐ ํ์๋๋ฉฐ ์ถ๊ฐ ์์ฑ์ ์ง์ ํ์ฌ ์ํ๋ฒณ์ด๋ ๋ก๋ง์๋ก ํํ์ด ๊ฐ๋ฅํ๋ค.
์ด๋ฆ์๋ ๋ฆฌ์คํธ
MD์๋ ์๋ ๊ธฐ๋ฅ์ผ๋ก ::์ ์ด์ฉํ๋ฉด ๋ฆฌ์คํธ ๊ตฌ๋ถ์ ์ด๋ฆ์ผ๋ก ๋์  ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
:: ์ดํ์ ์ค๋ ๊ตฌ๋ฌธ์ ์ค๋ช
๋ฌธ์ผ๋ก ๋ฆฌ์คํธ ์ค๋ฅธ์ชฝ์ ์ค๋ ๊ฒ์ด ์๋ ๋ค์ ์ค์ ์์นํ๊ฒ ๋๋ค.
horizontal option์ผ๋ก ๋ค์ ์ค์ด ์๋ ์ค๋ฅธ์ชฝ์ ์์นํ๊ฒ ํ  ์๋ ์๋ค.
list1:: This is list1
list2:: This is list2
[horizontal]
list1:: This is list1
list2:: This is list2
๋ชฉ๋ก๋ด์์์ ์ฌ๋ฌ ๋ฌธ๋จ ์์ฑ
MD์์๋ ๋ฆฌ์คํธ์์ ์ฌ๋ฌ ๋ฌธ๋จ์ ํ์ํ๊ธฐ ์ํด์๋ enter๋ก ๊ตฌ๋ถํ๊ณ  ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํ๋จ๊ณ ๋ ๊น๊ฒ ํ๊ฑฐ๋
๋ก ๊ตฌ๋ถํ์๋ ๋ฐ `Asciidoc
[MD]
- list1 : ์ฒซ๋ฒ์งธ ๋ฌธ์ฅ<br>๋๋ฒ์งธ ๋ฌธ์ฅ
    ์๋ก์ด ๋ฌธ๋จ ์์
[Asciidoc]
- list1 : ์ฒซ๋ฒ์งธ ๋ฌธ์ฅ
+
์๋ก์ด ๋ฌธ๋จ
+
--
์คํ ๋ธ๋ญ ์์ ๊ตฌ๊ฐ์ผ๋ก  (-- --)์์ ๊ตฌ๊ฐ์ ๋ฌธ๋จ๊ฐ์ ๊ณต๋ฐฑ์ ๋๋ฉด ์๋์ผ๋ก ๊ณต๋ฐฑ์ด ์์ฑ
--
๋งํฌ
URL์ MD์ ๊ฐ์ด ์๋์ผ๋ก ์ธ์์ด ๋๊ณ  ์ด๋ฅผ ๋ง๊ณ ์ ํ๋ฉด URL์์ \์ ๋ถ์ฌ ์ฃผ๋ฉด๋๋ค.
:hide-uri-scheme:
https://gowoonsori.site:hide-uri-scheme:์ต์
์ ์ฃผ๋ฉด https:// ์ ๊ฐ์ ์คํค๋ง๋ ์ ๊ฑฐ๋๊ณ  ๋ณด์ฌ์ง๋ค.
ํน์  ๋จ์ด์ URL์ ๊ฑธ๋๋ MD๋ [word](url)์ ์ฌ์ฉํ์ง๋ง Asciidoc์ link:url[word]๋ฅผ ์ฌ์ฉํ๋ค.
[๋ธ๋ก๊ทธ](https://gowoonsori.site)  //md
link:https://gowoonsori.site[๋ธ๋ก๊ทธ]  //asciidoc
์ด๋ฏธ์ง
   //md
[link=url]
image::์ด๋ฏธ์ง ์ด๋ฆ[์ด๋ฏธ์ง์ ๋ชฉ] //asciidoc
[#img-id]
.์ด๋ฏธ์ง ์ ๋ชฉ
[link=์ด๋ฏธ์ง ๋งํฌ]
image::์ด๋ฏธ์ง ์ด๋ฆ.jpg[์ด๋ฏธ์ง ์ ๋ชฉ,width,height]MD์๋ ๋ค๋ฅด๊ฒ Asciidoc์ link๊ฐ ์๋๋ผ ํ์ผ์ ๊ฒฝ๋ก๋ก ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํ๊ณ ์ ํ๋ค๋ฉด :imagesdir:์ ์ด์ฉํด์ผ ํ๋ค.
asciidoc์ ์ด๋ฏธ์ง ํ์ผ ๊ธฐ๋ณธ ๊ฒฝ๋ก๊ฐ ํด๋น ํด๋๋ก ๋์ด ์๊ธฐ ๋๋ฌธ์ :imagesdir:์ ์ด์ฉํด ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ฃผ์ด์ผ ๋ค๋ฅธ ํด๋์ ์ด๋ฏธ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
๋๋ ์ด๋ฏธ์ง ์ด๋ฆ์ ํ์ผ๊ฒฝ๋ก์ ๊ฐ์ด ํํ์ ํ๋ฉด๋๋ค.
:imagesdir: ../java/image
image::array1.PNG[array]
or
image::../java/image/array1.PNG[]
include
MD์ ๋นํด ์๋ฑํ ์ข์ ๊ธฐ๋ฅ์ผ๋ก ์ธ๋ถ ํ์ผ์ ๊ฐ์ ธ์ ๋ณด์ฌ์ค ์ ์๋ ํค์๋๋ก ์ธ๋ถ ๋ฌธ์๋ ์์ค์ฝ๋๋ฅผ ์ฒจ๋ถ๊ฐ ๊ฐ๋ฅํ๋ค.
include::git.md[]
[source,java]
----
include::hello.java[]
----
include::../java/jvm.md[]  ////์๋๊ฒฝ๋ก ์ด์ฉํ ์ธ๋ถํ์ผ include
Reference
https://asciidoctor.org/docs/asciidoc-writers-guide/
https://docs.asciidoctor.org/asciidoctor/latest/syntax-highlighting/highlightjs/
Last updated