/gatsby-theme-simplex

๐Ÿš€ Gatsby theme for bootstrapping a simple blog

Primary LanguageTypeScriptBSD Zero Clause License0BSD

Gatsby Theme Simplex

๋ฐ๋ชจ ํŽ˜์ด์ง€ ๋ฐฉ๋ฌธํ•˜๊ธฐ

๋ฐ๋ชจ ํŽ˜์ด์ง€

Gatsby Theme Simplex๋Š” Gatsby ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ๋ธ”๋กœ๊ทธ ์Šคํƒ€ํ„ฐ์ž…๋‹ˆ๋‹ค. ๋งˆํฌ๋‹ค์šด์„ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด ์‚ฌ์šฉ์ž์˜ ํ•„์š”์— ๋งž๊ฒŒ ๋ธ”๋กœ๊ทธ๋ฅผ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Gatsby Theme Simplex๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ๋“ค์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

โœจ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ

๐Ÿš€ Gatsby Theme Simplex ์‹œ์ž‘ํ•˜๊ธฐ

1. Prerequisites

gatsby-cli ๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด, ๋‹ค์Œ ์ปค๋งจ๋“œ๋ฅผ ์ž…๋ ฅํ•ด gatsby-cli๋ฅผ ์ „์—ญ์œผ๋กœ ์„ค์น˜ํ•ด์ฃผ์„ธ์š”.

npm install --global gatsby-cli

2. Gatsby Theme Simplex ์ƒ์„ฑ

Gatsby CLI๋ฅผ ์ด์šฉํ•ด Gatsby Theme Simplex ํ”„๋กœ์ ํŠธ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค.

npx gatsby new [rootPath] leobang17/gatsby-theme-simplex
  • [rootPath]์— ํ”„๋กœ์ ํŠธ๋ฅด ์ƒ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

3. ๋ธ”๋กœ๊ทธ ์‹คํ–‰!

์ƒˆ๋กœ ๋งŒ๋“  [rootPath]๋กœ ์ด๋™ํ•œ ํ›„, ๋‹ค์Œ์˜ ์ปค๋งจ๋“œ๋ฅผ ์ž…๋ ฅํ•ด ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ๋ธ”๋กœ๊ทธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

npm run dev

http://localhost:8000์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•ด๋‘” ๊ธ€๋“ค๊ณผ ํ•จ๊ป˜ ๋ธ”๋กœ๊ทธ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์œผ๋‹ˆ ํ™•์ธํ•ด๋ณด์„ธ์š”!

๐Ÿฅ ์ตœ๊ทผ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ

๋‹ค์Œ์˜ git CLI ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•ด ๊ฐ€์žฅ ์ตœ๊ทผ์˜ Gatsby Theme Simplex์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „์€ release-latest ๋ธŒ๋žœ์น˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ release-latest ๋ธŒ๋žœ์น˜๋ฅผ upstream์œผ๋กœ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.

git remote add upstream https://github.com/leobang17/gatsby-theme-simplex --track release-latest

upstream์˜ ๋‚ด์šฉ์„ ๋กœ์ปฌ๋กœ fetchํ•ด์˜จ ํ›„ ์›ํ•˜๋Š” ๋ธŒ๋žœ์น˜๋กœ mergeํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

git fetch upstream 
git merge --allow-unrelated-histories -X theirs FETCH_HEAD

โš™๏ธ ๋ธ”๋กœ๊ทธ ์„ค์ •ํ•˜๊ธฐ

blog.config.json ํŒŒ์ผ์„ ํ†ตํ•ด ๋ธ”๋กœ๊ทธ์˜ ๊ธฐ๋ณธ์ ์ธ ์„ค์ •์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. blog.config.json์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

{
  "metadata": {
    "title": "๋ธ”๋กœ๊ทธ ์ œ๋ชฉ",
    "description": "๋ธ”๋กœ๊ทธ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…",
    "siteUrl": "ํ•ด๋‹น ๋ธ”๋กœ๊ทธ์˜ site url"
  },
  "social": {
    "github": "์ž‘์„ฑ์ž์˜ github ๋งํฌ"
  },
  "bio": {
    "name": "์ž‘์„ฑ์ž ์ด๋ฆ„ (ํ˜น์€ ๋‹‰๋„ค์ž„)"
  },
  "tableOfContents": {
    "maxDepth": 4
  },
  "category": {
    "maxDepth": 1
  },
  "utterance": {
    "issue_repo": "utterance(๊นƒํ—ˆ๋ธŒ ์ฝ”๋ฉ˜ํŠธ)๊ฐ€ ํ™œ์„ฑํ™”๋œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ."
  }
}

