๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋‚˜์˜ ๋ชจ์–‘

058 | Asciidocs, Asciidoctor ๋ณธ๋ฌธ

SEB/TIL

058 | Asciidocs, Asciidoctor

kexon 2022. 9. 15. 22:49

๐ŸŽˆ Asciidoc

Asciidoc์€ Spring Rest Docs๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋˜๋Š” ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ฌธ์„œ๋กœ, ๊ธฐ์ˆ  ๋ฌธ์„œ ์ž‘์„ฑ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋งˆํฌ๋‹ค์šด ์–ธ์–ด์ด๋‹ค. 

 

๐Ÿงฉ ๋ชฉ์ฐจ

= ๋ฌธ์„œ ์ œ๋ชฉ
:sectnum:
:toc: left
:toclevels: 1~6
:toc-title: ํƒ€์ดํ‹€
:source-highlighter: prettify
  • = ๋ฌธ์„œ ์ œ๋ชฉ: Ascii ๋ฌธ๋ฒ•์œผ๋กœ ๋ชฉ์ฐจ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.
  • :sectnum:: ๊ฐ ์„น์…˜์— ๋„˜๋ฒ„๋ง์„ ํ•œ๋‹ค.
  • :toc: left: ๋ฌธ์„œ์˜ ๋ชฉ์ฐจ๋ฅผ ์–ด๋””์— ๊ตฌ์„ฑํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•œ๋‹ค. left๋Š” ๋ชฉ์ฐจ๋ฅผ ์™ผ์ชฝ์œผ๋กœ ํ•œ๋‹ค.
  • :toclevels: 3: ๋ชฉ์ฐจ์— ํ‘œ์‹œํ•  ๊ฐ ์„น์…˜์˜ ์ œ๋ชฉ์˜ level(HTML๊ธฐ์ค€ h1~h6)์„ ์ •ํ•œ๋‹ค. 3์œผ๋กœ ์ง€์ •ํ• ์‹œ === ๊นŒ์ง€์˜ ์ œ๋ชฉ์„ ๋ชฉ์ฐจ์— ํฌํ•จ์‹œํ‚จ๋‹ค.
  • :toc-title: ํƒ€์ดํ‹€: ๋ชฉ์ฐจ์˜ ์ œ๋ชฉ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • source-highlighter: prettify: ์†Œ์Šค์ฝ”๋“œ ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ์ง€์ •ํ•œ๋‹ค.

๐Ÿงฉ ๋ฐ•์Šค ๋ฌธ๋‹จ

***
๋ฌธ๋‹จ ์ œ๋ชฉ

  ๋ฌธ๋‹จ์˜ ๋‚ด์šฉ์ด๋‹ค. Spring MVC ๊ธฐ๋ฐ˜์˜ REST API ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋‹ค.
CAUTION: ๊ฒฝ๊ณ ๋ฌธ๊ตฌ ๊ธฐ์žฌ

***
  • ***: ๋‹จ๋ฝ์„ ๊ตฌ๋ถ„์ง“๋Š” ์ˆ˜ํ‰์„ ์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
  • : ๋ฌธ๋‹จ ์ œ๋ชฉ ๋‹ค์Œ ํ•œ ์ค„ ๋„์šฐ๊ณ  ํ•œ ์นธ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•˜๋ฉด ๋ฐ•์Šค ๋ฌธ๋‹จ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • CAUTION: ๊ฒฝ๊ณ ๋ฌธ๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. NOTE:, TIP:, IMPORTANT:, WARNING: ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐ŸŽˆ Asciidoctor

Spring Rest Docs์—์„œ Asciidoc ํฌ๋งท์˜ ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•ด์„œ HTML 5, ๋งค๋‰ด์–ผ ํŽ˜์ด์ง€, PDF ๋ฐ EPUB 3 ๋“ฑ์˜ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•œ ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํˆด์ด๋‹ค.

 

๐Ÿงฉ ๋ฌธ์„œ ์Šค๋‹ˆํ•

Spring Rest Docs ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ์ „๋ถ€ ํ†ต๊ณผํ•˜๋ฉด build/generated-snippets/idenntifier ๋””๋ ‰ํ† ๋ฆฌ์— .adoc ์Šค๋‹ˆํ• ๋ฌธ์„œ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

Gradle์—์„œ task > build๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Asciidoctor๊ฐ€ ๊ฐ๊ฐ์˜ ์Šคํ”ผ๋‹› ๋ฌธ์„œ๋“ค์„ ๋ชจ์•„ index.adoc → index.html, ํ•˜๋‚˜์˜ html ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ ํ›„ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ(src/main/resources/static/docs)์— ์ €์žฅํ•ด์ค€๋‹ค.

  • index.adoc์— ์Šคํ”ผ๋‹› ํฌํ•จํ•˜๊ธฐ
.snippet1
include::{snippets}/identifier/snippet1.adoc[]

.snippet2
include::{snippets}/identifier/snippet2.adoc[]
  • .snippet: ์Šค๋‹ˆํ• ์ œ๋ชฉ ํ‘œํ˜„
  • include::{snippets}/identifier/snippet.adoc[]
    • include: Asciidoctor์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋งคํฌ๋กœ๋กœ, ์Šค๋‹ˆํ•์„ ๋ฌธ์„œ์— ํฌํ•จํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
    • ::: ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • {snippets}: ํ•ด๋‹น ์Šค๋‹ˆํ•์ด ์ƒ์„ฑ๋˜๋Š” ๋””ํดํŠธ ๊ฒฝ๋กœ์ด๋ฉฐ build.gradle์— ์„ค์ •ํ•œ snippersDir ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ… Ref.

https://docs.spring.io/spring-restdocs/docs/current/reference/html5/#working-with-asciidoctor

 

Spring REST Docs

Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test, WebTestClient, or REST Assured.

docs.spring.io

https://docs.asciidoctor.org/asciidoc/latest/toc/

 

AsciiDoc - Automatic Table of Contents

A documentation page for AsciiDoc.

docs.asciidoctor.org

 

'SEB > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

067 | Spring Security - OAuth 2.0 Authentication  (0) 2022.09.28
061 | ์ธ์ฆ๋ณด์•ˆ ๊ธฐ์ดˆ  (0) 2022.09.20
057 | API Documentation, Swagger, SpringRest  (0) 2022.09.14
052 | Transaction  (0) 2022.09.05
046 | Spring Data JDBC  (0) 2022.08.26
Comments