| ๊ฐ์ | DiscoTOC๋ ํ ๋ง์ ๋ํด ๋ฒํผ ํ ๋ฒ์ผ๋ก ๋ชฉ์ฐจ(TOC)๋ฅผ ์์ฑํ ์ ์๋๋ก ํด์ค๋๋ค. | |
| ๋ฏธ๋ฆฌ๋ณด๊ธฐ | Beginner's guide to using Discourse Themes (๋งํฌ๋ ์ ํญ์์ ๋ฐฉ๋ฌธํด์ฃผ์ธ์) | |
| ์ ์ฅ์ ๋งํฌ | https://github.com/discourse/DiscoTOC | |
| Discourse ํ ๋ง์ ๋ํด ์ ๋ชจ๋ฅด์๋์? | ๊ณต์ ์น์ฌ์ดํธ์์ Discourse ํ ๋ง ์ฌ์ฉ ์ด๋ณด ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ธ์. |
์์
๋ฐ์คํฌํฑ
๋ชจ๋ฐ์ผ
๊ธฐ๋ฅ
toc = table of contents (๋ชฉ์ฐจ)
- ๋ฉ๋ด ์๋จ์ ์ค์ ๋ฒํผ์ ํตํด ํ์ฌ ์ฝํ ์ธ ์ํ์ ๋ง์ถฐ ๋ฒํผ ํ ๋ฒ์ผ๋ก TOC ๋ชฉ๋ก์ ์์ฑํฉ๋๋ค.
- TOC๋ ํ์ด์ง์ ํญ์ ํ์๋ฉ๋๋ค. ์ฝํ ์ธ ์คํฌ๋กค๊ณผ ํ ํฝ ๋ด ๋งํฌ๊ฐ ๋๊ธฐํ๋ฉ๋๋ค.
- ํ์ฌ ํ์ด์ง์ ์น์ ์ ์คํฌ๋กคํ ๋, ํด๋น ์น์ ์ TOC ํญ๋ชฉ์ด ํ์ด๋ผ์ดํธ(์ด๋ก์)๋ก ํ์๋ฉ๋๋ค.
- ์ ๋ชฉ์ ์์ฑ์ ์ถ๊ฐํ ์ ์์ต๋๋ค(๋ค๋ฅธ ํ ํฝ/ํฌ์คํธ์์ ํน์ ์ฝํ ์ธ ๋ก ๋งํฌํ ์ ์์).
- TOC์ ์น์ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ณธ๋ฌธ ์ฝํ ์ธ ์ ํด๋น ์์น๋ก ์ด๋ํฉ๋๋ค(์คํฌ๋กค ๋๊ธฐํ).
- ๊ฐ ์ ๋ชฉ์ ๋ณต์ฌ ๊ฐ๋ฅํ ๋งํฌ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค(์ํ๋ ๊ฒฝ์ฐ์๋ง).
- RTL(์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ฝ๋ ์ธ์ด) ์ง์
- ํ์ฌ ์ฌ์ฉ ์ค์ธ ์์ ํ ๋ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์์ ์คํด ์ ์ฉ
์๋ ์๋ฆฌ
๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌ ์ฝํ ์ธ ์ ์ ๋ชฉ์ TOC๋ก ํ์๋ฉ๋๋ค(composer ๋ฒํผ์ผ๋ก ์ด ์์ ์ ์ํํฉ๋๋ค). ๋ํ ํ์ฌ ํ ํฝ์ด ํด๋น ํ๊ทธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ์ด๋ ์ ๋ชฉ์ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ฐ๋ผ TOC๋ก ๋ณํ๋ฉ๋๋ค. ๋ชจ๋ ์ฝํ ์ธ ์ ๋ชฉ์ TOC๋ก ๋ณํ๋์ด์ผ ํ๋ฏ๋ก MD ํ์ผ์ ์ ๋ชฉ ์ค์ ์ด ์ ํํด์ผ ํ๋ฉฐ, ์ ๋ชฉ ๊ณ์ธต ์ค์ ์ ์ค๋ฅ๊ฐ ์์ผ๋ฉด ๋ณํ ๊ฒฐ๊ณผ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
# heading 1
## heading 2
### heading 3
#### heading 4
##### heading 5
###### heading 6
๊ณ์ธต ๊ตฌ์กฐ๋ ์์ ๋กญ๊ฒ ์กฐ์ ํ ์ ์์ง๋ง, ๊ณ์ธต์ ์ ํ์ฑ์ ๋ฐ๋์ ์ ์งํด์ผ ํฉ๋๋ค.
# heading 2
## heading 3
## heading 3
### heading 4
## heading 3
# heading 2
etc...
๋งํฌ๊ฐ ์ ์์ ์ผ๋ก ์๋ํ๋ ค๋ฉด ๋ชจ๋ ์ ๋ชฉ์๋ Id ์์ฑ์ด ํ์ํฉ๋๋ค.
์ด ์ปดํฌ๋ํธ๋ ์ ๋ชฉ์ Id๋ฅผ ์๋์ผ๋ก ๊ฒ์ฆํฉ๋๋ค. Id๊ฐ ์กด์ฌํ๋ฉด ์ปดํฌ๋ํธ๊ฐ ๋ ํจ์จ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ๋ํ Id๋ ์๋์ผ๋ก ํ ํฝ์ ์์ฑํ ๋์๋ ์ ์ฉํฉ๋๋ค.
์ ๋ชฉ์ Id๊ฐ ์๋ค๋ฉด, ์ด ์ปดํฌ๋ํธ๋ ์ ๋ชฉ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก Id๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค(๋ถํ์ํ ๋ฌธ์๋ ์๋์ผ๋ก ๋ฌด์๋ฉ๋๋ค).
์์ ๋ชจ๋ ์์ ์ด ์๋ฃ๋๋ฉด, TOC๋ ์ ๋ชฉ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณธ๋ฌธ์ผ๋ก ์ฐ๊ฒฐ๋๋ ๋งํฌ๋ฅผ ์์ฑํฉ๋๋ค. ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ต๋๋ค:
![]()
์ค์
์ด ์ปดํฌ๋ํธ๋ TOC ์์ด์ฝ(์ด ์ด๋ฏธ์ง๋ ํ์ ์ค์ ์์ ์ฌ์ฉ๋๋ฉฐ, ๊ณต์์ ์ผ๋ก ์ด ์์ด์ฝ์ ์์ ํ๋ ๊ฒ์ ๊ถ์ฅ๋์ง ์์)์ ๋ํ ์ค์ ๋ง ํ๋ ์์ต๋๋ค.
๋ฒ์ญ ๋ฐ ํ์งํ
์ด ์ปดํฌ๋ํธ๋ ๋ฒ์ญ์ด ํ์ํ ๋ด์ฉ์ด ๋งค์ฐ ์ ์ผ๋ฉฐ, ์๋ 3๊ฐ ํ๋๋ง ๋ฒ์ญํ๋ฉด ๋ฉ๋๋ค.
table_of_contents: "table of contents (๋ชฉ์ฐจ)"
์ด๊ฒ์ ๋ชจ๋ฐ์ผ์์ TOC๋ฅผ ์ด ๋ ํ์๋ฉ๋๋ค.
insert_table_of_contents: "Insert table of contents (๋ชฉ์ฐจ ์ฝ์
)"
์ด๊ฒ์ ๋ชฉ์ฐจ๊ฐ ํ ํฝ ํ์ด์ง์ ์ฝ์ ๋ ๋ ํ์๋ฉ๋๋ค.
topic_will_contain_a_table_of_contents: "This topic will contain a table of contents (์ด ํ ํฝ์๋ ๋ชฉ์ฐจ๊ฐ ํฌํจ๋ฉ๋๋ค)"
์ด ๋ด์ฉ์ ํ ํฝ ๋ด์ฉ์ ํธ์งํ ๋, ์ค๋ฅธ์ชฝ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์์ญ์ ํ์๋ฉ๋๋ค.
์ ๋ชฉ ์์ฑ ๋ฐฉ๋ฒ
- ์ฝํ ์ธ ์ ์ ๋ชฉ์ ์์ฑํ ๋ ์ฌ๋ฐ๋ฅธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ํ์ด์ง์ ๋ฉ๋ด ์ต์ ์ ํด๋ฆญํฉ๋๋ค(์ด ์ต์ ์ ์ผ๋ฐ ํ ํฝ๊ณผ ํฌ์คํธ์์๋ง ํ์๋๋ฉฐ, ๋ต๋ณ์ด๋ ๊ฐ์ธ ๋ฉ์์ง๋ ํด๋น๋์ง ์์ต๋๋ค).
- ํ ํฝ ํ์ด์ง์ ์ฝ์ ํฉ๋๋ค.
TOC ์ฌ์ฉ ์ ์ฝ๊ธฐ ์งํ๋ฅ ์์ ฏ์ ์ด๋ป๊ฒ ๋๋๊ฐ
ํ์ด์ง์์ ์ฝ๊ธฐ ์งํ๋ฅ ๊ณผ TOC๋ฅผ ๋์์ ํ์ํ ์ ์๋ค๋ ๊ฒ์ ์์ค ์ ์์ต๋๋ค.
๊ณต์ ์๋ฃจ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ํฌ์คํธ๋ฅผ ์ฝ๋ ๋์ TOC๊ฐ ์กด์ฌํ๋ฉด, ํ์ด์ง์๋ TOC๋ง ํ์๋๊ณ ์ฝ๊ธฐ ์งํ๋ฅ ์์ ฏ์ ํ์๋์ง ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ํฌ์คํธ๋ฅผ ๋์ด ์ฝ์ ๋, TOC๋ ํ์๋์ง ์๊ณ ๋์ ์ ์ฒด ์ฝํ ์ธ ์ ์ฝ๊ธฐ ์งํ๋ฅ ํ์์ค์ด ํ์๋ฉ๋๋ค.
๊ฐ๋จํ ๋งํด, TOC๋ ์ฒซ ๋ฒ์งธ ํฌ์คํธ์๋ง ์ ์ฉ๋๋ฉฐ, ์ดํ ํฌ์คํธ์๋ ์ฝ๊ธฐ ์งํ๋ฅ ํ์์ค์ด ์ฌ์ฉ๋ฉ๋๋ค.
๋ชจ๋ฐ์ผ๊ณผ ๋ฐ์คํฌํฑ ์ฑ์ ํ์ ๋ฐฉ์์ ๋์ผํฉ๋๋ค.
์ด ์ปดํฌ๋ํธ ์ฌ์ฉ ์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์
์์ฑ์ ๋ฐ ๊ณต์ ๋ฐํ์ ๋ฐ๋ฅด๋ฉด, ์ด ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด์ ํ์ฌ๊น์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์์ต๋๋ค.
๋ชจ๋ ์ฝํ ์ธ ํ์๋ ํด๋ผ์ด์ธํธ ์ธก์์ ์ํ๋ฉ๋๋ค(์ ๋ฌธ ์ฉ์ด๋ก ํํํ๋ฉด ํ๋ก ํธ์๋์์ ์ฒ๋ฆฌ๋จ). ๋ฐ๋ผ์ ๋ฐฑ์๋ ๋ฐ์ดํฐ ์ ๊ณต์๋ ์๋ฌด๋ฐ ์ํฅ์ด ์์ต๋๋ค.
์ด ์ปดํฌ๋ํธ๋ฅผ ๋นํ์ฑํํ๋ฉด ๋ชจ๋ ์ฝํ ์ธ ๊ฐ ์๋ ์ํ๋ก ๋ณต์๋ฉ๋๋ค.
์ฌ์ฉ ์ ํ
์ด ์ปดํฌ๋ํธ๋ ํ์ค ํ ๋ง ๋ ์ด์์์ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ฉ ์ค์ธ ๋ ์ด์์์ด ์ ๋ชฉ ์ฌ์ฉ๋ฒ์ ์์ ํ ๊ฒฝ์ฐ, ์ด TOC ์ปดํฌ๋ํธ๋ ์ ์์ ์ผ๋ก ์๋ํ์ง ์์ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, Vincent ํ ๋ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ์ปดํฌ๋ํธ๋ ์ ์์ ์ผ๋ก ์๋ํ์ง ์๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ต๋๋ค.
์ธ๊ธฐ ์๋ ํ ๋ง์ ๋ํ ์ง์์ ์ด ๊ณต์ ํ๋ฌ๊ทธ์ธ์ ๋ค์ ๊ณ ๋ ค ์ฌํญ์ ๋๋ค.
๊ฐ๋ฐ์
๊ณต์ ์์ฑ์๋ Greg Franko์ tocify.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐํ์ต๋๋ค.
ํ์ง๋ง ์ํ๊น๊ฒ๋ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ค๋ซ๋์ ์ ๋ฐ์ดํธ๋์ง ์์, ์์ฑ์๋ ๋ถํ์ํ ๋ด์ฉ๊ณผ ๊ธฐ๋ฅ์ด ์๊ฑฐ๋ ์ฝ๋ ์ค ๋ถํ์ํ ๋ถ๋ถ์ ์ ๊ฑฐํ๊ณ ๊ด๋ จ ๊ธฐ๋ฅ์ Discourse์ ํตํฉํ์ต๋๋ค.
์ ์ฒด ์ปดํฌ๋ํธ์ ํฌ๊ธฐ๋ ์ฝ 4kb์ ๋๋ค(gzip ์์ถ ๊ธฐ์ค).
์์ฑ์๋ @erlend_sh ๋์ ํ๋ฅญํ ์กฐ์ธ๊ณผ @david ๋์ ๋ฒ์ญ ์์ ์ ๊ฐ์ฌ์ ๋ป์ ์ ํฉ๋๋ค.
๊ฐ์ ์ฌํญ(TODO)
- ํธ์ง ์ TOC๋ฅผ ์ค์๊ฐ์ผ๋ก ๋น๊ต ํ์(๋ฆฌ์์ค ์๋ชจ๊ฐ ๋งค์ฐ ํด ์ ์์)
- ์ฃผ์ ํ ๋ง์์ TOC ํ์ ์ง์
- ์ ๋ชฉ์ ๋งํฌ ๋ฒํผ์ ํด๋ฆญํ ๋ ์๋์ผ๋ก ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ.
์ด ๋ฒ์ ์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์์ฑ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฐํ์ต๋๋ค: ์ด ๋ฆด๋ฆฌ์ค๋ ์์ง ์ด๊ธฐ ๋จ๊ณ์ด๋ฉฐ, ์ด ์ปดํฌ๋ํธ์ ๋ํ ๋ฌธ์ ์ ์ด๋ ์ ์, ๊ฐ์ ์ฌํญ์ด ์๋ค๋ฉด ์์์์๊ฒ ์ง์ ์ฐ๋ฝํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
๊ณต์์ ์ธ ์ด ์ปดํฌ๋ํธ ์ค๋ช , ๋งํฌ ๋ฐ ํ ๋ก ์ ๋ค์ ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ธ์: DiscoTOC - automatic table of contents
๊ธฐ์ ์ง์ (์ค๊ตญ์ด)
๊ธฐํ ๋ฌธ์ ์ฌํญ์ด๋ ๋์์ด ํ์ํ์ ๊ฒฝ์ฐ, ๋น์ฌ ์น์ฌ์ดํธ(์ค๊ตญ์ด)๋ฅผ ๋ฐฉ๋ฌธํ์ธ์: iSharkFly - ้ฃ้ฒจ