๊ฐ ํ”„๋กœํผํ‹ฐ์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์˜ ๊ธฐ๋ณธ๊ฐ’์€ ํ•˜๋‹จ์˜ ํ”„๋กœํผํ‹ฐ ๋ช…์„ธ๋ฅผ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

ํ”„๋กœํผํ‹ฐ๋ฅผ ๋นˆ ๋ฌธ์ž์—ด, ์ฆ‰ ""๋กœ ๋‚จ๊ฒจ๋‘๋ฉด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ ๋ช…์„ธ

ํ”„๋กœํผํ‹ฐ ์„ค๋ช… ํƒ€์ž… ๊ธฐ๋ณธ๊ฐ’
metadata.title ๋ธ”๋กœ๊ทธ ์ œ๋ชฉ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. string Blog Simplex
metadata.description ๋ธ”๋กœ๊ทธ ์„ค๋ช…์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค string Blog created using the "gatsby-theme-simplex" theme. Find on Github.
metadata.siteUrl ํ•ด๋‹น ๋ธ”๋กœ๊ทธ์˜ url์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค string https://github.com/leobang17/gatsby-theme-simplex
social.github ์ž‘์„ฑ์ž์˜ github ๋งํฌ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. string https://github.com/leobang17/gatsby-theme-simplex
bio.name ์ž‘์„ฑ์ž์˜ ์ด๋ฆ„ ํ˜น์€ ๋‹‰๋„ค์ž„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. string "Default Name"
tableOfContents.maxDepth ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์˜ depth๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. 1 | 2 | 3 | 4 4
category.maxDepth ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋ชฉ์ฐจ์˜ ๊นŠ์ด (depth)๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. 1 | 2 2
utterance.issue_repo utterance ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์ž‘์„ฑ๋  ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. string -

๐Ÿ—ฃ ๊นƒํ—ˆ๋ธŒ ์ฝ”๋ฉ˜ํŠธ ์ด์šฉํ•˜๊ธฐ (Utterance)

https://utteranc.es/ ๋ฅผ ์ฐธ๊ณ ํ•ด ๋Œ“๊ธ€์ด ์ž‘์„ฑ๋  ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ค์ •ํ•˜๊ณ  utterance ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜์„ธ์š” ์ด ํ›„ blog.config.json ํŒŒ์ผ์˜ utterance.issue_repo์— ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ช…์„ ๊ธฐ์ž…ํ•˜์„ธ์š”.

๐Ÿ’ซ GitHub Pages๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌํ•˜๊ธฐ

Gatsby Theme Simplex๋Š” Github Pages์˜ ํ˜ธ์ŠคํŒ…์„ ์œ„ํ•œ Github Action ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ค€๋น„๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์ค€๋น„๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌ๋ฅผ ์›ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค€๋น„์‚ฌํ•ญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

1. Git Repository ์ƒ์„ฑ

Github Pages๋Š” ๋ฌด๋ฃŒ ์ด์šฉ์ž์—๊ฒŒ๋Š” Public ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋งŒ Github Pages ํ˜ธ์ŠคํŒ… ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌด๋ฃŒ์ด์šฉ์ž๋ผ๋ฉด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ Public์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”.

2. Personal Access Token (PAT) ๋ฐœ๊ธ‰๋ฐ›๊ธฐ

Github Action workflow๊ฐ€ ์œ ์ €์˜ repository์—์„œ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ ์ €๊ฐ€ ์ง์ ‘ ๋ฐœ๊ธ‰ํ•œ Access Token์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Personal Access Token ๋ฐœ๊ธ‰๋ฐ›๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ† ํฐ์„ ๋ฐœํ–‰ํ•ด์ฃผ์„ธ์š”.

important! ํ† ํฐ์—๋Š” ๋งŒ๋ฃŒ์ผ์ด ์žˆ์œผ๋‹ˆ ๋งŒ๋ฃŒ์ผ์ด ์ง€๋‚˜๊ธฐ ์ „ ๊ฐฑ์‹  ํ˜น์€ ์žฌ๋ฐœ๊ธ‰ ์ ˆ์ฐจ๋ฅผ ๋ฐŸ์•„์ฃผ์„ธ์š”.

