@aeriz/wysiwyg 1.0.5 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -201
- package/README.md +82 -573
- package/angular/README.md +10 -4
- package/angular/aeriz-editor.directive.ts +40 -18
- package/dist/adapters/jquery.cjs +1 -1
- package/dist/adapters/jquery.js +14 -14
- package/dist/adapters/shared.cjs +1 -1
- package/dist/adapters/shared.js +59 -56
- package/dist/adapters/vue.cjs +1 -1
- package/dist/adapters/vue.js +64 -56
- package/dist/adapters/vue2.cjs +1 -1
- package/dist/adapters/vue2.js +24 -17
- package/dist/adapters/wc.cjs +1 -1
- package/dist/adapters/wc.js +108 -72
- package/dist/aeriz-wysiwyg-adapter.js +24 -32
- package/dist/aeriz-wysiwyg-adapter.min.js +1 -1
- package/dist/aeriz-wysiwyg-highlight.js +964 -0
- package/dist/aeriz-wysiwyg-highlight.min.js +5 -0
- package/dist/aeriz-wysiwyg-jquery.js +25 -32
- package/dist/aeriz-wysiwyg-jquery.min.js +1 -1
- package/dist/aeriz-wysiwyg-wc.js +80 -43
- package/dist/aeriz-wysiwyg-wc.min.js +1 -1
- package/dist/aeriz-wysiwyg.cjs +3525 -1744
- package/dist/aeriz-wysiwyg.css +2104 -1904
- package/dist/aeriz-wysiwyg.esm.js +3525 -1744
- package/dist/aeriz-wysiwyg.esm.min.js +4840 -3581
- package/dist/aeriz-wysiwyg.js +3525 -1744
- package/dist/aeriz-wysiwyg.min.cjs +51 -46
- package/dist/aeriz-wysiwyg.min.css +1 -1
- package/dist/aeriz-wysiwyg.min.js +51 -46
- package/dist/highlight.cjs +5 -0
- package/dist/highlight.js +895 -0
- package/dist/server.cjs +24 -19
- package/dist/server.js +612 -251
- package/dist-types/adapters/shared.d.ts +0 -8
- package/dist-types/adapters/shared.d.ts.map +1 -1
- package/dist-types/adapters/vue.d.ts +62 -21
- package/dist-types/adapters/vue.d.ts.map +1 -1
- package/dist-types/adapters/vue2.d.ts +33 -14
- package/dist-types/adapters/vue2.d.ts.map +1 -1
- package/dist-types/adapters/wc.d.ts +15 -6
- package/dist-types/adapters/wc.d.ts.map +1 -1
- package/dist-types/cjs/adapters/shared.d.cts +0 -8
- package/dist-types/cjs/adapters/vue.d.cts +62 -21
- package/dist-types/cjs/adapters/vue2.d.cts +33 -14
- package/dist-types/cjs/adapters/wc.d.cts +15 -6
- package/dist-types/cjs/core/AerizEditor.d.cts +204 -48
- package/dist-types/cjs/core/AerizViewer.d.cts +7 -0
- package/dist-types/cjs/core/block-meta.d.cts +40 -0
- package/dist-types/cjs/core/block-tracker.d.cts +64 -0
- package/dist-types/cjs/core/blocks.d.cts +39 -4
- package/dist-types/cjs/core/fonts.d.cts +33 -46
- package/dist-types/cjs/core/history.d.cts +28 -10
- package/dist-types/cjs/core/html-to-blocks.d.cts +10 -0
- package/dist-types/cjs/core/i18n.d.cts +44 -0
- package/dist-types/cjs/core/import-html.d.cts +0 -13
- package/dist-types/cjs/core/insert-fragment.d.cts +21 -0
- package/dist-types/cjs/core/paste-clean.d.cts +36 -0
- package/dist-types/cjs/core/sanitize-dom.d.cts +21 -0
- package/dist-types/cjs/core/sanitize-html.d.cts +8 -0
- package/dist-types/cjs/core/sanitize-policy.d.cts +22 -0
- package/dist-types/cjs/core/selection.d.cts +5 -0
- package/dist-types/cjs/core/table-grid.d.cts +87 -0
- package/dist-types/cjs/core/table-ops.d.cts +2 -22
- package/dist-types/cjs/highlight/index.d.cts +5 -0
- package/dist-types/cjs/index.d.cts +19 -11
- package/dist-types/cjs/server/index.d.cts +4 -5
- package/dist-types/cjs/types/index.d.cts +63 -15
- package/dist-types/cjs/ui/Toolbar.d.cts +10 -0
- package/dist-types/cjs/ui/doc-tools.d.cts +58 -0
- package/dist-types/cjs/ui/popovers.d.cts +14 -25
- package/dist-types/core/AerizEditor.d.ts +204 -48
- package/dist-types/core/AerizEditor.d.ts.map +1 -1
- package/dist-types/core/AerizViewer.d.ts +7 -0
- package/dist-types/core/AerizViewer.d.ts.map +1 -1
- package/dist-types/core/block-meta.d.ts +40 -0
- package/dist-types/core/block-meta.d.ts.map +1 -1
- package/dist-types/core/block-policy.d.ts.map +1 -1
- package/dist-types/core/block-tracker.d.ts +64 -0
- package/dist-types/core/block-tracker.d.ts.map +1 -0
- package/dist-types/core/blocks.d.ts +39 -4
- package/dist-types/core/blocks.d.ts.map +1 -1
- package/dist-types/core/fonts.d.ts +33 -46
- package/dist-types/core/fonts.d.ts.map +1 -1
- package/dist-types/core/history.d.ts +28 -10
- package/dist-types/core/history.d.ts.map +1 -1
- package/dist-types/core/html-mini.d.ts.map +1 -1
- package/dist-types/core/html-to-blocks.d.ts +10 -0
- package/dist-types/core/html-to-blocks.d.ts.map +1 -0
- package/dist-types/core/i18n.d.ts +44 -0
- package/dist-types/core/i18n.d.ts.map +1 -1
- package/dist-types/core/import-html.d.ts +0 -13
- package/dist-types/core/import-html.d.ts.map +1 -1
- package/dist-types/core/import-markdown.d.ts.map +1 -1
- package/dist-types/core/insert-fragment.d.ts +21 -0
- package/dist-types/core/insert-fragment.d.ts.map +1 -0
- package/dist-types/core/markdown-export.d.ts.map +1 -1
- package/dist-types/core/paste-clean.d.ts +36 -0
- package/dist-types/core/paste-clean.d.ts.map +1 -0
- package/dist-types/core/render-string.d.ts.map +1 -1
- package/dist-types/core/sanitize-dom.d.ts +21 -0
- package/dist-types/core/sanitize-dom.d.ts.map +1 -0
- package/dist-types/core/sanitize-html.d.ts +8 -0
- package/dist-types/core/sanitize-html.d.ts.map +1 -0
- package/dist-types/core/sanitize-policy.d.ts +22 -0
- package/dist-types/core/sanitize-policy.d.ts.map +1 -0
- package/dist-types/core/selection.d.ts +5 -0
- package/dist-types/core/selection.d.ts.map +1 -1
- package/dist-types/core/snapshot.d.ts.map +1 -1
- package/dist-types/core/table-grid.d.ts +87 -0
- package/dist-types/core/table-grid.d.ts.map +1 -0
- package/dist-types/core/table-ops.d.ts +2 -22
- package/dist-types/core/table-ops.d.ts.map +1 -1
- package/dist-types/highlight/index.d.ts +5 -0
- package/dist-types/highlight/index.d.ts.map +1 -0
- package/dist-types/index.d.ts +19 -11
- package/dist-types/index.d.ts.map +1 -1
- package/dist-types/server/index.d.ts +4 -5
- package/dist-types/server/index.d.ts.map +1 -1
- package/dist-types/types/index.d.ts +63 -15
- package/dist-types/types/index.d.ts.map +1 -1
- package/dist-types/ui/Toolbar.d.ts +10 -0
- package/dist-types/ui/Toolbar.d.ts.map +1 -1
- package/dist-types/ui/doc-tools.d.ts +58 -0
- package/dist-types/ui/doc-tools.d.ts.map +1 -0
- package/dist-types/ui/icons.d.ts.map +1 -1
- package/dist-types/ui/popovers.d.ts +14 -25
- package/dist-types/ui/popovers.d.ts.map +1 -1
- package/package.json +70 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AerizEditor.d.ts","sourceRoot":"","sources":["../../src/core/AerizEditor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"AerizEditor.d.ts","sourceRoot":"","sources":["../../src/core/AerizEditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,11 @@ export interface ViewerOptions {
|
|
|
5
5
|
element: HTMLElement;
|
|
6
6
|
/** 초기 블록 상태 (1차 입력 경로). HTML 이 아닌 상태 모델을 사용. */
|
|
7
7
|
initialBlocks?: BlockSnapshot[];
|
|
8
|
+
/**
|
|
9
|
+
* 처음 보여 줄 HTML. `initialBlocks` 와 함께 주면 `initialBlocks` 가 쓰인다.
|
|
10
|
+
* 저장된 값을 그대로 넣어도 된다 — 허용 목록으로 정화한 뒤 렌더한다.
|
|
11
|
+
*/
|
|
12
|
+
initialHTML?: string;
|
|
8
13
|
/** 초기 테마 */
|
|
9
14
|
theme?: 'light' | 'dark';
|
|
10
15
|
/** `getHTML()` 의 스타일 전략. 기본 `'inline'`. */
|
|
@@ -43,6 +48,8 @@ export declare class AerizViewer {
|
|
|
43
48
|
*/
|
|
44
49
|
setBlocks(blocks: BlockSnapshot[]): void;
|
|
45
50
|
/** 현재 본문의 BlockSnapshot 배열을 반환한다. */
|
|
51
|
+
/** HTML 로 내용을 바꾼다. 허용 목록으로 정화한 뒤 블록으로 렌더한다. */
|
|
52
|
+
setHTML(html: string): void;
|
|
46
53
|
getBlocks(): BlockSnapshot[];
|
|
47
54
|
/** 임의의 노드를 받아 그 노드가 속한 블록을 반환한다. 본문 밖이면 null. */
|
|
48
55
|
getBlockOf(node: Node): Block | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AerizViewer.d.ts","sourceRoot":"","sources":["../../src/core/AerizViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AerizViewer.d.ts","sourceRoot":"","sources":["../../src/core/AerizViewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgBrD,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,gDAAgD;IAChD,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY;IACZ,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyD;IAC/E;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,aAAa;IAiClC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAKxC,qCAAqC;IACrC,+CAA+C;IAC/C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,SAAS,IAAI,aAAa,EAAE;IAI5B,iDAAiD;IACjD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI;IAKpC;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM;IAgBnD,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAIvC,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -78,6 +78,24 @@ export declare function mergeClassNames(...values: ReadonlyArray<string | undefi
|
|
|
78
78
|
export declare const TASK_LIST_CLASS = "aw-task-list";
|
|
79
79
|
/** 체크리스트 항목의 완료 여부를 담는 속성명. */
|
|
80
80
|
export declare const TASK_CHECKED_ATTR = "data-checked";
|
|
81
|
+
/**
|
|
82
|
+
* 콜아웃(강조 상자) 의 종류.
|
|
83
|
+
*
|
|
84
|
+
* 인용구와 다른 블록인 이유 — 인용구는 "남의 말", 콜아웃은 "읽는 사람에게
|
|
85
|
+
* 하는 당부" 다. 둘을 한 블록으로 합치면 어느 쪽 의미도 실어 나르지 못한다.
|
|
86
|
+
*/
|
|
87
|
+
export declare const CALLOUT_VARIANTS: readonly ["note", "tip", "warning", "danger"];
|
|
88
|
+
export type CalloutVariant = (typeof CALLOUT_VARIANTS)[number];
|
|
89
|
+
/** 콜아웃 블록의 정체성 클래스. */
|
|
90
|
+
export declare const CALLOUT_CLASS = "aw-callout";
|
|
91
|
+
/** 종류별 클래스는 이 접두사 + 종류 이름. */
|
|
92
|
+
export declare const CALLOUT_VARIANT_PREFIX = "aw-callout-";
|
|
93
|
+
/** 저장된 값을 알려진 종류로 정규화한다. 모르는 값이면 `'note'`. */
|
|
94
|
+
export declare function safeCalloutVariant(raw: string | undefined | null): CalloutVariant;
|
|
95
|
+
/** 토글의 요약 줄. 접혔을 때 유일하게 보이는 부분이다. */
|
|
96
|
+
export declare const TOGGLE_SUMMARY_CLASS = "aw-toggle-summary";
|
|
97
|
+
/** 토글의 본문. 펼쳤을 때 드러난다. */
|
|
98
|
+
export declare const TOGGLE_BODY_CLASS = "aw-toggle-body";
|
|
81
99
|
/**
|
|
82
100
|
* 링크 / 다운로드 URL 을 검사한다. 안전하면 원문 그대로, 아니면 빈 문자열.
|
|
83
101
|
*
|
|
@@ -95,4 +113,26 @@ export declare function safeImageUrl(raw: string | undefined | null): string;
|
|
|
95
113
|
* `../` 나 따옴표가 섞이면 URL 자체가 다른 곳을 가리키게 된다.
|
|
96
114
|
*/
|
|
97
115
|
export declare function safeYouTubeId(raw: string | undefined | null): string;
|
|
116
|
+
/**
|
|
117
|
+
* 이벤트 핸들러 속성인지.
|
|
118
|
+
*
|
|
119
|
+
* `on` 으로 시작하는 속성은 **값 전체가 실행되는 코드다.** 목록으로 관리하지
|
|
120
|
+
* 않는 이유 — 표준에만 100 개가 넘고 계속 늘어나며, 하나라도 빠뜨리면 그것이
|
|
121
|
+
* 곧 구멍이다. `on` 접두사라는 형태 자체로 막는 편이 빠뜨릴 여지가 없다.
|
|
122
|
+
*
|
|
123
|
+
* `on` 으로 시작하는 정상 속성(`one`, `only` 같은 것) 은 HTML 표준에 없다.
|
|
124
|
+
*/
|
|
125
|
+
export declare function isEventHandlerAttr(name: string): boolean;
|
|
126
|
+
export declare function isScriptBearingAttr(name: string): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* `srcset` 의 모든 후보 URL 이 이미지로 안전한지.
|
|
129
|
+
*
|
|
130
|
+
* `src` 가 멀쩡해도 `srcset` 이 있으면 브라우저는 그쪽을 먼저 고른다. 그래서
|
|
131
|
+
* `src` 만 검사하면 우회가 된다.
|
|
132
|
+
*
|
|
133
|
+
* 후보 하나라도 통과하지 못하면 **속성을 통째로 버린다.** 일부만 남기면 남은
|
|
134
|
+
* 후보의 디스크립터(`2x`, `640w`) 조합이 원본과 달라져 엉뚱한 이미지가 뽑히고,
|
|
135
|
+
* 애초에 이 에디터는 `srcset` 을 만들지 않으므로 잃을 것이 없다.
|
|
136
|
+
*/
|
|
137
|
+
export declare function isSafeSrcset(value: string): boolean;
|
|
98
138
|
//# sourceMappingURL=block-meta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-meta.d.ts","sourceRoot":"","sources":["../../src/core/block-meta.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6BAA6B;AAC7B,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAYvE;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,0BAA0B;AAC1B,eAAO,MAAM,aAAa,QAGK,CAAC;AAEhC,4BAA4B;AAC5B,eAAO,MAAM,eAAe,QAGyD,CAAC;AAEtF,+BAA+B;AAC/B,eAAO,MAAM,oBAAoB,6FAC2D,CAAC;AAE7F,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,4CAA4C,CAAC;AAE5E,4BAA4B;AAC5B,eAAO,MAAM,kBAAkB,iBAAO,CAAC;AAEvC,0BAA0B;AAC1B,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAY,CAAC;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAMvD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAIhD,CAAC;AAEH,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAIrE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GAClD,MAAM,CASR;AAED,uCAAuC;AACvC,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,+BAA+B;AAC/B,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"block-meta.d.ts","sourceRoot":"","sources":["../../src/core/block-meta.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,6BAA6B;AAC7B,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAYvE;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,0BAA0B;AAC1B,eAAO,MAAM,aAAa,QAGK,CAAC;AAEhC,4BAA4B;AAC5B,eAAO,MAAM,eAAe,QAGyD,CAAC;AAEtF,+BAA+B;AAC/B,eAAO,MAAM,oBAAoB,6FAC2D,CAAC;AAE7F,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,4CAA4C,CAAC;AAE5E,4BAA4B;AAC5B,eAAO,MAAM,kBAAkB,iBAAO,CAAC;AAEvC,0BAA0B;AAC1B,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,QAAY,CAAC;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAMvD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAIhD,CAAC;AAEH,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAIrE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GAClD,MAAM,CASR;AAED,uCAAuC;AACvC,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,+BAA+B;AAC/B,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,+CAAgD,CAAC;AAE9E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,uBAAuB;AACvB,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,8BAA8B;AAC9B,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AAEpD,8CAA8C;AAC9C,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC7B,cAAc,CAGhB;AAED,qCAAqC;AACrC,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AA2DlD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAOlE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CASnE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAGpE;AASD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAkBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-policy.d.ts","sourceRoot":"","sources":["../../src/core/block-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,KAAK,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS7E;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,KAAK,GAAG,IAAI,EACpB,IAAI,EAAE,cAAc,GACnB,OAAO,CAET;AAED,8BAA8B;AAC9B,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAEnE;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAE/D;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAE5D;AAeD,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAE5D;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAE3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAGxE;
|
|
1
|
+
{"version":3,"file":"block-policy.d.ts","sourceRoot":"","sources":["../../src/core/block-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,KAAK,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS7E;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,KAAK,GAAG,IAAI,EACpB,IAAI,EAAE,cAAc,GACnB,OAAO,CAET;AAED,8BAA8B;AAC9B,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAEnE;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAE/D;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAE5D;AAeD,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAE5D;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAE3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAGxE;AA6BD,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAGvD"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 바뀐 블록만 다시 계산하기 위한 장부.
|
|
3
|
+
*
|
|
4
|
+
* ## 왜 필요한가
|
|
5
|
+
*
|
|
6
|
+
* 1.0 은 키를 누를 때마다 문서 전체를 세 번 직렬화했다 — 변경 감지용
|
|
7
|
+
* `innerHTML`, `onChange` 용 `getHTML()`(전체 clone 후 스타일 베이크), 상태바의
|
|
8
|
+
* 소스 길이. 여기에 이력 스냅샷(문서 전체 문자열) 과 전 블록 표식 갱신이
|
|
9
|
+
* 더해져 65쪽 문서에서 키 하나에 80ms 가 넘게 걸렸다.
|
|
10
|
+
*
|
|
11
|
+
* 타이핑 한 번에 바뀌는 블록은 보통 하나다. MutationRecord 가 어느 블록이
|
|
12
|
+
* 바뀌었는지 알려 주므로, 블록(본문 직계 자식) 마다 결과를 캐시해 두고 바뀐
|
|
13
|
+
* 블록만 다시 계산한다. 문서가 길어져도 키 하나의 비용이 거의 늘지 않는다.
|
|
14
|
+
*
|
|
15
|
+
* ## 무엇을 캐시하는가
|
|
16
|
+
*
|
|
17
|
+
* - `raw` : 블록의 HTML (편집 표식 제외). 변경 감지와 이력 스냅샷에 쓴다.
|
|
18
|
+
* 이력 칸들은 바뀌지 않은 블록의 문자열 객체를 그대로 공유한다.
|
|
19
|
+
* - `out` : `getHTML()` 출력 조각. 스타일 전략 · 테마가 같을 때만 재사용한다.
|
|
20
|
+
* - `info` : 블록 분류 결과(`classifyBlockElement`).
|
|
21
|
+
*
|
|
22
|
+
* 캐시는 element 를 키로 한 WeakMap 이라 지워진 블록은 저절로 사라진다.
|
|
23
|
+
* 블록을 옮겨도(끌어다 놓기) element 가 그대로이므로 캐시가 유효하다.
|
|
24
|
+
*/
|
|
25
|
+
import type { ClassifyResult } from './blocks.js';
|
|
26
|
+
export declare class BlockTracker {
|
|
27
|
+
private readonly root;
|
|
28
|
+
/** 마지막 commit 이후 바뀐 블록. */
|
|
29
|
+
readonly dirty: Set<HTMLElement>;
|
|
30
|
+
/** 본문 직계 자식이 더해지거나 빠졌는지. */
|
|
31
|
+
private structure;
|
|
32
|
+
private readonly raw;
|
|
33
|
+
private readonly out;
|
|
34
|
+
private readonly info;
|
|
35
|
+
/** 마지막 commit 시점의 직계 자식 순서. 구조 변경이 실제로 있었는지 비교한다. */
|
|
36
|
+
private children;
|
|
37
|
+
constructor(root: HTMLElement);
|
|
38
|
+
/** 본문 직계 자식까지 거슬러 올라간다. 본문 밖이면 null. */
|
|
39
|
+
topLevelOf(node: Node | null): HTMLElement | null;
|
|
40
|
+
/** MutationRecord 들을 읽어 바뀐 블록을 표시한다. 캐시는 즉시 무효화한다. */
|
|
41
|
+
collect(records: readonly MutationRecord[]): void;
|
|
42
|
+
/** 블록 하나를 바뀐 것으로 표시한다. */
|
|
43
|
+
mark(el: HTMLElement): void;
|
|
44
|
+
/** 기록이 남아 있는지. */
|
|
45
|
+
get pending(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* 쌓인 변경을 확정한다. 바뀐 블록의 raw 를 다시 읽고, 실제로 내용이
|
|
48
|
+
* 달라졌는지 돌려준다. `changedBlocks` 에는 다시 읽은 블록이 담긴다.
|
|
49
|
+
*
|
|
50
|
+
* 같은 값을 다시 쓰는 변경(하이라이트 재적용 등) 은 레코드는 남지만 내용은
|
|
51
|
+
* 그대로다 — raw 문자열 비교로 걸러 `onChange` 가 헛돌지 않게 한다.
|
|
52
|
+
*/
|
|
53
|
+
commit(changedBlocks: HTMLElement[]): boolean;
|
|
54
|
+
/** 현재 블록 순서대로 raw 문자열. commit 이후에 부른다. */
|
|
55
|
+
snapshot(): string[];
|
|
56
|
+
rawOf(el: Element): string;
|
|
57
|
+
/** `getHTML()` 조각. `key`(스타일 전략 + 테마) 가 같으면 캐시를 쓴다. */
|
|
58
|
+
output(el: Element, key: string, compute: (el: Element) => string): string;
|
|
59
|
+
/** 블록 분류. 바뀌지 않은 블록은 캐시를 쓴다. */
|
|
60
|
+
classify(el: HTMLElement): ClassifyResult;
|
|
61
|
+
/** 본문을 통째로 바꾼 뒤(초기화 · setHTML) 모든 캐시를 다시 채운다. */
|
|
62
|
+
reset(): void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=block-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-tracker.d.ts","sourceRoot":"","sources":["../../src/core/block-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAwC/C,qBAAa,YAAY;IAYX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAXjC,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,mBAA0B;IACxC,4BAA4B;IAC5B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAyD;IAC7E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0C;IAC/D,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAiB;gBAEJ,IAAI,EAAE,WAAW;IAE9C,wCAAwC;IACxC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI;IAMjD,sDAAsD;IACtD,OAAO,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI;IAuBjD,0BAA0B;IAC1B,IAAI,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAM3B,kBAAkB;IAClB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,OAAO;IAqB7C,0CAA0C;IAC1C,QAAQ,IAAI,MAAM,EAAE;IAMpB,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;IAS1B,uDAAuD;IACvD,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,MAAM,GAAG,MAAM;IAQ1E,gCAAgC;IAChC,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,cAAc;IASzC,iDAAiD;IACjD,KAAK,IAAI,IAAI;CAUd"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { CalloutVariant } from './block-meta.js';
|
|
2
|
+
export type BlockKind = 'paragraph' | 'heading' | 'bulletList' | 'orderedList' | 'taskList' | 'blockquote' | 'codeBlock' | 'toggle' | 'callout' | 'image' | 'table' | 'hr' | 'linkCard' | 'youtube' | 'file' | 'importedHtml' | 'unknown';
|
|
2
3
|
export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
3
4
|
/** 단락 — 메타데이터 없음. */
|
|
4
5
|
export interface ParagraphAttrs {
|
|
@@ -27,6 +28,25 @@ export interface CodeBlockAttrs {
|
|
|
27
28
|
/** 'javascript' / 'python' 등의 언어 식별자. 없으면 plaintext. */
|
|
28
29
|
language?: string;
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* 토글(접기/펴기) 블록 — `<details>` / `<summary>`.
|
|
33
|
+
*
|
|
34
|
+
* 펼침 상태를 `open` 하나로만 들고 있다. 요약 줄과 본문은 다른 블록과 마찬가지로
|
|
35
|
+
* `snapshot.html` 안에 들어간다.
|
|
36
|
+
*/
|
|
37
|
+
export interface ToggleAttrs {
|
|
38
|
+
/** 펼쳐진 상태로 저장할지. 없으면 접힌 상태. */
|
|
39
|
+
open?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 콜아웃(강조 상자) 블록 — `<aside>`.
|
|
43
|
+
*
|
|
44
|
+
* 종류만 들고 있다. 내용은 다른 블록과 마찬가지로 `snapshot.html` 안이다.
|
|
45
|
+
*/
|
|
46
|
+
export interface CalloutAttrs {
|
|
47
|
+
/** 없으면 `'note'`. */
|
|
48
|
+
variant?: CalloutVariant;
|
|
49
|
+
}
|
|
30
50
|
/** 이미지 블록(<figure><img>). */
|
|
31
51
|
export interface ImageAttrs {
|
|
32
52
|
src?: string;
|
|
@@ -111,6 +131,8 @@ export interface BlockAttrsByKind {
|
|
|
111
131
|
taskList: TaskListAttrs;
|
|
112
132
|
blockquote: BlockquoteAttrs;
|
|
113
133
|
codeBlock: CodeBlockAttrs;
|
|
134
|
+
toggle: ToggleAttrs;
|
|
135
|
+
callout: CalloutAttrs;
|
|
114
136
|
image: ImageAttrs;
|
|
115
137
|
table: TableAttrs;
|
|
116
138
|
hr: HrAttrs;
|
|
@@ -126,7 +148,7 @@ export interface BlockAttrsByKind {
|
|
|
126
148
|
* 외부에서 직렬화된 BlockSnapshot 의 attrs 는 BlockAttrsByKind[kind] 로 더
|
|
127
149
|
* 구체적으로 타입이 잡힌다 — 아래 BlockSnapshot 의 discriminated union 참고.
|
|
128
150
|
*/
|
|
129
|
-
export interface BlockAttrs extends Partial<HeadingAttrs>, Partial<BulletListAttrs>, Partial<OrderedListAttrs>, Partial<CodeBlockAttrs>, Partial<ImageAttrs>, Partial<TableAttrs>, Partial<LinkCardAttrs>, Partial<YoutubeAttrs>, Partial<FileAttrs>, Partial<ImportedHtmlAttrs>, Partial<UnknownAttrs> {
|
|
151
|
+
export interface BlockAttrs extends Partial<HeadingAttrs>, Partial<BulletListAttrs>, Partial<OrderedListAttrs>, Partial<CodeBlockAttrs>, Partial<ToggleAttrs>, Partial<CalloutAttrs>, Partial<ImageAttrs>, Partial<TableAttrs>, Partial<LinkCardAttrs>, Partial<YoutubeAttrs>, Partial<FileAttrs>, Partial<ImportedHtmlAttrs>, Partial<UnknownAttrs> {
|
|
130
152
|
}
|
|
131
153
|
/**
|
|
132
154
|
* BlockType.matches() 의 반환 타입. 내부 사용은 느슨한 BlockAttrs 로 두고,
|
|
@@ -144,7 +166,7 @@ export interface Block {
|
|
|
144
166
|
element: HTMLElement;
|
|
145
167
|
}
|
|
146
168
|
/** 인라인 서식 마크 식별자. */
|
|
147
|
-
export type InlineMarkName = 'bold' | 'italic' | 'underline' | 'strike';
|
|
169
|
+
export type InlineMarkName = 'bold' | 'italic' | 'underline' | 'strike' | 'superscript' | 'subscript';
|
|
148
170
|
export declare const ALL_INLINE_MARKS: ReadonlyArray<InlineMarkName>;
|
|
149
171
|
/**
|
|
150
172
|
* 블록 정의. 같은 kind 의 BlockType 은 1개만 등록한다.
|
|
@@ -173,6 +195,10 @@ export interface BlockType {
|
|
|
173
195
|
/** "비어 있는" 상태인지. 백스페이스 / 포커스 / placeholder 처리에 사용. */
|
|
174
196
|
isEmpty(el: HTMLElement): boolean;
|
|
175
197
|
}
|
|
198
|
+
/** 콜아웃 element 에서 종류를 읽는다. 클래스가 없거나 모르면 `'note'`. */
|
|
199
|
+
export declare function readCalloutVariant(el: HTMLElement): CalloutVariant;
|
|
200
|
+
/** 콜아웃 element 의 종류 클래스를 갈아 끼운다. 다른 클래스는 건드리지 않는다. */
|
|
201
|
+
export declare function applyCalloutVariant(el: HTMLElement, variant: CalloutVariant): void;
|
|
176
202
|
/**
|
|
177
203
|
* 본문 직계 자식 element 를 분류할 때 시도되는 순서.
|
|
178
204
|
* 위에서부터 첫 번째로 매칭되는 BlockType 이 채택된다.
|
|
@@ -231,6 +257,15 @@ export interface NormalizeOptions {
|
|
|
231
257
|
* `false` 로 꺼서 없던 빈 단락이 결과에 끼어들지 않게 한다.
|
|
232
258
|
*/
|
|
233
259
|
writableTail?: boolean;
|
|
260
|
+
/**
|
|
261
|
+
* 이 블록들(본문 직계 자식) 안쪽만 정규화한다. 생략하면 본문 전체.
|
|
262
|
+
*
|
|
263
|
+
* 타이핑 한 번에 바뀌는 블록은 보통 하나다. 문서 전체를 매번 훑으면
|
|
264
|
+
* 190쪽 문서에서 키 하나에 수십 ms 가 든다 — 에디터는 MutationRecord 로
|
|
265
|
+
* 바뀐 블록만 골라 넘긴다. 본문 직계의 떠도는 텍스트 감싸기와 꼬리 단락
|
|
266
|
+
* 보장은 범위와 상관없이 언제나 한다.
|
|
267
|
+
*/
|
|
268
|
+
blocks?: Iterable<HTMLElement>;
|
|
234
269
|
}
|
|
235
270
|
export declare function normalizeContent(root: HTMLElement, options?: NormalizeOptions): void;
|
|
236
271
|
/**
|
|
@@ -385,7 +420,7 @@ export declare function applyBlockClassNames(root: HTMLElement): void;
|
|
|
385
420
|
*
|
|
386
421
|
* 이미 인라인 값이 있으면 그쪽을 우선한다 — 더 구체적인 지정이다.
|
|
387
422
|
*/
|
|
388
|
-
export declare function restoreAlignFromClasses(root: HTMLElement): void;
|
|
423
|
+
export declare function restoreAlignFromClasses(root: HTMLElement, scope?: readonly HTMLElement[] | null): void;
|
|
389
424
|
/**
|
|
390
425
|
* `getHTML()` 출력에서 편집 보조 element / 속성을 제거한다.
|
|
391
426
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/core/blocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/core/blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* 글꼴
|
|
3
|
-
* 모두 SIL Open Font License 또는 자체 무제한 상용 라이선스.
|
|
2
|
+
* 글꼴 · 글자 크기 목록.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* ## 기본 목록은 "이미 깔려 있는 글꼴" 이다
|
|
5
|
+
*
|
|
6
|
+
* 1.x 는 글꼴 드롭다운을 열 때 Google Fonts 와 jsDelivr 에서 웹폰트를 받았다.
|
|
7
|
+
* 그 때문에 (1) 망이 막힌 공공 · 금융 환경에서는 목록이 비고, (2) 열 때마다
|
|
8
|
+
* 외부로 요청이 나가 개인정보 · 보안 심사에서 걸리고, (3) 받은 글꼴로 쓴 문서가
|
|
9
|
+
* 다른 PC 에서는 다른 글꼴로 보였다.
|
|
10
|
+
*
|
|
11
|
+
* 2.0 의 기본값은 한국 문서에서 실제로 쓰는 시스템 글꼴(맑은 고딕 · 굴림 · 돋움 ·
|
|
12
|
+
* 바탕 · 궁서 …) 이고, 네트워크를 쓰지 않는다. 웹폰트가 필요하면 `fonts`
|
|
13
|
+
* 옵션에 `cssUrl` 과 함께 넘긴다 — 그 글꼴만, 드롭다운을 처음 열 때 받는다.
|
|
14
|
+
*
|
|
15
|
+
* 이 PC 에 없는 글꼴(맥의 굴림 등) 은 목록에서 뺀다. 골라도 적용되지 않는
|
|
16
|
+
* 항목은 없느니만 못하다.
|
|
9
17
|
*/
|
|
10
18
|
export interface FontFamily {
|
|
11
|
-
/**
|
|
12
|
-
id: string;
|
|
13
|
-
/** 드롭다운에 표시되는 한국어 라벨. */
|
|
19
|
+
/** 드롭다운에 보이는 이름. */
|
|
14
20
|
label: string;
|
|
15
|
-
/** CSS font-family
|
|
21
|
+
/** CSS font-family 값. 첫 글꼴이 "그 글꼴" 이고 나머지는 대체 글꼴이다. */
|
|
16
22
|
stack: string;
|
|
17
|
-
/**
|
|
18
|
-
googleFonts?: string;
|
|
19
|
-
/** 외부 CDN 의 전체 CSS URL (Google Fonts 가 아닌 글꼴용). */
|
|
23
|
+
/** 웹폰트 스타일시트 주소. 있으면 드롭다운을 처음 열 때 한 번 받는다. */
|
|
20
24
|
cssUrl?: string;
|
|
21
25
|
}
|
|
22
|
-
/** "
|
|
23
|
-
export declare const
|
|
24
|
-
export declare const
|
|
25
|
-
/** id → FontFamily lookup. */
|
|
26
|
-
export declare const FONT_FAMILY_BY_ID: Readonly<Record<string, FontFamily>>;
|
|
27
|
-
/**
|
|
28
|
-
* 글자 크기 프리셋 (px). 본문 기본은 16px.
|
|
29
|
-
* 12 ~ 48px 범위에서 자주 쓰이는 단계만 큐레이션.
|
|
30
|
-
*/
|
|
31
|
-
export declare const FONT_SIZES: ReadonlyArray<number>;
|
|
32
|
-
/**
|
|
33
|
-
* Computed CSS font-size 문자열(예: "16px", "1.125rem")을 px 정수로 변환.
|
|
34
|
-
* 매칭 실패 시 null. 활성 toolbar 크기 표시에 사용.
|
|
35
|
-
*/
|
|
36
|
-
export declare function pxFromCss(css: string | null | undefined): number | null;
|
|
26
|
+
/** 목록 맨 위 "기본 글꼴" — 서식을 지워 본문 글꼴로 돌아간다. stack 이 빈 문자열이다. */
|
|
27
|
+
export declare const DEFAULT_FONT: FontFamily;
|
|
28
|
+
export declare const DEFAULT_FONTS: ReadonlyArray<FontFamily>;
|
|
37
29
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* `FONT_FAMILIES` 전체는 그대로 남겨 둔다 — 이미 그 글꼴로 저장된 본문의
|
|
41
|
-
* 라벨을 표시하려면(`findFontIdFromCss`) 실패한 항목도 알고 있어야 한다.
|
|
30
|
+
* 글자 크기(pt). 한글 · 워드와 같은 단위다 — 붙여넣은 문서의 10pt 가 목록의
|
|
31
|
+
* 10 과 그대로 맞는다. 에디터 본문 기본 크기 16px 는 12pt 다.
|
|
42
32
|
*/
|
|
43
|
-
export declare
|
|
44
|
-
/**
|
|
33
|
+
export declare const DEFAULT_FONT_SIZES: ReadonlyArray<number>;
|
|
34
|
+
/** CSS 글자 크기(computed 값은 px) → pt, 0.5 단위로 반올림. */
|
|
35
|
+
export declare function ptFromCss(css: string | null | undefined): number | null;
|
|
36
|
+
/** `fonts` 중 지금 쓸 수 있는 것. 드롭다운은 이 목록으로 그린다. */
|
|
37
|
+
export declare function availableFonts(fonts: ReadonlyArray<FontFamily>): FontFamily[];
|
|
38
|
+
/** 쓸 수 있는 목록이 바뀌면 호출된다. 반환값을 부르면 구독이 해제된다. */
|
|
45
39
|
export declare function subscribeFontAvailability(listener: () => void): () => void;
|
|
46
40
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* 실패는 조용히 넘어가지 않는다 — 받지 못한 글꼴은 목록에서 빠진다.
|
|
51
|
-
*/
|
|
52
|
-
export declare function ensureFontFamiliesLoaded(): void;
|
|
53
|
-
/**
|
|
54
|
-
* 임의의 CSS font-family 문자열에 대해 FONT_FAMILIES 중 가장 비슷한 항목을
|
|
55
|
-
* 찾아 id 를 반환. 매칭 실패 시 null. 활성 toolbar 표시에 사용.
|
|
56
|
-
*
|
|
57
|
-
* 비교는 stack 의 첫 family 토큰을 추출해 case-insensitive 비교.
|
|
41
|
+
* 드롭다운을 열 때 부른다. 웹폰트(`cssUrl`) 는 그때 한 번 받고, 시스템 글꼴은
|
|
42
|
+
* 이 PC 에 있는지 확인한다. 같은 글꼴은 두 번 확인하지 않는다.
|
|
58
43
|
*/
|
|
59
|
-
export declare function
|
|
44
|
+
export declare function prepareFonts(fonts: ReadonlyArray<FontFamily>): void;
|
|
45
|
+
/** CSS font-family 값이 목록의 어느 글꼴인지 (첫 글꼴 이름으로 비교). */
|
|
46
|
+
export declare function findFont(fonts: ReadonlyArray<FontFamily>, css: string | null | undefined): FontFamily | null;
|
|
60
47
|
//# sourceMappingURL=fonts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/core/fonts.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/core/fonts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4DAA4D;AAC5D,eAAO,MAAM,YAAY,EAAE,UAAqC,CAAC;AAEjE,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,UAAU,CAanD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAEpD,CAAC;AAEF,mDAAmD;AACnD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOvE;AAgBD,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,UAAU,EAAE,CAE7E;AAED,8CAA8C;AAC9C,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAK1E;AAoCD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAUnE;AA8BD,qDAAqD;AACrD,wBAAgB,QAAQ,CACtB,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,EAChC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7B,UAAU,GAAG,IAAI,CASnB"}
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
*
|
|
12
12
|
* ## 무엇을 저장하는가
|
|
13
13
|
*
|
|
14
|
-
* 본문 HTML
|
|
14
|
+
* 본문 블록별 HTML 과 캐럿 위치를 한 항목으로 저장하는 스냅샷 방식이다.
|
|
15
15
|
* 조작 단위 이력(operation log) 이 메모리는 덜 쓰지만, 되돌리기가 **정확히**
|
|
16
16
|
* 원래 화면으로 돌아간다는 보장을 얻기가 훨씬 어렵다. 스냅샷은 그 보장이
|
|
17
17
|
* 공짜다 — 문자열을 도로 넣기만 하면 된다.
|
|
18
18
|
*
|
|
19
|
-
* 캐럿은
|
|
20
|
-
*
|
|
19
|
+
* 캐럿은 "몇 번째 블록의 몇 번째 글자" 로 저장한다. 블록을 갈아끼우면 노드
|
|
20
|
+
* 참조는 무효가 되지만 이 좌표는 그대로 살아남는다.
|
|
21
21
|
*
|
|
22
22
|
* ## 언제 한 항목으로 묶는가
|
|
23
23
|
*
|
|
@@ -26,15 +26,33 @@
|
|
|
26
26
|
* 유형 변경처럼 **구조가 바뀌는 조작**은 합치지 않는다 — 그건 사용자가 한
|
|
27
27
|
* 번에 하나씩 되돌리길 기대하는 단위다.
|
|
28
28
|
*/
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* 문서 안 캐럿 위치. 블록 순번 + 그 블록 안의 글자 오프셋.
|
|
31
|
+
*
|
|
32
|
+
* 문서 맨 앞부터의 글자 수로 적으면 기록할 때마다 문서 전체 텍스트를 읽어야
|
|
33
|
+
* 한다 (190쪽 문서에서 키 하나에 수 ms). 블록 단위로 적으면 그 블록만 읽는다.
|
|
34
|
+
*/
|
|
35
|
+
export interface DocSelection {
|
|
36
|
+
startBlock: number;
|
|
37
|
+
start: number;
|
|
38
|
+
endBlock: number;
|
|
39
|
+
end: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 이력 한 칸. 본문 직계 블록마다 HTML 문자열 하나.
|
|
43
|
+
*
|
|
44
|
+
* 블록 단위로 나눠 두는 이유 — 타이핑 한 번에 바뀌는 블록은 보통 하나라서,
|
|
45
|
+
* 나머지 블록의 문자열은 **이전 칸과 같은 문자열 객체를 그대로 공유한다.**
|
|
46
|
+
* 문서 전체를 한 문자열로 저장하면 190쪽 문서에서 이력 200칸이 수십 MB 가 된다.
|
|
47
|
+
*/
|
|
30
48
|
export interface HistoryEntry {
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
end: number;
|
|
36
|
-
} | null;
|
|
49
|
+
blocks: readonly string[];
|
|
50
|
+
/** 모든 블록 문자열 길이의 합. 대량 변경 판정에 쓴다. */
|
|
51
|
+
size: number;
|
|
52
|
+
selection: DocSelection | null;
|
|
37
53
|
}
|
|
54
|
+
/** 두 칸의 내용이 같은지. 공유된 문자열은 참조 비교로 바로 끝난다. */
|
|
55
|
+
export declare function sameContent(a: HistoryEntry, b: HistoryEntry): boolean;
|
|
38
56
|
/**
|
|
39
57
|
* 이 시간 안에 이어지는 타이핑은 한 항목으로 합친다.
|
|
40
58
|
* 사람이 문장 하나를 치는 동안의 간격보다 짧게, 생각하고 다시 치기 시작하는
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/core/history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/core/history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;CAChC;AAED,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,OAAO,CAOrE;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,6CAA6C;AAC7C,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEjD,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,+CAA+C;IAC/C,OAAO,CAAC,OAAO,CAAe;IAC9B,uCAAuC;IACvC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAA4B;gBAEhC,OAAO,EAAE,YAAY;IAIjC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IA2BhE,6BAA6B;IAC7B,IAAI,IAAI,YAAY,GAAG,IAAI;IAW3B,yBAAyB;IACzB,IAAI,IAAI,YAAY,GAAG,IAAI;IAS3B,6BAA6B;IAC7B,OAAO,IAAI,YAAY;IAIvB;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;CAOjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-mini.d.ts","sourceRoot":"","sources":["../../src/core/html-mini.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC;AAwDlD,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBpD;AAED,qCAAqC;AACrC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAgBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmG1D;AAED,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAiBjE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAczD;
|
|
1
|
+
{"version":3,"file":"html-mini.d.ts","sourceRoot":"","sources":["../../src/core/html-mini.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC;AAwDlD,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBpD;AAED,qCAAqC;AACrC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAgBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmG1D;AAED,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAiBjE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAczD;AAWD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAiBtE;AAED,gCAAgC;AAChC,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,GAAG,EAAE,MAAM,GACV,eAAe,EAAE,CAInB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,GAAG,EAAE,MAAM,GACV,eAAe,GAAG,IAAI,CAQxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BlockSnapshot } from './blocks.js';
|
|
2
|
+
/**
|
|
3
|
+
* HTML 문자열을 `BlockSnapshot[]` 로 변환한다 (브라우저 전용).
|
|
4
|
+
*
|
|
5
|
+
* 에디터 본문과 같은 정화 · 정규화 경로를 타므로, 같은 HTML 을 에디터에 넣고
|
|
6
|
+
* `getSnapshots()` 한 결과와 블록 구성이 같다. 편집용 꼬리 단락은 붙이지
|
|
7
|
+
* 않는다 — 뷰어에 넘길 목록에 원본에 없던 빈 단락이 생기면 여백이 늘어난다.
|
|
8
|
+
*/
|
|
9
|
+
export declare function htmlToBlocks(html: string): BlockSnapshot[];
|
|
10
|
+
//# sourceMappingURL=html-to-blocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-to-blocks.d.ts","sourceRoot":"","sources":["../../src/core/html-to-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAU9C;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAS1D"}
|
|
@@ -21,6 +21,8 @@ export interface Strings {
|
|
|
21
21
|
italic: string;
|
|
22
22
|
underline: string;
|
|
23
23
|
strike: string;
|
|
24
|
+
superscript: string;
|
|
25
|
+
subscript: string;
|
|
24
26
|
color: string;
|
|
25
27
|
backgroundColor: string;
|
|
26
28
|
align: string;
|
|
@@ -36,6 +38,13 @@ export interface Strings {
|
|
|
36
38
|
table: string;
|
|
37
39
|
hr: string;
|
|
38
40
|
clearFormat: string;
|
|
41
|
+
lineHeight: string;
|
|
42
|
+
letterSpacing: string;
|
|
43
|
+
specialChar: string;
|
|
44
|
+
findReplace: string;
|
|
45
|
+
source: string;
|
|
46
|
+
print: string;
|
|
47
|
+
fullscreen: string;
|
|
39
48
|
blockTypeChangeTooltip: string;
|
|
40
49
|
blockMoveTooltip: string;
|
|
41
50
|
addBelowTooltip: string;
|
|
@@ -49,6 +58,8 @@ export interface Strings {
|
|
|
49
58
|
taskList: string;
|
|
50
59
|
blockquote: string;
|
|
51
60
|
codeBlock: string;
|
|
61
|
+
toggle: string;
|
|
62
|
+
callout: string;
|
|
52
63
|
image: string;
|
|
53
64
|
table: string;
|
|
54
65
|
hr: string;
|
|
@@ -68,6 +79,8 @@ export interface Strings {
|
|
|
68
79
|
orderedList: string;
|
|
69
80
|
blockquote: string;
|
|
70
81
|
codeBlock: string;
|
|
82
|
+
toggle: string;
|
|
83
|
+
callout: string;
|
|
71
84
|
hr: string;
|
|
72
85
|
link: string;
|
|
73
86
|
image: string;
|
|
@@ -95,6 +108,37 @@ export interface Strings {
|
|
|
95
108
|
colRight: string;
|
|
96
109
|
deleteRow: string;
|
|
97
110
|
deleteCol: string;
|
|
111
|
+
mergeCells: string;
|
|
112
|
+
splitCell: string;
|
|
113
|
+
};
|
|
114
|
+
docTools: {
|
|
115
|
+
/** 본문 편집 영역의 접근성 이름. `ariaLabel` 옵션이 없을 때 쓴다. */
|
|
116
|
+
editorLabel: string;
|
|
117
|
+
find: string;
|
|
118
|
+
replaceWith: string;
|
|
119
|
+
previous: string;
|
|
120
|
+
next: string;
|
|
121
|
+
replace: string;
|
|
122
|
+
replaceAll: string;
|
|
123
|
+
close: string;
|
|
124
|
+
/** `{current}` / `{total}`. */
|
|
125
|
+
matchCount: string;
|
|
126
|
+
noMatch: string;
|
|
127
|
+
/** `{count}` 건을 바꿨을 때. */
|
|
128
|
+
replaced: string;
|
|
129
|
+
matchCase: string;
|
|
130
|
+
sourceLabel: string;
|
|
131
|
+
letterSpacingNormal: string;
|
|
132
|
+
/** `{size}` — 올릴 수 있는 최대 크기. */
|
|
133
|
+
tooLarge: string;
|
|
134
|
+
specialGroups: {
|
|
135
|
+
symbols: string;
|
|
136
|
+
arrows: string;
|
|
137
|
+
numbers: string;
|
|
138
|
+
units: string;
|
|
139
|
+
brackets: string;
|
|
140
|
+
math: string;
|
|
141
|
+
};
|
|
98
142
|
};
|
|
99
143
|
fontFamily: {
|
|
100
144
|
systemDefault: string;
|