SvelteKit ์ผ๋ก ๋ธ๋ก๊ทธ๋ฅผ ๊ฐ์คํด ๋ณด์๋ค
Published at 2024. 5. 16.
3 min read
Table of Contents
์๊ฐ
SvelteKit 2 + Svelte 5(preview) ์กฐํฉ์ผ๋ก ๋ญ ๋ง๋ค์ด๋ณผ๊น ์๊ฐํ๋ค๊ฐ.. ๋ง์นจ ๋ธ๋ก๊ทธ๋ฅผ ์์ํด์ผ๊ฒ ๋ค ์ถ์ ์๊ฐ์ด ๋ค์ด์ ์ด ์กฐํฉ์ผ๋ก ๋ธ๋ก๊ทธ๋ฅผ ๋ง๋ค์ด ๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
๋ธ๋ก๊ทธ ๋ง๋๋ ๋ฒ์ ๋ค์ ์์์ ์ฐธ๊ณ ํ๋ค.
Features
๐ฅ Open Props ๋์
์๋ฒ์๋ ๋์ ์ฐ๋ TailwindCSS ๋์ ์ Open Props๋ผ๋ ๊ฒ์ ์จ๋ณด์๋ค. TailwindCSS๊ฐ ์ฃผ๋ verboseํ๊ณ inline-style ๊ฐ์ ๋๋์ ๋ ๋ฐ์ผ๋ฉด์ design token ๊ธฐ๋ฐ์ผ๋ก CSS๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ๋ฐฉ์์ด๋ค.
๐ฅ Dark/Light mode
์ผ๋จ ์ด๋ ๋ธ๋ก๊ทธ์๋ ์๋ theme toggle ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌํ๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ์ด๋ค ์ํํธ์จ์ด๋ dark theme์ default๋ก ๋๊ณ ์ฌ์ฉํ๊ณ ์์ด์ light theme์ ์ฐ์ง ์์ง๋ง.. ๊ทธ๋ฅ ๋ฃ์ด๋๋ค.
๐ฅ Code block syntax highlighting
์๋์ฒ๋ผ code block์ ๋ํด syntax highlighting์ด ์ ๋๋๋ก ์ค์ ํด์ฃผ์๋ค.
syntax highlighting์ ํด์ฃผ๊ธฐ ์ํด์ shiki ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ๊ณ ,
light theme์์๋ github-light ์, dark theme์์๋ github-dark ๋ฅผ ์ฌ์ฉํ๋ค.
code๊ด๋ จ font๋ JetBrains Mono font๋ฅผ ์ฌ์ฉํ๋ค.
function greet(name: string) {
console.log('Hello, Sveltekit!')
} ๐ฅ Markdown rendering
๊ธฐ๋ณธ markdown ๋ฌธ๋ฒ์ ๋ํด, Svelte component๋ฅผ .md ํ์ผ ์์์ ๋ ๋๋ง ํ ์ ์๋๋ก ํด์คฌ๋ค.
์ฆ, ์๋์ฒ๋ผ Svelte component๋ฅผ .md ํ์ผ ๋ด์์ ์ง์ import ํ ์ ์๋ค.
// markdown file
<script>
import Counter from './counter.svelte'
</script>
<Counter /> ๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ด svelte component๊ฐ ๋์ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๐ฅ Reading time UX ์ถ๊ฐ
mdsvex plugin์ ํตํด post๋ฅผ ์ฝ๋๋ฐ ๊ฑธ๋ฆด ์์ ์์์๊ฐ์ ํ์ํด์ฃผ๋ UX๋ฅผ ์ถ๊ฐํด์ฃผ์๋ค.
๐ฅ Page transition effect
svelte์ ๋ด์ฅ๋ transition ๊ด๋ จ ๋๊ตฌ๋ก url์ด ๋ณ๊ฒฝ๋ ๋ ๋ง๋ค GNB, footer๋ฅผ ์ ์ธํ ์์ญ์ transition ํจ๊ณผ๊ฐ ์ ์ฉ๋๋๋ก ํ๋ค.
๐ฅ RSS xml ์ ๋ฐํํ๋ API route ์ถ๊ฐ
๋ญ.. ๋ด ๋ธ๋ก๊ทธ๋ฅผ RSS ๋ฆฌ๋์ ๋ฃ๊ณ ์ฑ๊ฒจ๋ณผ ์ฌ๋์ ์๊ฒ ์ง๋ง ์ฌ์ฌํด์ ๋ฃ์ด๋ด.
์ผ๋จ ๊ธฐ๋ณธ์ ์ธ๊ฒ๋ง ๊ฐ์ถ์ด ๋๊ณ , ์ถํ ์ ์ง์ ์ผ๋ก ๊ฐ์ ํด ๋๊ฐ ์์ !