3. Git Repository์— PAT๋ฅผ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ๋“ฑ๋กํ•˜๊ธฐ

PAT๋Š” ๋ฏผ๊ฐํ•œ ์ •๋ณด์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ ํƒ€์ธ์—๊ฒŒ ๋…ธ์ถœํ•ด์„  ์•ˆ๋ฉ๋‹ˆ๋‹ค. Github Action workflow๋Š” Git Repository์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ๋“ฑ๋ก๋œ PAT๋ฅผ ์ฝ์–ด๋“ค์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Github Actionw workflow๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ํ† ํฐ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ธ”๋กœ๊ทธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— PAT๋ฅผ ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”.

๋ ˆํฌ์ง€ํ† ๋ฆฌ ํŽ˜์ด์ง€์˜ Settings >> Secrets and variables >> Actions๋กœ ์ด๋™ํ•ด์ฃผ์„ธ์š”. ์ƒˆ๋กœ์šด Repository secrets๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  1. Name์€ ACCESS_TOKEN ์ž…๋‹ˆ๋‹ค.
  2. Secret ํ•ญ๋ชฉ์— ๋ฐœ๊ธ‰๋ฐ›์€ PAT๋ฅผ ๋ถ™์—ฌ๋„ฃ์–ด์ฃผ์„ธ์š”.

ACCESS_TOKEN์„ name์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด Github Action workflow๊ฐ€ ํ† ํฐ์„ ์ฝ์–ด์˜ค์ง€ ๋ชปํ•˜๋‹ˆ ์ฃผ์˜ํ•ด์ฃผ์„ธ์š”.

4. source ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  push ํ•ฉ๋‹ˆ๋‹ค!

Github Actions workflow๋Š” ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ workflow๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ์ด๋ฒคํŠธ๋Š” source ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ธŒ๋žœ์น˜์— push ํ™œ๋™์ด ์ผ์–ด๋‚  ๋•Œ ์ž…๋‹ˆ๋‹ค. source ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  git ์ €์žฅ์†Œ์— push ํ•ด์ฃผ์„ธ์š”.

๐Ÿ’ก Gatsby Theme Simplex ์ดํ•ดํ•˜๊ธฐ

Gatsby Theme Simplex์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

.
โ””โ”€โ”€ gatsby-theme-simplex/
    โ”œโ”€โ”€ documents/ ---------------------------------------------------------- ์ž‘์„ฑ๊ธ€
    โ”œโ”€โ”€ src/
    โ”‚   โ”œโ”€โ”€ components/ ---------------------------------------------- React ์ปดํฌ๋„ŒํŠธ
    โ”‚   โ”œโ”€โ”€ hooks/ ---------------------------------------------------- React Hooks
    โ”‚   โ”œโ”€โ”€ nodeApi/ ----------------------------------- Gatsby Node API์™€ ๊ด€๋ จํ•œ ํ•จ์ˆ˜
    โ”‚   โ”œโ”€โ”€ pages/ ------------------------- File System Route API๋ฅผ ์ด์šฉํ•ด ์ƒ์„ฑํ•  ํŽ˜์ด์ง€
    โ”‚   โ”œโ”€โ”€ styles/ ----------------------- ์Šคํƒ€์ผ๋ง (๋””์ž์ธ์‹œ์Šคํ…œ, css, ๋ฐ˜์‘ํ˜•, Emotionjs)
    โ”‚   โ”œโ”€โ”€ templates/ ------------------------------ createPage๋กœ ์ƒ์„ฑํ•  ํŽ˜์ด์ง€์˜ ํ…œํ”Œ๋ฆฟ
    โ”‚   โ””โ”€โ”€ utils/ ----------------------------------- vanilla TS utility functions
    โ”œโ”€โ”€ static/ ----------------------------------------------------------- ์ •์  ํŒŒ์ผ
    โ”œโ”€โ”€ blog.config.json ---------------------------------------- ๋ธ”๋กœ๊ทธ์˜ ๊ธฐ๋ณธ์ ์ธ ์„ค์ •
    โ”œโ”€โ”€ gatsby-browser.tsx ------------------------------------- Gatsby Browser API
    โ”œโ”€โ”€ gatsby-config.ts -------------------------------------------- Gatsby ์„ค์ •ํŒŒ์ผ
    โ”œโ”€โ”€ gatsby-node.ts ---------------------------------------- Gatsby Node API ๊ตฌํ˜„
    โ””โ”€โ”€ package.json ------------------------------------------ ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ๊ด€๋ฆฌ ํŒŒ์ผ

