VitePress, ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ œ์•ˆํ•˜์—ฌ ๊ธฐ์—ฌํ•˜๊ธฐ

VitePress, ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์ œ์•ˆํ•˜์—ฌ ๊ธฐ์—ฌํ•˜๊ธฐ

VitePress ์ปจํŠธ๋ฆฌ๋ทฐ์…˜ ํ•˜๋Š” ์—ํ”ผ์†Œ๋“œ๋ฅผ ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

โ€ข5๋ถ„

๋“ค์–ด๊ฐ€๋ฉฐ

์ €๋Š” ์—ฌ๋Ÿฌ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๊ณต์‹ ๋ฌธ์„œ ์ž‘์„ฑ์„ ์œ„ํ•ด Documentation Framework๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์š”. ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ์ง์ ‘ ๊ตฌ์ถ•ํ•˜๋Š” ๋น„์šฉ์€ ๋งŽ์ด ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”. ์‹œ๊ฐ„์ด๋‚˜ ๊ธฐ์ˆ  ๋Ÿฌ๋‹ ์ปค๋ธŒ ๋”ํ•˜์—ฌ SEO ์ตœ์ ํ™”๋‚˜ ๋””์ž์ธ ๋“ฑ๋“ฑ ๊ณ ๋ คํ•  ๊ฒŒ ๋งŽ์•„ ๋ฌธ์„œํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์€ Documentation Framework๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€์š”.

์ด๋ฒˆ Query Adaptor์ด๋ผ๋Š” ํŒจ์นญ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค๋ฉด์„œ Documentation Framework์ธ VitePress๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ค‘์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ œ์•ˆํ•˜์—ฌ ๊ธฐ์—ฌํ•˜๊ฒŒ ๋œ ์—ํ”ผ์†Œ๋“œ๋ฅผ ์ด์•ผ๊ธฐํ•˜๊ณ ์ž ํ•ด์š”.

Documentation Framework๋Š” ๋ญ”๊ฐ€์š”?

frameworks

Documentation Framework๋Š” README.md ํ˜น์€ Wiki์™€ ๊ฐ™์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ฐ€์ด๋“œ์™€ ์„ค๋ช…์„ ๋‹ด์€ ๋ฌธ์„œ๋ฅผ ์›น์œผ๋กœ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์—์š”. SEO ์ตœ์ ํ™”๋Š” ๋ฌผ๋ก ์ด๊ณ  ๊ตญ์ œํ™”(i18n), ์ฝ˜ํ…์ธ  ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€ ์žˆ์–ด์„œ ์‚ฌ์šฉ์ž๋Š” ๋ฌธ์„œ๋งŒ ์ž‘์„ฑํ•˜๋ฉด ๋์ด์—์š”. ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•Œ์•„์„œ ๋‹ค ํ•ด์ฃผ๊ฑฐ๋“ ์š”. ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” VitePress, Docusaurus, Nextra๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

VitePress ๋žœ๋”ฉํŽ˜์ด์ง€

๊ทธ์ค‘ ์ €๋Š” VitePress๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ „์— Rollup์ด๋‚˜ Vitest์™€ ๊ฐ™์€ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋งŽ์ด ๋ดค์„ ๋•Œ์˜ ๊ฒฝํ—˜๊ณผ ์‹ฌํ”Œํ•œ ๋””์ž์ธ๊ณผ ๋ Œ๋”ฉ ํŽ˜์ด์ง€๊ฐ€ ์‚ฌ๋กœ์žก์•˜๊ณ , ์ปค์Šคํ…€ ์„ค์ •์ด ์ž˜ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด ์ฝ”๋“œ ์ˆ˜์ • ์—†์ด ๋น ๋ฅด๊ฒŒ ์ปค์Šคํ…€ ๋งˆ์ด์ง•์„ ํ•  ์ˆ˜ ์žˆ์–ด VitePress๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋์–ด์š”. ๋˜ํ•œ ๊ณต์‹ ๋ฌธ์„œ๋Š” ํ•œ๊ธ€ํ™”๊ฐ€ ๋˜์–ด์žˆ์–ด ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ์ „ํ†ต์ ์ธ SSG ๋“ค๊ณผ ๋‹ฌ๋ฆฌ ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ดˆ๊ธฐ ๋ฐฉ๋ฌธ ์‹œ ์ •์  HTML์„ ๋ฐ›๊ณ  ์ดํ›„๋Š” SPA๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„ฑ๋Šฅ์— ์žˆ์–ด ์ตœ์ ์˜ ๊ท ํ˜•์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด์š”. (ํ•ด๋‹น ์žฅ์ ์— ๋Œ€ํ•ด์„œ๋Š” ๋ถ„์„ํ•˜์—ฌ ๋‹ค๋ฅธ ๊ฒŒ์‹œ๊ธ€์„ ํ†ตํ•ด ์ง์ ‘ ํ™•์ธํ•ด ๋ณผ๊ฒŒ์š”!)

