경고
이 저장소는 주요 변경을 거치므로 PR을 수락하는 것을 중단합니다.
더 읽기 : #9045
편집자에 대해 정말로 진지한 사람들은 자신의 프레임 워크를 만들어야합니다.
Blocksuite는 편집자 및 협업 애플리케이션을 구축하기위한 툴킷입니다. 일련의 컨텐츠 편집 인프라, UI 구성 요소 및 편집자를 독립적으로 구현합니다.
Blocksuite는 런타임으로 최소화 된 바닐라 프레임 워크를 기반으로 다양한 편집자를 구축하기위한 UI 구성 요소 라이브러리로 간주 할 수 있습니다. Blocksuite를 사용하면 다음을 수행 할 수 있습니다.
PageEditor : 광범위한 사용자 정의 및 유연성을 제공하는 포괄적 인 블록 기반 문서 편집기.EdgelessEditor : 옵트 인 캔버스 렌더링 지원이있는 그래픽 편집기이지만 PageEditor 와 동일한 풍부한 텍스트 기능을 공유합니다.? Blocksuite는 현재 초기 단계에 있으며 구성 요소와 확장 기능이 여전히 개선되고 있습니다. 계속 지켜봐 주시기를 바랍니다.
Blocksuite는 Affine Knowledge Base에서 시작하여 설계 목표를 포함하여 다음을 포함합니다.
Affine의 개발 과정에서, Blocksuite는 단순히 사내 편집자가되어 다재다능한 프레임 워크로 진화하고 있음이 분명해졌습니다. 그렇기 때문에 우리는 오픈 소스를 선택하고 블록 수트를 독립적으로 유지하기로 결정했습니다.
Blocksuite 편집기를 사용하면 Affine의 모든 편집 기능을 선택적으로 재사용 할 수 있습니다.

그리고 후드 아래에서 바닐라 블록 스위트 프레임 워크는 다음을 지원합니다.
Blocksuite를 시도하려면 빠른 시작 예제를 참조하고 @blocksuite/presets 의 사전 설정 편집기부터 시작하십시오.
Blocksuite와 Affine의 관계는 Monaco 편집기와 VSCODE 사이의 관계와 유사하지만 한 가지 주요 차이점 : Blocksuite는 Affine Codebase를 기반으로 자동 생성되지 않지만 다른 기술 스택과 독립적으로 유지 관리합니다. Affine은 React를 사용하는 동안 Blocksuite는 웹 구성 요소를 사용합니다.
이 차이점은 Blocksuite가 구성 요소 중심 철학을 기반으로 명확한 경계를 설정하여 다음을 보장했습니다.
이를 위해 Blocksuite 프로젝트는 헤드리스 프레임 워크와 미리 빌드 편집 구성 요소의 두 그룹으로 분류되는 주요 패키지로 구성됩니다.
| 뼈대 | |
|---|---|
@blocksuite/store | 공동 작업 문서를 모델링하기위한 데이터 계층. CRDT 라이브러리 YJS를 기본적으로 구축하여 실시간 공동 작업 및 시간 여행 기능으로 모든 Blocksuite 문서에 전원을 공급합니다. |
@blocksuite/inline | 인라인 편집을위한 최소한의 풍부한 텍스트 구성 요소. Blocksuite를 사용하면 다른 블록 노드의 풍부한 텍스트 내용을 다른 인라인 편집기로 분류 할 수 있으므로 복잡한 콘텐츠가 편리하게 합성 가능합니다. 이는 기존의 풍부한 텍스트 편집 기능을 구현하는 데 필요한 복잡성을 크게 줄입니다. |
@blocksuite/block-std | 편집 가능한 블록 모델링을위한 프레임 워크 공유 라이브러리. 기능은 블록 필드, 이벤트, 선택, 클립 보드 지원 등의 구조를 다룹니다. |
| 구성 요소 | |
|---|---|
@blocksuite/blocks | 각 블록에 속하는 위젯을 포함하여 사전 설정 편집기를 구성하기위한 기본 블록 구현. |
@blocksuite/presets | 편집자 ( PageEditor / EdgelessEditor ) 및 보조 UI 구성 요소를 포함한 플러그 앤 플레이 편집 가능한 구성 요소 ( CopilotPanel , DocTitle ...). |
Source에서 Blocksuite를 구축하고 테스트하는 방법에 대한 지침은 Building.md를 참조하십시오.
Blocksuite는 Github에서 풀 요청을 수락합니다. 기여를 시작하기 전에 기부자 라이센스 계약을 읽고 수락했는지 확인하십시오. 계약을 표시하려면이 파일을 편집하고 풀 요청을 제출하십시오.
MPL 2.0