๋ชจ๋“  ์ˆ˜์ • ์‚ฌํ•ญ๋“ค์€ Gatsby ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ธธ ๊ถŒํ•ฉ๋‹ˆ๋‹ค.

Gatsby Theme Simplex์˜ ์นดํ…Œ๊ณ ๋ฆฌ

์นดํ…Œ๊ณ ๋ฆฌ๋Š” /documents ๋‚ด๋ถ€์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, /documents ๋‚ด์— ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ธ€์„ ์—ฌ๋Ÿฌ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด, context-switching.mdx ๊ธ€์„ ComputorScience๋ผ๋Š” ์ด๋ฆ„์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ํŽธ์ž…์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gatsby-theme-simplex/
โ”œโ”€โ”€ ...
โ”œโ”€โ”€ documents/
โ”‚   โ””โ”€โ”€ ComputorScience/
โ”‚       โ””โ”€โ”€ context-switching.mdx
โ””โ”€โ”€ ...

์žฌ๊ท€์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ

์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด๋ถ€์˜ ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด ๋ณด๋‹ค ์„ธ๋ถ„ํ™”๋œ ์นดํ…Œ๊ณ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด, ComputorScience์˜ ํ•˜์œ„ ์นดํ…Œ๊ณ ๋ฆฌ์ธ OperatingSystem ์•„๋ž˜์— context-switching.mdx ๊ธ€์„ ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gatsby-theme-simplex/
โ”œโ”€โ”€ ...
โ”œโ”€โ”€ documents/
โ”‚   โ””โ”€โ”€ ComputorScience/
โ”‚       โ””โ”€โ”€ OperatingSystem/
โ”‚           โ””โ”€โ”€ context-switching.mdx
โ””โ”€โ”€ ...

์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์žฌ๊ท€์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ ๊ฐ€๋Šฅํ•œ ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊นŠ์ด๋Š” blog.config.json ์„ค์ • ํŒŒ์ผ์˜ category.maxDepth ํ”„๋กœํผํ‹ฐ์— ์˜ํ•ด ๊ฒฐ์ •๋˜๋ฉฐ, ํ•„์š”์— ๋งž๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊นŠ์ด์˜ ๊ธฐ๋ณธ ๊ฐ’์€ 2์ž…๋‹ˆ๋‹ค.

Gatsby Theme Simplex์˜ ๋ชฉ์ฐจ (Table Of Contents)

Gatsby Theme Simplex๋Š” ์•„ํ‹ฐํด ํŽ˜์ด์ง€์—์„œ "๋ชฉ์ฐจ" ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ์ฐจ ๊ธฐ๋Šฅ์€ ๋งˆํฌ๋‹ค์šด ๋ฌธ์„œ์— ์žˆ๋Š” Header ๋ฌธ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํƒ์ƒ‰ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ Tree๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ์ฐจ Tree์˜ ํ•˜์œ„ ๋ชฉ์ฐจ ๋…ธ๋“œ๋Š” ์žฌ๊ท€์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. Header์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์— ๋”ฐ๋ผ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. H1 ํ—ค๋”๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ๋˜๊ณ , H2 ํ—ค๋”๊ฐ€ ์ฒซ ๋ฒˆ์งธ ์ˆ˜์ค€์˜ ํ•˜์œ„ ๋…ธ๋“œ๊ฐ€ ๋˜๋Š” ์‹์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋Š” ์ตœ๋Œ€ ๊นŠ์ด์— ๋Œ€ํ•œ ๊ฐ’์„ ์„ค์ •ํ•˜์—ฌ ์ƒ์„ฑ๊ฐ€๋Šฅํ•œ ๋ชฉ์ฐจ์˜ ์ตœ๋Œ€ ๊นŠ์ด๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ ๊ฐ€๋Šฅํ•œ ์ž์‹ ๋ชฉ์ฐจ์˜ ์ตœ๋Œ€ ๊นŠ์ด๋Š” blog.config.json ์„ค์ • ํŒŒ์ผ์˜ tableOfContents.maxDepth ํ”„๋กœํผํ‹ฐ์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ๋Œ€ ๊นŠ์ด๋ฅผ 4๋กœ ์„ค์ •ํ•˜๋ฉด Tree์—๋Š” H4๊นŒ์ง€์˜ Header๋งŒ ํฌํ•จ๋˜๋ฉฐ ํ•ด๋‹น ์ˆ˜์ค€์„ ์ดˆ๊ณผํ•˜๋Š” Header๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ H5๊นŒ์ง€์˜ ๋ชจ๋“  Header๋ฅผ ํฌํ•จํ•˜๋ ค๋ฉด ์ตœ๋Œ€ ๊นŠ์ด๋ฅผ 5๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ•˜์œ„ ๋ชฉ์ฐจ์˜ ์ตœ๋Œ€ ๊นŠ์ด์˜ ๊ธฐ๋ณธ๊ฐ’์€ 4์ž…๋‹ˆ๋‹ค.