NPM ์†Œ์…œ ๋งํฌ๊ฐ€ ํ•„์š”ํ–ˆ์–ด์š”

NPM ์†Œ์…œ๋งํฌ

์ €๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด ํ•ญ์ƒ npm์— ๋ฐฐํฌํ–ˆ์–ด์š”. ์ด๋Š” Node.js ์ƒํƒœ๊ณ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ํ•„์ˆ˜์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์š”. ํ‰์†Œ์™€ ๊ฐ™์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜์—ฌ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋„์ค‘์— ๋ฐ˜๋ณต์ ์œผ๋กœ ํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ์–ด์š”. ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ ๋„ค๋น„๋ฐ”(Navbar)์— NPM์„ ๋งํฌํ•˜๋Š” ์•„์ด์ฝ˜์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

// config.mts์˜ socialLinks ํƒ€์ž…
interface SocialLink {
icon: SocialLinkIcon;
link: string;
ariaLabel?: string;
}

// ๊ณต์‹์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์…œ๋งํฌ
type SocialLinkIcon =
| 'discord'
| 'facebook'
| 'github'
| 'instagram'
| 'linkedin'
| 'mastodon'
| 'slack'
| 'twitter'
| 'x'
| 'youtube'
| { svg: string };

VitePress์—์„œ๋Š” .vitepress/config.mts์—์„œ ๋„ค๋น„๋ฐ”์— ์žˆ๋Š” ์†Œ์…œ ๋งํฌ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์ด 10๊ฐ€์ง€๋กœ NPM์ด ์˜ต์…˜์— ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”. ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ์ž๊ฐ€ NPM์„ ํ†ตํ•ด ๋ฐฐํฌํ•˜๊ฒŒ ๋  ํ…๋ฐ ์—†๋‹ค๋Š” ๊ฒƒ์— ์ฐธ ์˜์•„ํ–ˆ์–ด์š”. VitePress๋ฅผ ํ†ตํ•ด ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์šด์˜ํ•˜๋Š” ์œ ๋ช…ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ Vite, Rollup, Pinia, Vitest, D3 ๋“ฑ ์ด ์žˆ๋Š”๋ฐ ์ด ๋ชจ๋‘ NPM ํ†ตํ•ด ๋ฐฐํฌ๋˜๊ณ  ์žˆ๋Š”๋ฐ๋„ ๋ง์ด์ฃ .

์†Œ์…œ๋งํฌ ์˜ˆ์ œ

๊ทธ๋ž˜์„œ ์–ด์ฉ” ์ˆ˜ ์—†์ด npm์€ ์ปค์Šคํ…€์œผ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ์ง์ ‘ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์–ด์š”. ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์†Œ๊ฐœ๋œ ๊ฒƒ์ฒ˜๋Ÿผ NPM์˜ SVG ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€ ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ฟ์ด์—ˆ์ฃ .

socialLinks: [
{
icon: {
svg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>npm</title><path d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"/></svg>',
},
link: "https://www.npmjs.com/package/query-adaptor",
},
],

ํ•ด๋‹น ์ž‘์—…์€ ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กœ์šธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ NPM์— ๋ฐฐํฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ณต์‹ ๋ฌธ์„œ๋กœ VitePress๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋งค๋ฒˆ ํ•ด์•ผ ํ•˜๋Š” ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ € ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค๋„ ๋˜‘๊ฐ™์ด ํ•˜๊ณ  ์žˆ์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ•ด์š”. ์—ฌ๊ธฐ์„œ ๋ถˆํŽธํ•จ์„ ๋А๊ปด ๊ฐœ์„ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋งˆ์Œ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ฑด ์ „๋ถ€ ์žˆ๋Š”๋ฐ ๋งจ ์˜ค๋ฅธ์ชฝ NPM๋งŒ ์—†๋‹ค๋‹ˆ, Logo์— ๋ผ์ด์„ ์Šค ๋ฌธ์ œ๊ฐ€ ์žˆ๋‚˜๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค๊ธฐ๋„ ํ–ˆ์ฃ .

