@elia-ori/editor 0.1.25 → 0.1.27
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/README.md +41 -1
- package/dist/index.cjs +47 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +24 -1
- package/dist/index.d.ts +24 -1
- package/dist/index.js +44 -1
- package/dist/index.js.map +1 -1
- package/package.json +22 -12
package/README.md
CHANGED
|
@@ -88,11 +88,11 @@ function MyEditor() {
|
|
|
88
88
|
```ts
|
|
89
89
|
type ToolbarItem =
|
|
90
90
|
| 'undo-redo' // 復原/重做
|
|
91
|
+
| 'text' // 內文
|
|
91
92
|
| 'heading' // 標題 (H1-H4)
|
|
92
93
|
| 'list' // 列表
|
|
93
94
|
| 'blockquote' // 引用區塊
|
|
94
95
|
| 'code-block' // 程式碼區塊
|
|
95
|
-
| 'callout' // 提示區塊
|
|
96
96
|
| 'table' // 表格
|
|
97
97
|
| 'format' // 格式 (粗體、斜體、刪除線、code、底線)
|
|
98
98
|
| 'text-color' // 文字顏色
|
|
@@ -161,3 +161,43 @@ const handleImageUpload = async (file, onProgress) => {
|
|
|
161
161
|
// ...
|
|
162
162
|
/>
|
|
163
163
|
```
|
|
164
|
+
|
|
165
|
+
## TocSidebar (目錄側邊欄)
|
|
166
|
+
|
|
167
|
+
若需要顯示文章目錄,使用 `EliaEditorProvider` 包裹並加入 `TocSidebar`:
|
|
168
|
+
|
|
169
|
+
```tsx
|
|
170
|
+
import { EliaEditorProvider, EliaEditor, TocSidebar } from '@elia-ori/editor'
|
|
171
|
+
import '@elia-ori/editor/styles.css'
|
|
172
|
+
|
|
173
|
+
function MyPage() {
|
|
174
|
+
return (
|
|
175
|
+
<EliaEditorProvider>
|
|
176
|
+
<div style={{ display: 'flex', gap: '1rem' }}>
|
|
177
|
+
<TocSidebar />
|
|
178
|
+
<EliaEditor onChange={handleChange} />
|
|
179
|
+
</div>
|
|
180
|
+
</EliaEditorProvider>
|
|
181
|
+
)
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### TocSidebar Props
|
|
186
|
+
|
|
187
|
+
| Prop | Type | Description |
|
|
188
|
+
|------|------|-------------|
|
|
189
|
+
| className | string | 自訂樣式類別 |
|
|
190
|
+
|
|
191
|
+
### 自訂樣式
|
|
192
|
+
|
|
193
|
+
TocSidebar 使用 CSS 變數,可透過覆蓋來自訂樣式:
|
|
194
|
+
|
|
195
|
+
```css
|
|
196
|
+
.my-toc {
|
|
197
|
+
--toc-title-color: #1f2937;
|
|
198
|
+
--toc-link-color: #6b7280;
|
|
199
|
+
--toc-hover-color: #374151;
|
|
200
|
+
--toc-hover-bg: #f3f4f6;
|
|
201
|
+
--toc-active-color: #2563eb;
|
|
202
|
+
}
|
|
203
|
+
```
|
package/dist/index.cjs
CHANGED
|
@@ -32,7 +32,9 @@ var index_exports = {};
|
|
|
32
32
|
__export(index_exports, {
|
|
33
33
|
Callout: () => Callout,
|
|
34
34
|
EliaEditor: () => EliaEditor,
|
|
35
|
-
SimpleEditor: () => EliaEditor
|
|
35
|
+
SimpleEditor: () => EliaEditor,
|
|
36
|
+
contentExtensions: () => contentExtensions,
|
|
37
|
+
generateEditorHTML: () => generateEditorHTML
|
|
36
38
|
});
|
|
37
39
|
module.exports = __toCommonJS(index_exports);
|
|
38
40
|
|
|
@@ -6341,10 +6343,53 @@ function EliaEditor({
|
|
|
6341
6343
|
}
|
|
6342
6344
|
);
|
|
6343
6345
|
}
|
|
6346
|
+
|
|
6347
|
+
// src/utils/content-renderer.ts
|
|
6348
|
+
var import_core2 = require("@tiptap/core");
|
|
6349
|
+
var import_starter_kit2 = __toESM(require("@tiptap/starter-kit"), 1);
|
|
6350
|
+
var import_extension_text_align2 = require("@tiptap/extension-text-align");
|
|
6351
|
+
var import_extension_list2 = require("@tiptap/extension-list");
|
|
6352
|
+
var import_extension_highlight2 = require("@tiptap/extension-highlight");
|
|
6353
|
+
var import_extension_typography2 = require("@tiptap/extension-typography");
|
|
6354
|
+
var import_extension_superscript2 = require("@tiptap/extension-superscript");
|
|
6355
|
+
var import_extension_subscript2 = require("@tiptap/extension-subscript");
|
|
6356
|
+
var import_extension_text_style2 = require("@tiptap/extension-text-style");
|
|
6357
|
+
var import_extension_color2 = require("@tiptap/extension-color");
|
|
6358
|
+
var import_extension_table2 = require("@tiptap/extension-table");
|
|
6359
|
+
var import_extension_table_row2 = require("@tiptap/extension-table-row");
|
|
6360
|
+
var import_extension_table_header2 = require("@tiptap/extension-table-header");
|
|
6361
|
+
var import_extension_table_cell2 = require("@tiptap/extension-table-cell");
|
|
6362
|
+
var import_tiptap_extension_resize_image2 = __toESM(require("tiptap-extension-resize-image"), 1);
|
|
6363
|
+
var contentExtensions = [
|
|
6364
|
+
import_starter_kit2.default.configure({
|
|
6365
|
+
horizontalRule: false
|
|
6366
|
+
}),
|
|
6367
|
+
HorizontalRule,
|
|
6368
|
+
import_extension_text_align2.TextAlign.configure({ types: ["heading", "paragraph"] }),
|
|
6369
|
+
import_extension_list2.TaskList,
|
|
6370
|
+
import_extension_list2.TaskItem.configure({ nested: true }),
|
|
6371
|
+
import_extension_highlight2.Highlight.configure({ multicolor: true }),
|
|
6372
|
+
import_extension_typography2.Typography,
|
|
6373
|
+
import_extension_superscript2.Superscript,
|
|
6374
|
+
import_extension_subscript2.Subscript,
|
|
6375
|
+
import_extension_text_style2.TextStyle,
|
|
6376
|
+
import_extension_color2.Color,
|
|
6377
|
+
import_extension_table2.Table.configure({ resizable: true }),
|
|
6378
|
+
import_extension_table_row2.TableRow,
|
|
6379
|
+
import_extension_table_header2.TableHeader,
|
|
6380
|
+
import_extension_table_cell2.TableCell,
|
|
6381
|
+
import_tiptap_extension_resize_image2.default.configure({ allowBase64: true }),
|
|
6382
|
+
Callout
|
|
6383
|
+
];
|
|
6384
|
+
function generateEditorHTML(content) {
|
|
6385
|
+
return (0, import_core2.generateHTML)(content, contentExtensions);
|
|
6386
|
+
}
|
|
6344
6387
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6345
6388
|
0 && (module.exports = {
|
|
6346
6389
|
Callout,
|
|
6347
6390
|
EliaEditor,
|
|
6348
|
-
SimpleEditor
|
|
6391
|
+
SimpleEditor,
|
|
6392
|
+
contentExtensions,
|
|
6393
|
+
generateEditorHTML
|
|
6349
6394
|
});
|
|
6350
6395
|
//# sourceMappingURL=index.cjs.map
|