โœ๏ธ ๊ธ€ ์ž‘์„ฑํ•˜๊ธฐ

๋ชจ๋“  ์ž‘์„ฑ ๊ธ€์€ /documents์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— Markdown ํ™•์žฅ์ž(.md ํ˜น์€ .mdx)๋กœ ์ƒ์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ดˆ์ ์ธ ๋งˆํฌ๋‹ค์šด ๋ฌธ๋ฒ•์€ ๋งˆํฌ๋‹ค์šด ๊ฐ€์ด๋“œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

/documents์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ํด๋”๋ง์„ ํ•  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๋ฐ, ์ด์— ๋Œ€ํ•œ ์„ค๋ช…์€ Gatsby Theme Simplex์˜ ์นดํ…Œ๊ณ ๋ฆฌ ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

Frontmatter ์ž…๋ ฅํ•˜๊ธฐ

๋ชจ๋“  ๋งˆํฌ๋‹ค์šด ๊ธ€์€ ๋ณธ๋ฌธ ์ž‘์„ฑ์— ์•ž์„œ Frontmatter๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅํ•ด์•ผํ•˜๋Š” ํผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

---
title: ๊ธ€์˜ ์ œ๋ชฉ
createdAt: YYYY-mm-dd (๊ธ€์˜ ์ž‘์„ฑ์ผ์ž)
---

... ๋ณธ๋ฌธ

Frontmatter ์ž…๋ ฅํผ์„ ์œ„ํ•œ VSCode ์Šค๋‹ˆํŽซ "post"

Gatsby Theme Simplex์—๋Š” Frontmatter์˜ ์ž…๋ ฅ ์–‘์‹์„ ์ž๋™์™„์„ฑํ•˜๋Š” ์Šค๋‹ˆํŽซ์ด ์ค€๋น„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. VSCode๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  post๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ฐ€์žฅ ์ƒ๋‹จ์— ๋‚˜ํƒ€๋‚˜๋Š” ์Šค๋‹ˆํŽซ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ์Šค๋‹ˆํŽซ์€ ์‚ฌ์šฉ์ž PC์˜ ์‹œ์Šคํ…œ ํƒ€์ž„์„ ์ฐธ์กฐํ•˜์—ฌ createdAt ํ•ญ๋ชฉ์„ ์ž๋™์œผ๋กœ ์™„์„ฑ์‹œํ‚ต๋‹ˆ๋‹ค.


๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์—์„œ ์Šค๋‹ˆํŽซ ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ

settings.json์— ๋‹ค์Œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

// settings.json
"[markdown]": {
      "editor.quickSuggestions": true
  }

๊ธ€ ๋ณธ๋ฌธ์— ์ด๋ฏธ์ง€ ์ฒจ๋ถ€ํ•˜๊ธฐ

Gatsby Theme Simplex๋Š” ์ด๋ฏธ์ง€ ์ฒจ๋ถ€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ์ฒจ๋ถ€ํ•˜๋Š” ๋ฐฉ์‹์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํ”„๋กœ์ ํŠธ์˜ ๋‚ด๋ถ€ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜
  2. ์™ธ๋ถ€ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

ํ˜„์žฌ ์™ธ๋ถ€ ๋งํฌ๋ฅผ ํ†ตํ•œ ์ด๋ฏธ์ง€ ์ถœ๋ ฅ์€ caption ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์— ์ €์žฅ๋œ ์ด๋ฏธ์ง€ ์ฒจ๋ถ€ํ•˜๊ธฐ (๊ถŒ์žฅ)