๊ธฐ์—ฌ์˜ ์ฒซ ๋ฒˆ์งธ ๊ฑธ์Œ

๊ธฐ์—ฌํ•˜๊ธฐ ์œ„ํ•ด VitePress์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ฐฉ๋ฌธํ•˜์—ฌ ๊ธฐ์—ฌ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๊ฐ€ ์ž‘์„ฑ๋œ contributing.md๋ฅผ ์ฝ์–ด๋ดค์–ด์š”. ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์•Œ๊ฒŒ ๋œ ๊ฒƒ์€ ๊ธฐ์—ฌ์— ๊ด€ํ•œ ํ–‰๋™ ๊ฐ•๋ น (Code of Conduct)์— ๋Œ€ํ•ด์„œ ์ฒ˜์Œ ์•Œ๊ฒŒ ๋˜์—ˆ์–ด์š”.

- If adding a new feature:

- Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it.

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ(Issue)๋ฅผ ์„ค๋“๋ ฅ ์žˆ๊ฒŒ ์ œ์‹œํ•˜๋ผ๊ณ  ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ œ์•ˆ์€ ์ด์Šˆ๋ฅผ ํ†ตํ•ด ๋จผ์ € ์Šน์ธ๋ฐ›์œผ๋ผ๊ณ  ๋˜์–ด ์žˆ์–ด์š”.

๊ทธ๋ž˜์„œ ์ €๋Š” ์„ ๋ก€๊ฐ€ ์žˆ๋Š”์ง€ ๊ธฐ์กด์— ์†Œ์…œ ๋งํฌ ๊ด€๋ จ PR์„ ์ „๋ถ€ ์ฐพ์•„๋ดค์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์— ์†Œ์…œ ๋งํฌ๋“ค์€ ์–ด๋–ป๊ฒŒ ์ถ”๊ฐ€๋˜์—ˆ๊ณ  ์–ด๋–ค ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณธ ๊ฑฐ์˜ˆ์š”. ๊ทธ๋Ÿฌ๋Š” ์ค‘ ์ถฉ๊ฒฉ์ ์ธ ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

PR935

PR1214

