json-document는 문서, 표, 슬라이드, 캔버스, 노트 편집기가 함께 쓸 수 있는 provider-neutral JSON 편집 protocol과 headless document projection입니다.
v2 root는 JSON, JSON Pointer, JSONPath, JSON Patch만 전제로 하며 Zod, React, selection, clipboard, history를 필수 계약에 넣지 않습니다.
Pure Protocol
|-> local provider -----------\
| > same six-member Document Projection
`-> collaboration provider --/ |-> optional history/text authoring
`-> optional DOM/IME lease로컬 전용 사용자는 Core만 설치합니다. 협업으로 전환해도 편집기가 받는
JSONDocument 포트는 바뀌지 않고, causal merge와 DOM publication lease만
독립 package로 추가합니다.
공식 사이트: https://developer-1px.github.io/json-document/
| 목적 | 위치 |
|---|---|
| 프로젝트 이해 | docs/public/overview.md |
| 빠른 사용 예제 | docs/public/quickstart.md |
| 공개 API | docs/public/api.md |
| 문서 구조 | docs/README.md |
| 변경 기록 | docs/changelog.md |
| v2 Projection 표준 | docs/standard/v2-projection-profile.md |
| v2 공개 표면 manifest | docs/standard/v2-public-surface.json |
| 1.x 기록 | archive/v1/docs |
| 위치 | 역할 |
|---|---|
| packages/json-document | 배포되는 v2 Kernel |
| packages/json-document-collaboration | transport-free causal multi-writer provider |
| packages/contenteditable-collaboration | collaborative string을 위한 optional DOM/IME publication lease |
| apps/site | v2 Core 공개 문서 사이트 |
| archive/v1 | 배포·workspace·검증에서 분리된 1.x 기록 |
v2 Kernel release는 @interactive-os/json-document 하나이며 dependency-free
Core로 남습니다. 두 collaboration package는 독립 version과 release lifecycle을
가진 optional companion입니다. Selection, clipboard, persistence와 제품별 DOM
lifecycle은 host adapter가 여섯-member JSONDocument 위에서 조합합니다.
일반 DOM과 Input Events 정규화가 필요한 제품은 별도 수명 주기의
@interactive-os/editable도 검토할 수 있습니다.
v2 Kernel이 제공하는 최소 계약:
- immutable JSON snapshot
- JSON Pointer read와 JSONPath query
- state를 바꾸지 않는
canPatch - ordered atomic JSON Patch commit
- canonical applied change publication
편집 툴이 계속 소유하는 것:
- rendering, DOM focus, keyboard, drag/drop UI
- selection, clipboard, history, framework lifecycle
- grid selection, TSV clipboard, formula engine
- product command 이름, layout, route, remote protocol
npm install
npm run dev자주 쓰는 확인:
npm run docs:evaluate
npm test -w @interactive-os/json-document
npm run typecheck -w @interactive-os/json-document
npm run build -w @interactive-os/json-document