1.0.3 • Published 9 months ago

@makecode/text-editor v1.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

@makecode/text-editor

현대 웹 애플리케이션에서 풍부한 텍스트 편집 경험을 제공하기 위한 경량화되고 커스터마이즈 가능한 텍스트 에디터 패키지입니다.


주요 기능

  • 리치 텍스트 편집: 굵게, 기울임, 밑줄, 제목, 인용문 등 다양한 기능 지원.
  • 커스터마이즈 가능한 툴바: 툴바 명령과 스타일을 쉽게 수정 가능.
  • ContentEditable 지원: 네이티브 contentEditable을 사용하여 매끄러운 텍스트 편집 경험 제공.
  • 크로스 브라우저 호환성: 다양한 브라우저와 디바이스에서 일관된 동작 보장.
  • 터치 지원: 모바일 디바이스를 위한 최적화된 터치 이벤트 처리 포함.

설치

npm 또는 yarn을 사용하여 패키지를 설치하세요:

npm install @makecode/text-editor
# 또는
yarn add @makecode/text-editor

사용법

기본 설정

애플리케이션에 에디터를 통합하는 간단한 예제:

import EditText from '@makecode/text-editor';

// 에디터 초기화
const editor = new EditText('#editor', {
  tooltip: true,
  classes: {
    link: 'custom-link-class',
  },
});

// 에디터 활성화
editor.on();

HTML 구조

HTML에 대상 요소를 포함해야 합니다:

<div id="editor" contenteditable="true"></div>

API

EditText 클래스

생성자

new EditText(target: HTMLElement | string | null, settings?: Partial<EditTextSettings>);
  • target: 에디터를 적용할 대상 요소(또는 해당 선택자).
  • settings: 선택적 설정 객체.

설정 옵션

옵션타입기본값설명
keystring'editor'에디터를 식별하기 위한 고유 키.
tooltipbooleantrue툴팁 표시 여부.
classesobject{ link: '' }에디터 구성 요소에 대한 커스텀 클래스.

메서드

메서드설명
on()에디터를 활성화하고 필요한 이벤트를 바인딩.
off()에디터를 비활성화하고 이벤트를 언바인딩.

툴바 명령

툴바에는 기본적으로 다음 명령이 포함되어 있습니다:

명령동작
h1, h2, h3선택한 텍스트를 제목 수준으로 변환.
bold굵게 서식 적용.
italic기울임 서식 적용.
underline밑줄 서식 적용.
strikethrough취소선 서식 적용.
blockquote선택한 텍스트를 인용문으로 변환.
createLink하이퍼링크를 생성하거나 업데이트.

커스터마이징

사용자 정의 스타일

에디터 요소를 CSS로 타겟팅하여 기본 스타일을 덮어쓸 수 있습니다:

#editor {
  border: 1px solid #ccc;
  padding: 10px;
  min-height: 100px;
}

.editor-text-link {
  color: blue;
  text-decoration: underline;
}

새로운 툴바 명령 추가

setRender 메서드를 수정하여 툴바에 사용자 정의 버튼을 추가할 수 있습니다:

const customButton = document.createElement('button');
customButton.textContent = 'Custom';
customButton.onclick = () => {
  console.log('Custom button clicked');
};
editor.elements.command.wrap?.appendChild(customButton);
1.0.3

9 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago