# ๊ฐ๋ฐ ํ๊ฒฝ (ํ์์คํฌํ ์บ์ ๋ฒ์คํ
)
npm run dev # ํฌํธ 8080์์ ๊ฐ๋ฐ ์๋ฒ ์์
npm start # ๊ธฐ๋ณธ ๊ฐ๋ฐ ์๋ฒ ์์
# ํ๋ก๋์
ํ๊ฒฝ (๋ฒ์ ๊ธฐ๋ฐ ์บ์ ๋ฒ์คํ
)
npm run serve:prod # ํฌํธ 3000์์ ํ๋ก๋์
์๋ฒ ์์
# ๋น๋
npm run build # ํ๋ก๋์
๋น๋ ์คํ
- ๊ฐ๋ฐ ํ๊ฒฝ: http://localhost:8080
- ํ๋ก๋์ ํ๊ฒฝ: http://localhost:3000
URL ํ๋ผ๋ฏธํฐ๋ก ํ๊ฒฝ์ ๊ฐ์ ๋ก ์ค์ ํ ์ ์์ต๋๋ค:
http://localhost:8080?env=development
http://localhost:8080?env=production
- ๊ฐ๋ฐ ํ๊ฒฝ: ํ์์คํฌํ ๊ธฐ๋ฐ (
?t=1234567890
) - ํ๋ก๋์
ํ๊ฒฝ: ๋ฒ์ ๊ธฐ๋ฐ (
?v=1.0.05
)
LiteEditor๋ ์น ํ์ด์ง์ ์ฝ๊ฒ ํตํฉํ ์ ์๋ ๊ฒฝ๋ ๋ฆฌ์น ํ ์คํธ ์๋ํฐ์ ๋๋ค. JavaScript์ CSS๋ง์ผ๋ก ๊ตฌํ๋์ด ๋์ ํธํ์ฑ์ ์ ๊ณตํ๋ฉฐ, ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ํ์ํ ๊ธฐ๋ฅ๋ง ์ ํํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ํฐ ์์ญ์ ํด๋ฐ์ ๋ด์ฉ์ ์์ฑํ๋ ์ปจํ ์ธ ์์ญ์ ํตํฉํ๊ฑฐ๋, ๋ถ๋ฆฌํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<link rel="stylesheet" href="css/loader.css">
</head>
<body>
<div class="lite-editor" id="main-editor">
<div id="lite-editor-toolbar"></div>
<div id="lite-editor-content" contenteditable="true">
<p>๋ด์ฉ์ ์
๋ ฅํ์ธ์...</p>
</div>
</div>
<script src="js/loader.js"></script>
<script>
document.addEventListener('lite-editor-loaded', function() {
LiteEditor.init('#lite-editor-content', {
separatedMode: true,
toolbarTarget: '#lite-editor-toolbar',
plugins: ['bold', 'italic', 'underline', 'link', 'reset']
});
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<link rel="stylesheet" href="css/loader.css">
</head>
<body>
<div id="editor">๊ธฐ์กด ๋ด์ฉ</div>
<script src="js/loader.js"></script>
<script>
document.addEventListener('lite-editor-loaded', function() {
LiteEditor.init('#editor', {
plugins: ['bold', 'italic', 'underline', 'link', 'reset']
});
});
</script>
</body>
</html>
- ๊ตต๊ฒ - ํ ์คํธ๋ฅผ ๊ตต๊ฒ ํ์
- ๊ธฐ์ธ์ - ํ ์คํธ๋ฅผ ๊ธฐ์ธ์๊ผด๋ก ํ์
- ๋ฐ์ค - ํ ์คํธ์ ๋ฐ์ค ์ถ๊ฐ
- ์ทจ์์ - ํ ์คํธ์ ์ทจ์์ ์ถ๊ฐ
- ํฐํธ ํจ๋ฐ๋ฆฌ - ๋ค์ํ ๊ธ๊ผด ์ ํ
- ํฐํธ ์์ - ํ ์คํธ ์์ ๋ณ๊ฒฝ
- ํ์ด๋ผ์ดํธ - ํ ์คํธ ๋ฐฐ๊ฒฝ์ ๋ณ๊ฒฝ
- ์ ๋ชฉ ์คํ์ผ - H1~H6 ์ ๋ชฉ ํ๊ทธ ์ ์ฉ
- ํ ์คํธ ์ ๋ ฌ - ์ข/์ค/์ฐ/์์ชฝ ์ ๋ ฌ
- ๋ค์ฌ์ฐ๊ธฐ - ๋ค์ฌ์ฐ๊ธฐ ๋ฐ ๋ด์ด์ฐ๊ธฐ
- ์์ ์๋ ๋ชฉ๋ก - ๋ถ๋ฆฟ ๋ฆฌ์คํธ ์์ฑ
- ์์ ์๋ ๋ชฉ๋ก - ๋ฒํธ ๋ฆฌ์คํธ ์์ฑ
- ์ฒดํฌ๋ฆฌ์คํธ - ์ฒดํฌ๋ฐ์ค ๋ฆฌ์คํธ ์์ฑ
- ํ์ดํผ๋งํฌ - ๋งํฌ ์ฝ์ ๋ฐ ํธ์ง
- ์ด๋ฏธ์ง ์ ๋ก๋ - ์ด๋ฏธ์ง ์ฝ์ ๋ฐ ๋ฆฌ์ฌ์ด์ฆ
- ํ ์ด๋ธ - ํ ์ด๋ธ ์์ฑ ๋ฐ ํธ์ง
- ๋์์ - ๋ค์ค ํ๋ซํผ ๋์์ ์ฝ์
- ์ธ์ฉ๊ตฌ - ๋ธ๋ก์ฟผํธ ์์ฑ
- ์ธ๋ผ์ธ ์ฝ๋ - ์ฝ๋ ์์ ์ ์ฉ
- ์ฝ๋ ๋ธ๋ก - ์ฝ๋ ๋ธ๋ก ๋ฐ ๊ตฌ๋ฌธ ๊ฐ์กฐ
- ์ํ์ - ๊ตฌ๋ถ์ ์ฝ์
- ์คํ ์ทจ์ - ์ด์ ์์ ์ผ๋ก ๋๋๋ฆฌ๊ธฐ
- ๋ค์ ์คํ - ์ทจ์ํ ์์ ๋ค์ ์คํ
- ์์ ์ ๊ฑฐ - ๋ชจ๋ ์์ ์ ๊ฑฐ
- ๊ฒฝ๋ํ: ์ต์ํ์ ๋ฆฌ์์ค๋ก ์ต๋ ์ฑ๋ฅ ์ ๊ณต
- ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ: ํ์ํ ๊ธฐ๋ฅ๋ง ์ ํํ์ฌ ์ฌ์ฉ
- ๋์ ํธํ์ฑ: ๋ชจ๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์ง์
- ์ฌ์ด ํตํฉ: ๊ฐ๋จํ HTML/JS ์ฝ๋๋ก ์ฆ์ ์ฌ์ฉ
- ๋ถ๋ฆฌ ๋ชจ๋: ํด๋ฐ์ ์ฝํ ์ธ ์์ญ์ ์์ ๋กญ๊ฒ ๋ฐฐ์น
- ํค๋ณด๋ ๋จ์ถํค: ์ฃผ์ ๊ธฐ๋ฅ์ ๋ํ ๋จ์ถํค ์ง์
- ๋ค์ค ํ๋ซํผ ๋์์ ์ฒจ๋ถ: YouTube, Vimeo, ์นด์นด์คTV ๋ฑ ๋์์ ์ง์
- ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ: ํฐํธ, ์์ ๋ฑ ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
- ์ด๋ฏธ์ง ๋งํฌ, ํ์ผ ์ฒจ๋ถ ํํ ์ง์: ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ , ์์น ์กฐ์ ์ง์
- ์์ JavaScript: ์ธ๋ถ ํ๋ ์์ํฌ ์์กด์ฑ ์์
- ๋ชจ๋ํ ์ค๊ณ: ๊ฐ ๊ธฐ๋ฅ์ด ๋ ๋ฆฝ์ ์ธ ํ๋ฌ๊ทธ์ธ์ผ๋ก ๊ตฌ์ฑ
- ์บ์ ๋ฒ์คํ : ๊ฐ๋ฐ/ํ๋ก๋์ ํ๊ฒฝ๋ณ ์บ์ ์ ๋ต
- ๋ณด์ ๊ฐํ: XSS ๋ฐฉ์ง ๋ฐ URL ๊ฒ์ฆ ์์คํ
- ์ค๋ฅ ์ฒ๋ฆฌ: ํตํฉ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋๋ฒ๊น ์์คํ
- HTML/Rich ๋ชจ๋ ์ ํ
- HTML/Markdown ๊ฐ์ ธ์ค๊ธฐ/๋ด๋ณด๋ด๊ธฐ
- ์ํ ์์ ํธ์ง๊ธฐ
- ์ฐจํธ ์์ฑ ๋๊ตฌ
- ํ ํ๋ฆฟ ์์ ์ง์
- ์ฝ๋ ํ์ด๋ผ์ดํ ๊ฐ์
- ๋ชจ๋ฐ์ผ ์ต์ ํ
- ๋ค๊ตญ์ด ์ง์ ํ์ฅ
LiteEditor ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๋ฐฉ๋ฒ:
- ์ด ์ ์ฅ์๋ฅผ ํฌํฌํ์ธ์
- ์ ๊ธฐ๋ฅ ๋ธ๋์น๋ฅผ ๋ง๋์ธ์ (
git checkout -b feature/amazing-feature
) - ๋ณ๊ฒฝ์ฌํญ์ ์ปค๋ฐํ์ธ์ (
git commit -m 'Add some amazing feature'
) - ๋ธ๋์น์ ํธ์ํ์ธ์ (
git push origin feature/amazing-feature
) - Pull Request๋ฅผ ์์ฑํ์ธ์
์ด ํ๋ก์ ํธ๋ Apache License 2.0 with Commons Clause ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
- ์ด๋ฉ์ผ: teamsubnote@gmail.com
- ์น์ฌ์ดํธ: https://v0-interactive-landing-page-omega.vercel.app/
- ์๋ธ๋ ธํธ์ฑ: https://subnote.cc
- ์ด์: GitHub Issues๋ฅผ ํตํด ๋ฒ๊ทธ ๋ฆฌํฌํธ๋ ๊ธฐ๋ฅ ์์ฒญ์ ํด์ฃผ์ธ์
๊ฐ๋ฐํ: subnote lite-editor team in korea
๋ฒ์ : v1.0.05
์ต์ข
์
๋ฐ์ดํธ: 2025-05-25