Skip to Content
์†Œ๊ฐœ

Inkio

Inkio๋Š” Tiptap ๊ธฐ๋ฐ˜์˜ ๋ ˆ์ด์–ด๋“œ ์—๋””ํ„ฐ ํŒจํ‚ค์ง€ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.

์‹œ์ž‘์ 

  • @inkio/simple
    • classic WYSIWYG
    • toolbar-first
    • ๊ฐ€์žฅ ์‰ฌ์šด ์‹œ์ž‘์ 
  • @inkio/editor
    • notion-like
    • bubble/floating menu, slash command, block handle ์ค‘์‹ฌ
  • @inkio/advanced
    • comments, mention, hashtag, wiki link ๊ฐ™์€ ๊ณ ๊ธ‰ ํ™•์žฅ
  • @inkio/image-editor
    • ImageBlock์šฉ ์ด๋ฏธ์ง€ ํŽธ์ง‘ UI

๊ณตํ†ต ์Šคํƒ€์ผ ์–ธ์–ด

ํŒจํ‚ค์ง€๋ณ„ ๋ฐฐ์น˜๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • @inkio/simple: classic toolbar-first
  • @inkio/editor: notion-like
  • @inkio/image-editor: fullscreen overlay

๋Œ€์‹  chrome surface๋Š” ๊ณตํ†ต Inkio token์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

  • shell: toolbar, dock, command bar, sidebar
  • panel: popover, floating card, picker
  • field: input, select, textarea, search

๋น ๋ฅธ ์„ค์น˜

Classic:

npm install @inkio/simple react react-dom

Notion-like:

npm install @inkio/editor react react-dom

์˜ต์…˜ ํŒจํ‚ค์ง€:

npm install @inkio/image-editor

CommentPanel ๊ฐ™์€ advanced export๋ฅผ ์•ฑ ์ฝ”๋“œ์—์„œ ์ง์ ‘ importํ•  ๋•Œ๋งŒ @inkio/advanced๋ฅผ ์ถ”๊ฐ€ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

import { Editor } from '@inkio/simple'; import '@inkio/simple/minimal.css'; export function Page() { return <Editor initialContent="<p>Hello Inkio</p>" />; }

Markdown์€ ์„œ๋ธŒํŒจ์Šค๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

import { parseMarkdown, stringifyMarkdown } from '@inkio/simple/markdown';

๊ตฌํ˜„์€ remark/unified ๊ธฐ๋ฐ˜์ด๋ฉฐ markdown๊ณผ JSONContent๋ฅผ ์ง์ ‘ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Last updated on