Inkio
React ๊ธฐ๋ฐ์ ์ปค์คํฐ๋ง์ด์ฆ ๊ฐ๋ฅํ ๋ฆฌ์น ํ ์คํธ ์๋ํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- ๐จ Headless ๋์์ธ - ์์ ํ ์คํ์ผ ์ปค์คํฐ๋ง์ด์ง
- ๐ ํ๋ถํ ํฌ๋งทํ - Bold, Italic, Underline, Highlight, Link ๋ฑ
- ๐ผ๏ธ ๊ณ ๊ธ ์ด๋ฏธ์ง ํธ์ง - ๋๋๊ทธ์ค๋๋กญ, ๋ฆฌ์ฌ์ด์ฆ, Crop, ๋งํฌ์
- ๐ฌ Callout ๋ธ๋ก - Info, Warning, Tip, Danger ํ์ ์ง์
- ๐ ์ํค ๋งํฌ -
[[ํ์ด์ง]]ํ์์ ๋ด๋ถ ๋งํฌ - ๐ค ๋ฉ์
์์คํ
-
@์ฌ์ฉ์ํ๊ทธ ์ง์ - #๏ธโฃ ํด์ํ๊ทธ -
#ํ๊ทธ์ง์ - โจ๏ธ ์ฌ๋์ ์ปค๋งจ๋ -
/์ ๋ ฅ์ผ๋ก ๋น ๋ฅธ ๋ธ๋ก ์ฝ์ - ๐ ํ์คํฌ ๋ฆฌ์คํธ - ์ฒดํฌ๋ฐ์ค ๊ธฐ๋ฐ ํ ์ผ ๋ชฉ๋ก
- ๐ฏ Tree-shakable - ํ์ํ ๊ธฐ๋ฅ๋ง ๋ฒ๋ค๋ง
๋น ๋ฅธ ์์
npm install @inkio/editor @inkio/extension react react-dom@inkio/extension๋ @inkio/editor, react, react-dom๋ง peer๋ก ์๊ตฌํฉ๋๋ค.
Tiptap ๋ฐํ์๊ณผ katex, konva, react-konva๋ @inkio/extension ๋ด๋ถ ์์กด์ฑ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
import { Editor, getDefaultCoreExtensions } from '@inkio/editor';
import '@inkio/editor/style.css';
function MyEditor() {
return (
<Editor
extensions={getDefaultCoreExtensions()}
onUpdate={(json) => console.log(json)}
/>
);
}๋ฐ๋ชจ
ํ๋ ์ด๊ทธ๋ผ์ด๋์์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ง์ ์ฒดํํด๋ณด์ธ์.
์์ ๋ก ์์ํ๊ธฐ
AI์ ํจ๊ป ๋ถ์ด๊ฑฐ๋ ๋น ๋ฅด๊ฒ ํตํฉํ๋ ค๋ฉด ์ค๋ช ํ ๋ฌธ์๋ณด๋ค ์คํ ๊ฐ๋ฅํ ์์ ๋ฅผ ๋จผ์ ๋ณด๋ ํธ์ด ์์ ์ ์ ๋๋ค.
- ๋ ์ํผ์์ ๋ฐํ์๋ณ ์์์ ์ ๊ณ ๋ฅผ ์ ์์ต๋๋ค.
- ๋ ํฌ์์๋
examples/basic-react,examples/next-app-router๋ฅผ ๊ธฐ์ค ์์ ๋ก ์ ๊ณตํฉ๋๋ค. - AI์๊ฒ ์ฝ๋๋ฅผ ๋งก๊ธธ ๋๋ ๋ฃจํธ์
AI_CONTEXT.md๋ฅผ ์์ ํ์ผ๊ณผ ํจ๊ป ์ฃผ๋ ๋ฐฉ์์ ๊ถ์ฅํฉ๋๋ค.
๊ธฐ์ ์คํ
- Tiptapย v3 - ProseMirror ๊ธฐ๋ฐ ์๋ํฐ ํ๋ ์์ํฌ
- Reactย 19+ - UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- TypeScriptย - ํ์ ์์ ์ฑ
- Tailwind CSSย v4 - ์คํ์ผ๋ง
- Konvaย + react-konvaย - ์ด๋ฏธ์ง ํธ์ง (Crop, Rotate, Draw, Shapes, Text)
Last updated on