์˜ˆ์ „ ์ด๋ ฅ ๋ช‡ ๊ฐ€์ง€๋ฅผ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์—ˆ์–ด์š”. ๊ทธ ์ค‘ ํ•˜๋‚˜์ธ ํ…”๋ ˆ๊ทธ๋žจ ์†Œ์…œ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” PR(#934)์ธ๋ฐ์š”. ํ•ด๋‹น PR์€ Merge ๋˜์ง€ ์•Š๊ณ  Closed๊ฐ€ ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”. ํ…”๋ ˆ๊ทธ๋žจ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ PR(#1214)์—์„œ GitLab, Reddit, Tittok, Twitch ์†Œ์…œ ๋งํฌ๋„ Closed ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Maintainer์ธ brc-dd ๊ฐœ๋ฐœ์ž๋‹˜์˜ ์ฝ”๋ฉ˜ํŠธ์—์„œ ๊ทธ ์ด์œ ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ์š”.

brc-dd-comment

โ€œ์†Œ์…œ ๋งํฌ์˜ ๊ธฐ๋Šฅ์ด ๋ฆฌํŒฉํ† ๋ง ๋˜์–ด API๊ฐ€ ๋”์šฑ ์œ ์—ฐํ•ด์ ธ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์•„์ด์ฝ˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ์ด์Šˆ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค.โ€๋ผ๋Š” ์ด์œ ๋กœ ๋” ์ด์ƒ ์ƒˆ๋กœ์šด ์†Œ์…œ ๋งํฌ ์˜ต์…˜์„ ๋ฐ›๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ NPM๋„ ๋˜‘๊ฐ™์€ ์ด์œ ๋กœ Closed ๋˜๊ฒ ๋‹ค, ํ•˜์ง€ ๋ง๊นŒ๋ผ๋Š” ์ƒ๊ฐ์ด ์ž ๊น ๋“ค์—ˆ์ง€๋งŒ NPM์˜ ๊ฒฝ์šฐ๋Š” ๋‹ค๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ NPM์ด ์™œ ํ•„์š”ํ•œ์ง€ ์„ค๋“ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ํ•˜์—ฌ ํฌ๊ธฐํ•˜์ง€ ์•Š๊ณ  ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ–ˆ์–ด์š”.

๊ธฐ์—ฌ์˜ ๋‘ ๋ฒˆ์งธ ๊ฑธ์Œ

์ด์Šˆ ์ƒ์„ฑ

์ œ๊ฐ€ ์ž‘์„ฑํ•œ ์ด์Šˆ์˜ ๋‚ด์šฉ์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค. โ€œ๋Œ€๋ถ€๋ถ„์˜ NPM ํŒจํ‚ค์ง€(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋ฅผ ๋ฌธ์„œํ™”ํ•˜๋Š”๋ฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฉฐ NPM์„ ๊ณต์‹์ ์œผ๋กœ ํฌํ•จ๋˜๋ฉด ์‚ฌ์šฉ์ž ๋ชจ๋‘์—๊ฒŒ ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.โ€๋ผ๋Š” ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ํ•ด๋‹น ์ด์Šˆ ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•  ๊ฑด์ง€๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ–ˆ์–ด์š”.

๊ธฐ์—ฌ ํ™˜์˜ ๋ผ๋ฒจ

์ €์˜ ๋ฒˆ๊ฑฐ๋กœ์›€์˜ ์ ˆ์‹คํ•จ์ด ํ†ตํ–ˆ๋Š”์ง€ ํ˜น์€ NPM์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜์—ˆ๋Š”์ง€ ๋”ฐ๋กœ ๋Œ“๊ธ€(Comment)๋Š” ์—†์—ˆ์ง€๋งŒ contribution welcome ๋ผ๋ฒจ๋กœ ์Šน์ธ์„ ๋ฐ›๊ฒŒ ๋˜์—ˆ์–ด์š”!

// theme-default/support/socialIcons.ts
// types/default-theme.d.ts
type SocialLinkIcon =
| 'discord'
| 'facebook'
| 'github'
| 'instagram'
| 'linkedin'
| 'mastodon'
| 'npm' // ์˜์–ด ์ˆœ์„œ๋กœ ์—ฌ๊ธฐ์— ์ถ”๊ฐ€
| 'slack'
| 'twitter'
| 'x';
// used under CC0 1.0 from https://simpleicons.org/
export const icons = {
// ... ๊ธฐ์กด ์ฝ”๋“œ
npm: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>npm</title><path d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"/></svg>',
// ... ๊ธฐ์กด ์ฝ”๋“œ
};

์ด์Šˆ์— ์ ์€ ๋‚ด์šฉ ๋Œ€๋กœ SocialLinkIcon Type๊ณผ icons์— svg ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด ์ด 3๊ฐœ์˜ ํŒŒ์ผ์— npm์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ • ํ›„ ํ˜น์‹œ๋‚˜ ํ•˜๋Š” ๋งˆ์Œ์— ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ชจ๋‘ ํ†ต๊ณผํ•˜๋Š”์ง€๋„ ํ™•์ธํ–ˆ์–ด์š”.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ง„ํ–‰

๋งˆ์ง€๋ง‰์œผ๋กœ commit-convention.md์— ๋‚˜์™€์žˆ๋Š” ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜์„ ํ™•์ธํ•˜๊ณ  ์ปค๋ฐ‹ ํ•˜์—ฌ PR์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค.

PR ๋ณด๋‚ด๊ธฐ

๋ช‡ ๋ถ„ ํ›„ ํ™•์ธํ•ด ๋ณด๋‹ˆ ๋น ๋ฅด๊ฒŒ Merge๊ฐ€ ๋์–ด์š”! ์ด๋ ‡๊ฒŒ ์ €์˜ ์ธ์ƒ ์ฒซ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ ๊ธฐ์—ฌ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์—ฌ ์™„๋ฃŒ

ํ•ด์™ธ์˜ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ €์˜ ํ”„๋กœํ•„๊ณผ ์ด๋ฆ„์ด ์žˆ๋Š” ๊ฒŒ ์ฐธ ์‹ ๊ธฐํ•ด์„œ ๋ช‡ ๋ถ„ ๋™์•ˆ ๋ณด๊ณ  ์žˆ์—ˆ์–ด์š”. โญ10k ๊ทœ๋ชจ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ contributor๊ฐ€ ๋˜๋‹ค๋‹ˆ ๋ฏฟ๊ธฐ์ง€ ์•Š๊ณ  ์‹ ๊ธฐํ–ˆ์–ด์š”.

ํ˜„์žฌ VitePress๋Š” 1.0.0-rc.39 ๋ฒ„์ „์ด์—์š”. ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜์–ด 1.0.0-rc.40 ์ด์ƒ์ด ๋˜๋ฉด ์ œ๊ฐ€ ๊ธฐ์—ฌํ•œ ์†Œ์…œ ๋งํฌ NPM์„ ๋งŒ๋‚˜๋ณด์‹ค ์ˆ˜ ์žˆ์„ ๊ฑฐ์˜ˆ์š”. ์ €์ฒ˜๋Ÿผ NPM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ณต์‹ ๋ฌธ์„œ๋ฅผ VitePress๋ฅผ ์‚ฌ์šฉํ•˜์‹ ๋‹ค๋ฉด NPM ์†Œ์…œ ๋งํฌ ๋งŽ์€ ์‚ฌ์šฉ ๋ถ€ํƒ๋“œ๋ ค์š”!

2024-01-22 ์ถ”๊ฐ€

์ฒด์ธ์ง€๋กœ๊ทธ

๊ธฐ์—ฌ์ผ ๋‹ค์Œ ์ฃผ์ฏค์— ์—…๋ฐ์ดํŠธ๋œ ๋ฒ„์ „ 1.0.0-rc.40 ๋ฒ„์ „์— ์ €์˜ ๊ธฐ์—ฌ๊ฐ€ ํฌํ•จ๋์Šต๋‹ˆ๋‹ค!

๋งˆ์น˜๋ฉฐ

์ง€๊ธˆ๊นŒ์ง€ ์ €์˜ ์ฒซ ๊ธฐ์—ฌ ์—ํ”ผ์†Œ๋“œ์˜€์Šต๋‹ˆ๋‹ค. ์†Œ์…œ ๋งํฌ API์˜ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ์ถ”๊ฐ€ ์†Œ์…œ ๋งํฌ ์˜ต์…˜์„ ๋” ์ด์ƒ ๋ฐ›์ง€ ์•Š๊ฒ ๋‹ค๋Š” Maintainer์˜ ๋Œ“๊ธ€์„ ๋ณด๊ณ  ํฌ๊ธฐํ–ˆ๋‹ค๋ฉด, ์ด ๊ธฐ์—ฌ๋ฅผ ํ•˜์ง€ ๋ชปํ–ˆ์„ ๊ฑฐ์˜ˆ์š”. ํฌ๊ธฐํ•˜์ง€ ์•Š๊ณ  ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ NPM์ด ํ•„์š”ํ•œ ์ด์œ ๋ฅผ ์ œ์‹œํ•˜๊ณ , ์–ด๋–ค ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ์ž‘์—…ํ•˜๊ฒ ๋‹ค๊ณ  ์ ์–ด์„œ ๊ธฐ์—ฌ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ์น  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๋„์ „์€ ํ•ญ์ƒ ๋ง์„ค์—ฌ์ง€๊ณ  ๋‘๋ ค์šด ๊ฒƒ ๊ฐ™์•„์š”. ์ด๋ฒˆ ๊ธฐ์—ฌ๋ฅผ ํ•˜๋Š” ๋™์•ˆ์—๋„ ํฌ๊ธฐํ• ๊นŒ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ํ•œ ๋ฒˆ ํ•ด๋ณด์ž, ์ด์Šˆ๋กœ ์–˜๊ธฐํ•ด ๋ณด์ž๊ณ  ๋งˆ์Œ๋จน์–ด ๊ฒฐ๊ตญ ๊ธฐ์—ฌ๋ฅผ ์™„์ˆ˜ํ•  ์ˆ˜ ์žˆ์—ˆ์–ด์š”. ์—ฌ๋Ÿฌ๋ถ„๋„ ๊ทผ๊ฑฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ํฌ๊ธฐํ•˜์ง€ ์•Š๊ณ  ๋๊นŒ์ง€ ๋„์ „ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ฐธ๊ณ