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]๋ฅผ ๋ฌธ๋‹จ์•ž์— ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๋ฌธ๋‹จ์€ ์—”ํ„ฐ(์ค„๋ฐ”๊ฟˆ)ํ‚ค๊ฐ€ ๊ทธ๋Œ€๋กœ ์ธ์‹๋˜์–ด ์ ์šฉ๋œ๋‹ค.

๊ฒฝ๊ณ 

๊ธ€์ž ๊ฐ•์กฐ (Text formating)

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
. list1

start๋‚˜ 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

์ด๋ฏธ์ง€

![์ด๋ฏธ์ง€ ์ œ๋ชฉ](link)   //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