๋‹ค์Œ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ผํ•˜๊ธธ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž‘์„ฑํ•˜๋ ค๋Š” ๊ธ€๊ณผ ๋™์ผํ•œ ์œ„์น˜์— /imgs ํด๋”๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด /imgs ํด๋”๋Š” ํ•ด๋‹น ํด๋”๊ฐ€ ์œ„์น˜ํ•œ ๋ฐ”๋กœ ์ƒ์œ„์˜ ์นดํ…Œ๊ณ ๋ฆฌ์— ์†ํ•˜๋Š” ๊ธ€์˜ ๋ชจ๋“  ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

gatsby-theme-simplex/
โ”œโ”€โ”€ ...
โ”œโ”€โ”€ documents/ ---------------------------------------------------------- ์ž‘์„ฑ๊ธ€
โ”‚   โ””โ”€โ”€ ExampleCategory/ ------------------------------------------  ์˜ˆ์‹œ ์นดํ…Œ๊ณ ๋ฆฌ
โ”‚       โ”œโ”€โ”€ imgs/ -------------------- ExampleCategory ํ•˜์œ„์˜ ๊ธ€๋“ค์ด ์ด์šฉํ•  ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ
โ”‚       โ”‚   โ””โ”€โ”€ example-image.png ------------------------------------ ์˜ˆ์‹œ ์ด๋ฏธ์ง€
โ”‚       โ””โ”€โ”€ example-article.mdx ---------------------------------------- ์˜ˆ์‹œ ๊ธ€
โ””โ”€โ”€ ...

์˜ˆ๋ฅผ๋“ค์–ด, OperatingSystem ์นดํ…Œ๊ณ ๋ฆฌ ํ•˜์œ„์— context-switching.mdx์™€ Paterson-solution.mdx์˜ ๋‘ ๊ธ€์ด ์กด์žฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. /documents/OperatingSystem/imgs ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์—๋Š” OperatingSystem ์นดํ…Œ๊ณ ๋ฆฌ์— ์ง์ ‘ ์†ํ•˜๋Š” ๊ธ€๋“ค๊ณผ ์—ฐ๊ด€ํ•œ ์ด๋ฏธ์ง€๋“ค์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•  ๊ฒฝ์šฐ, ๋‹ค์Œ์˜ ๋งˆํฌ๋‹ค์šด ๋ฌธ๋ฒ•์„ ์ด์šฉํ•ด ์ €์žฅ๋œ ์ด๋ฏธ์ง€๋ฅผ ๊ธ€์— ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

![Image description](./imgs/example-image1.png)

alt์— ํ•ด๋‹นํ•˜๋Š” ํ…์ŠคํŠธ๋Š” ์ฒจ๋ถ€๋˜๋Š” ์ด๋ฏธ์ง€์˜ caption์œผ๋กœ ํ•˜๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•˜์ง€ ์•Š์„์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ธ€์— ์ฒจ๋ถ€ํ•˜๋ ค๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜์˜ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ด„ํ˜ธ () ์•ˆ์— ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์™ธ๋ถ€ ์ด๋ฏธ์ง€ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€ ์ฒจ๋ถ€ํ•˜๊ธฐ

๋‹ค์Œ์˜ ๋งˆํฌ๋‹ค์šด ๋ฌธ๋ฒ•์„ ์ด์šฉํ•ด ์™ธ๋ถ€ ์ด๋ฏธ์ง€ ๋งํฌ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

![Image description](https://example-image-url.com/)

ํ˜„์žฌ ์™ธ๋ถ€ ์ด๋ฏธ์ง€ ๋งํฌ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์€ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ caption ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ˆ˜์‹ ์ž…๋ ฅํ•˜๊ธฐ

Gatsby Theme Simplex๋Š” ์ˆ˜์‹ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ์ด์šฉํ•ด ์ˆ˜์‹ ๋ธ”๋ก์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$$
a^2 + b^2 = c^2
$$

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ์ด์šฉํ•ด ์ธ๋ผ์ธ ์ˆ˜์‹์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$a^2 + b^2 = c^2$

์ˆ˜์‹ ๋ฌธ๋ฒ•์€ TeX ๋ฌธ๋ฒ•์„ ์ค€์ˆ˜ํ•˜๋ฉฐ, gatsby remark katex ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ด์šฉํ•ด KaTeX ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์‹ ์ž‘์„ฑ ๋ฐฉ์‹์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ์ •๋ณด๋Š” KaTeX์—์„œ ์ง€์›ํ•˜๋Š” TeX ๋ฌธ๋ฒ•๋ฅผ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.