@cherry-markdown/cherry-markdown-dev 0.8.58-dev
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/package.json +149 -0
- package/src/Cherry.config.js +625 -0
- package/src/Cherry.js +1104 -0
- package/src/CherryStatic.js +70 -0
- package/src/Editor.js +748 -0
- package/src/Engine.js +381 -0
- package/src/Event.js +140 -0
- package/src/Factory.js +180 -0
- package/src/Logger.js +31 -0
- package/src/Previewer.js +1183 -0
- package/src/Sanitizer.js +4 -0
- package/src/Sanitizer.node.js +7 -0
- package/src/UrlCache.js +98 -0
- package/src/addons/advance/cherry-table-echarts-plugin.js +170 -0
- package/src/addons/cherry-code-block-mermaid-plugin.js +158 -0
- package/src/addons/cherry-code-block-plantuml-plugin.js +106 -0
- package/src/core/HookCenter.js +297 -0
- package/src/core/HooksConfig.js +100 -0
- package/src/core/ParagraphBase.js +332 -0
- package/src/core/SentenceBase.js +65 -0
- package/src/core/SyntaxBase.js +194 -0
- package/src/core/hooks/AutoLink.js +232 -0
- package/src/core/hooks/BackgroundColor.js +46 -0
- package/src/core/hooks/Blockquote.js +70 -0
- package/src/core/hooks/Br.js +85 -0
- package/src/core/hooks/CodeBlock.js +446 -0
- package/src/core/hooks/Color.js +46 -0
- package/src/core/hooks/CommentReference.js +96 -0
- package/src/core/hooks/Detail.js +108 -0
- package/src/core/hooks/Emoji.config.js +1825 -0
- package/src/core/hooks/Emoji.js +119 -0
- package/src/core/hooks/Emphasis.js +113 -0
- package/src/core/hooks/Footnote.js +125 -0
- package/src/core/hooks/FrontMatter.js +51 -0
- package/src/core/hooks/Header.js +234 -0
- package/src/core/hooks/HighLight.js +37 -0
- package/src/core/hooks/Hr.js +52 -0
- package/src/core/hooks/HtmlBlock.js +184 -0
- package/src/core/hooks/Image.js +174 -0
- package/src/core/hooks/InlineCode.js +48 -0
- package/src/core/hooks/InlineMath.js +107 -0
- package/src/core/hooks/Link.js +160 -0
- package/src/core/hooks/List.js +264 -0
- package/src/core/hooks/MathBlock.js +103 -0
- package/src/core/hooks/Panel.js +145 -0
- package/src/core/hooks/Paragraph.js +84 -0
- package/src/core/hooks/Ruby.js +34 -0
- package/src/core/hooks/Size.js +51 -0
- package/src/core/hooks/Strikethrough.js +54 -0
- package/src/core/hooks/Sub.js +47 -0
- package/src/core/hooks/SuggestList.js +333 -0
- package/src/core/hooks/Suggester.js +707 -0
- package/src/core/hooks/Sup.js +47 -0
- package/src/core/hooks/Table.js +275 -0
- package/src/core/hooks/Toc.js +292 -0
- package/src/core/hooks/Transfer.js +47 -0
- package/src/core/hooks/Underline.js +37 -0
- package/src/index.core.js +29 -0
- package/src/index.engine.core.js +68 -0
- package/src/index.engine.js +28 -0
- package/src/index.js +32 -0
- package/src/libs/mermaidAPI.8.4.8.js +1 -0
- package/src/libs/mermaidAPI.8.5.2.js +42 -0
- package/src/libs/rawdeflate.js +1663 -0
- package/src/locales/en_US.js +139 -0
- package/src/locales/index.js +25 -0
- package/src/locales/ru_RU.js +139 -0
- package/src/locales/zh_CN.js +142 -0
- package/src/sass/base.scss +26 -0
- package/src/sass/bubble_formula.scss +166 -0
- package/src/sass/ch-icon.scss +118 -0
- package/src/sass/cherry.scss +1116 -0
- package/src/sass/components/bubble.scss +173 -0
- package/src/sass/components/shortcut_key_config.scss +108 -0
- package/src/sass/formula_utils_bubble.scss +82 -0
- package/src/sass/icon_template.scss +24 -0
- package/src/sass/icons/uEA03-list.svg +19 -0
- package/src/sass/icons/uEA04-check.svg +14 -0
- package/src/sass/icons/uEA09-square.svg +10 -0
- package/src/sass/icons/uEA0A-bold.svg +20 -0
- package/src/sass/icons/uEA0B-code.svg +18 -0
- package/src/sass/icons/uEA0C-color.svg +13 -0
- package/src/sass/icons/uEA0D-header.svg +8 -0
- package/src/sass/icons/uEA0E-image.svg +15 -0
- package/src/sass/icons/uEA0F-italic.svg +8 -0
- package/src/sass/icons/uEA10-link.svg +16 -0
- package/src/sass/icons/uEA11-ol.svg +21 -0
- package/src/sass/icons/uEA12-size.svg +11 -0
- package/src/sass/icons/uEA13-strike.svg +16 -0
- package/src/sass/icons/uEA14-table.svg +12 -0
- package/src/sass/icons/uEA15-ul.svg +17 -0
- package/src/sass/icons/uEA16-underline.svg +13 -0
- package/src/sass/icons/uEA17-word.svg +16 -0
- package/src/sass/icons/uEA18-blockquote.svg +11 -0
- package/src/sass/icons/uEA19-font.svg +10 -0
- package/src/sass/icons/uEA1F-insertClass.svg +39 -0
- package/src/sass/icons/uEA20-insertFlow.svg +8 -0
- package/src/sass/icons/uEA21-insertFormula.svg +23 -0
- package/src/sass/icons/uEA22-insertGantt.svg +13 -0
- package/src/sass/icons/uEA23-insertGraph.svg +13 -0
- package/src/sass/icons/uEA24-insertPie.svg +19 -0
- package/src/sass/icons/uEA25-insertSeq.svg +20 -0
- package/src/sass/icons/uEA26-insertState.svg +35 -0
- package/src/sass/icons/uEA27-line.svg +11 -0
- package/src/sass/icons/uEA28-preview.svg +18 -0
- package/src/sass/icons/uEA29-previewClose.svg +24 -0
- package/src/sass/icons/uEA2A-toc.svg +24 -0
- package/src/sass/icons/uEA2D-sub.svg +15 -0
- package/src/sass/icons/uEA2E-sup.svg +15 -0
- package/src/sass/icons/uEA2F-h1.svg +16 -0
- package/src/sass/icons/uEA30-h2.svg +20 -0
- package/src/sass/icons/uEA31-h3.svg +23 -0
- package/src/sass/icons/uEA32-h4.svg +16 -0
- package/src/sass/icons/uEA33-h5.svg +20 -0
- package/src/sass/icons/uEA34-h6.svg +17 -0
- package/src/sass/icons/uEA35-video.svg +20 -0
- package/src/sass/icons/uEA36-insert.svg +25 -0
- package/src/sass/icons/uEA37-little_table.svg +30 -0
- package/src/sass/icons/uEA38-pdf.svg +27 -0
- package/src/sass/icons/uEA39-checklist.svg +22 -0
- package/src/sass/icons/uEA40-close.svg +12 -0
- package/src/sass/icons/uEA41-fullscreen.svg +81 -0
- package/src/sass/icons/uEA42-minscreen.svg +77 -0
- package/src/sass/icons/uEA43-insertChart.svg +23 -0
- package/src/sass/icons/uEA44-question.svg +25 -0
- package/src/sass/icons/uEA45-settings.svg +32 -0
- package/src/sass/icons/uEA46-ok.svg +7 -0
- package/src/sass/icons/uEA47-br.svg +22 -0
- package/src/sass/icons/uEA48-normal.svg +15 -0
- package/src/sass/icons/uEA49-undo.svg +19 -0
- package/src/sass/icons/uEA50-redo.svg +21 -0
- package/src/sass/icons/uEA51-copy.svg +6 -0
- package/src/sass/icons/uEA52-phone.svg +5 -0
- package/src/sass/icons/uEA53-cherry-table-delete.svg +17 -0
- package/src/sass/icons/uEA54-cherry-table-insert-bottom.svg +16 -0
- package/src/sass/icons/uEA55-cherry-table-insert-left.svg +15 -0
- package/src/sass/icons/uEA56-cherry-table-insert-right.svg +16 -0
- package/src/sass/icons/uEA57-cherry-table-insert-top.svg +16 -0
- package/src/sass/icons/uEA58-sort-s.svg +13 -0
- package/src/sass/icons/uEA59-pinyin.svg +1 -0
- package/src/sass/icons/uEA5A-create.svg +24 -0
- package/src/sass/icons/uEA5B-download.svg +34 -0
- package/src/sass/icons/uEA5C-edit.svg +3 -0
- package/src/sass/icons/uEA5D-export.svg +53 -0
- package/src/sass/icons/uEA5E-folder-open.svg +3 -0
- package/src/sass/icons/uEA5F-folder.svg +3 -0
- package/src/sass/icons/uEA60-help.svg +5 -0
- package/src/sass/icons/uEA61-pen-fill.svg +13 -0
- package/src/sass/icons/uEA62-pen.svg +3 -0
- package/src/sass/icons/uEA64-tips.svg +5 -0
- package/src/sass/icons/uEA65-warn.svg +5 -0
- package/src/sass/icons/uEA66-mistake.svg +4 -0
- package/src/sass/icons/uEA67-success.svg +4 -0
- package/src/sass/icons/uEA68-danger.svg +4 -0
- package/src/sass/icons/uEA69-info.svg +5 -0
- package/src/sass/icons/uEA6A-primary.svg +5 -0
- package/src/sass/icons/uEA6B-warning.svg +5 -0
- package/src/sass/icons/uEA6C-justify.svg +19 -0
- package/src/sass/icons/uEA6D-justifyCenter.svg +19 -0
- package/src/sass/icons/uEA6E-justifyLeft.svg +19 -0
- package/src/sass/icons/uEA6F-justifyRight.svg +19 -0
- package/src/sass/icons/uEA70-chevronsLeft.svg +1 -0
- package/src/sass/icons/uEA71-chevronsRight.svg +1 -0
- package/src/sass/icons/uEA72-trendingUp.svg +1 -0
- package/src/sass/icons/uEA74-codeBlock.svg +1 -0
- package/src/sass/icons/uEA75-expand.svg +3 -0
- package/src/sass/icons/uEA76-unExpand.svg +3 -0
- package/src/sass/icons/uEA77-swap-vert.svg +1 -0
- package/src/sass/icons/uEA78-swap.svg +1 -0
- package/src/sass/icons/uEA79-keyboard.svg +1 -0
- package/src/sass/icons/uEA7A-command.svg +1 -0
- package/src/sass/icons/uEA7B-search.svg +1 -0
- package/src/sass/index.scss +3 -0
- package/src/sass/markdown.scss +668 -0
- package/src/sass/markdown_pure.scss +9 -0
- package/src/sass/prettyprint/prettyprint.scss +118 -0
- package/src/sass/previewer.scss +179 -0
- package/src/sass/print.scss +13 -0
- package/src/sass/prism/coy.scss +220 -0
- package/src/sass/prism/dark.scss +132 -0
- package/src/sass/prism/default.scss +143 -0
- package/src/sass/prism/funky.scss +133 -0
- package/src/sass/prism/okaidia.scss +126 -0
- package/src/sass/prism/one-dark.scss +440 -0
- package/src/sass/prism/one-light.scss +428 -0
- package/src/sass/prism/solarized-light.scss +153 -0
- package/src/sass/prism/tomorrow-night.scss +125 -0
- package/src/sass/prism/twilight.scss +202 -0
- package/src/sass/prism/vs-dark.scss +275 -0
- package/src/sass/prism/vs-light.scss +168 -0
- package/src/sass/themes/blue.scss +411 -0
- package/src/sass/themes/dark.scss +517 -0
- package/src/sass/themes/default.scss +255 -0
- package/src/sass/themes/green.scss +395 -0
- package/src/sass/themes/light.scss +368 -0
- package/src/sass/themes/red.scss +397 -0
- package/src/sass/themes/violet.scss +410 -0
- package/src/sass/variable.scss +84 -0
- package/src/toolbars/Bubble.js +234 -0
- package/src/toolbars/BubbleFormula.js +298 -0
- package/src/toolbars/BubbleTable.js +147 -0
- package/src/toolbars/FloatMenu.js +131 -0
- package/src/toolbars/HiddenToolbar.js +36 -0
- package/src/toolbars/HookCenter.js +234 -0
- package/src/toolbars/MenuBase.js +569 -0
- package/src/toolbars/PreviewerBubble.js +608 -0
- package/src/toolbars/ShortcutKeyConfigPanel.js +345 -0
- package/src/toolbars/Sidebar.js +36 -0
- package/src/toolbars/Toc.js +242 -0
- package/src/toolbars/Toolbar.js +449 -0
- package/src/toolbars/ToolbarRight.js +37 -0
- package/src/toolbars/hooks/Audio.js +79 -0
- package/src/toolbars/hooks/BarTable.js +41 -0
- package/src/toolbars/hooks/Bold.js +73 -0
- package/src/toolbars/hooks/Br.js +34 -0
- package/src/toolbars/hooks/ChangeLocale.js +62 -0
- package/src/toolbars/hooks/ChatGpt.js +182 -0
- package/src/toolbars/hooks/CheckList.js +41 -0
- package/src/toolbars/hooks/Code.js +49 -0
- package/src/toolbars/hooks/CodeTheme.js +66 -0
- package/src/toolbars/hooks/Color.js +298 -0
- package/src/toolbars/hooks/Copy.js +141 -0
- package/src/toolbars/hooks/Detail.js +69 -0
- package/src/toolbars/hooks/DrawIo.js +57 -0
- package/src/toolbars/hooks/Export.js +49 -0
- package/src/toolbars/hooks/File.js +79 -0
- package/src/toolbars/hooks/Formula.js +69 -0
- package/src/toolbars/hooks/FullScreen.js +50 -0
- package/src/toolbars/hooks/Graph.js +263 -0
- package/src/toolbars/hooks/H1.js +71 -0
- package/src/toolbars/hooks/H2.js +71 -0
- package/src/toolbars/hooks/H3.js +71 -0
- package/src/toolbars/hooks/Header.js +118 -0
- package/src/toolbars/hooks/Hr.js +35 -0
- package/src/toolbars/hooks/Image.js +91 -0
- package/src/toolbars/hooks/InlineCode.js +53 -0
- package/src/toolbars/hooks/Insert.js +193 -0
- package/src/toolbars/hooks/Italic.js +72 -0
- package/src/toolbars/hooks/Justify.js +49 -0
- package/src/toolbars/hooks/LineTable.js +41 -0
- package/src/toolbars/hooks/Link.js +49 -0
- package/src/toolbars/hooks/List.js +55 -0
- package/src/toolbars/hooks/MobilePreview.js +44 -0
- package/src/toolbars/hooks/Ol.js +41 -0
- package/src/toolbars/hooks/Panel.js +140 -0
- package/src/toolbars/hooks/Pdf.js +78 -0
- package/src/toolbars/hooks/Publish.js +123 -0
- package/src/toolbars/hooks/QuickTable.js +43 -0
- package/src/toolbars/hooks/Quote.js +45 -0
- package/src/toolbars/hooks/Redo.js +33 -0
- package/src/toolbars/hooks/Ruby.js +59 -0
- package/src/toolbars/hooks/Search.js +53 -0
- package/src/toolbars/hooks/Settings.js +220 -0
- package/src/toolbars/hooks/ShortcutKey.js +62 -0
- package/src/toolbars/hooks/Size.js +118 -0
- package/src/toolbars/hooks/Split.js +37 -0
- package/src/toolbars/hooks/Strikethrough.js +71 -0
- package/src/toolbars/hooks/Sub.js +58 -0
- package/src/toolbars/hooks/Sup.js +58 -0
- package/src/toolbars/hooks/SwitchModel.js +56 -0
- package/src/toolbars/hooks/Table.js +56 -0
- package/src/toolbars/hooks/Theme.js +62 -0
- package/src/toolbars/hooks/Toc.js +35 -0
- package/src/toolbars/hooks/TogglePreview.js +91 -0
- package/src/toolbars/hooks/Ul.js +41 -0
- package/src/toolbars/hooks/Underline.js +68 -0
- package/src/toolbars/hooks/Undo.js +30 -0
- package/src/toolbars/hooks/Video.js +79 -0
- package/src/toolbars/hooks/Word.js +78 -0
- package/src/toolbars/hooks/WordCount.js +106 -0
- package/src/utils/autoindent.js +58 -0
- package/src/utils/cm-search-replace.js +794 -0
- package/src/utils/code-preview-language-setting.js +180 -0
- package/src/utils/codeBlockContentHandler.js +400 -0
- package/src/utils/config.js +174 -0
- package/src/utils/copy.js +55 -0
- package/src/utils/dialog.js +214 -0
- package/src/utils/dom.js +163 -0
- package/src/utils/downloadUtil.js +23 -0
- package/src/utils/env.js +22 -0
- package/src/utils/error.js +61 -0
- package/src/utils/event.js +38 -0
- package/src/utils/export.js +166 -0
- package/src/utils/file.js +164 -0
- package/src/utils/formulaUtilsHandler.js +232 -0
- package/src/utils/htmlparser.js +976 -0
- package/src/utils/image.js +99 -0
- package/src/utils/imgSizeHandler.js +279 -0
- package/src/utils/lazyLoadImg.js +327 -0
- package/src/utils/lineFeed.js +49 -0
- package/src/utils/listContentHandler.js +227 -0
- package/src/utils/lookbehind-replace.js +81 -0
- package/src/utils/mathjax.js +89 -0
- package/src/utils/myersDiff.js +211 -0
- package/src/utils/pasteHelper.js +253 -0
- package/src/utils/platformTransform.js +71 -0
- package/src/utils/recount-pos.js +59 -0
- package/src/utils/regexp.js +295 -0
- package/src/utils/sanitize.js +477 -0
- package/src/utils/selection.js +50 -0
- package/src/utils/shortcutKey.js +291 -0
- package/src/utils/svgUtils.js +96 -0
- package/src/utils/tableContentHandler.js +876 -0
- package/test/core/CommonMark.spec.ts +62 -0
- package/test/core/hooks/AutoLink.spec.ts +28 -0
- package/test/core/hooks/List.spec.ts +79 -0
- package/test/core/hooks/__snapshots__/List.spec.ts.snap +11 -0
- package/test/example.md +778 -0
- package/test/node.js +10 -0
- package/test/suites/commonmark.spec.json +5218 -0
- package/test/tsconfig.test.json +6 -0
- package/test/utils/regexp.spec.ts +28 -0
- package/types/cherry.d.ts +675 -0
- package/types/codemirror.d.ts +22 -0
- package/types/editor.d.ts +72 -0
- package/types/global.d.ts +16 -0
- package/types/menus.d.ts +24 -0
- package/types/previewer.d.ts +53 -0
- package/types/syntax.d.ts +52 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2021 THL A29 Limited, a Tencent company.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import CodeMirror from 'codemirror';
|
|
17
|
+
import Cherry from '../src/Cherry.js';
|
|
18
|
+
import { EditorMode } from './cherry.js';
|
|
19
|
+
|
|
20
|
+
interface EditorEventMap {
|
|
21
|
+
onBlur: FocusEvent;
|
|
22
|
+
onFocus: FocusEvent;
|
|
23
|
+
onKeydown: KeyboardEvent;
|
|
24
|
+
onPaste: ClipboardEvent;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
type EditorDefaultCallback = () => void;
|
|
28
|
+
export type EditorEventCallback<
|
|
29
|
+
E = unknown,
|
|
30
|
+
K extends keyof EditorEventMap = keyof EditorEventMap
|
|
31
|
+
> = E extends EditorEventMap[K]
|
|
32
|
+
? (event: E, codemirror: CodeMirror.Editor) => void
|
|
33
|
+
: (codemirror: CodeMirror.Editor) => void;
|
|
34
|
+
|
|
35
|
+
type EditorPasteEventHandler = (
|
|
36
|
+
event: ClipboardEvent,
|
|
37
|
+
clipboardData: ClipboardEvent['clipboardData'],
|
|
38
|
+
codemirror: CodeMirror.Editor,
|
|
39
|
+
) => void;
|
|
40
|
+
|
|
41
|
+
export type EditorConfiguration = {
|
|
42
|
+
id?: string; // textarea 的id属性值
|
|
43
|
+
name?: string; // textarea 的name属性值
|
|
44
|
+
autoSave2Textarea?: boolean; // 是否自动将编辑区的内容回写到textarea里
|
|
45
|
+
editorDom: HTMLElement;
|
|
46
|
+
wrapperDom: HTMLElement;
|
|
47
|
+
toolbars: any;
|
|
48
|
+
value?: string;
|
|
49
|
+
convertWhenPaste?: boolean;
|
|
50
|
+
keyMap?: 'sublime' | 'vim'; // 快捷键风格,目前仅支持 sublime 和 vim
|
|
51
|
+
keepDocumentScrollAfterInit?: boolean;
|
|
52
|
+
/** 是否高亮全角符号 ·|¥|、|:|“|”|【|】|(|)|《|》 */
|
|
53
|
+
showFullWidthMark?: boolean;
|
|
54
|
+
/** 是否显示联想框 */
|
|
55
|
+
showSuggestList?: boolean;
|
|
56
|
+
codemirror: CodeMirror.EditorConfiguration;
|
|
57
|
+
onKeydown: EditorEventCallback<EditorEventMap['onKeydown']>;
|
|
58
|
+
onFocus: EditorEventCallback<EditorEventMap['onFocus']>;
|
|
59
|
+
onBlur: EditorEventCallback<EditorEventMap['onBlur']>;
|
|
60
|
+
onPaste: EditorEventCallback<EditorEventMap['onPaste']>;
|
|
61
|
+
onChange: (changeList: CodeMirror.EditorChangeLinkedList, codemirror: CodeMirror.Editor) => void;
|
|
62
|
+
onScroll: EditorEventCallback;
|
|
63
|
+
handlePaste?: EditorPasteEventHandler;
|
|
64
|
+
/** 预览区域跟随编辑器光标自动滚动 */
|
|
65
|
+
autoScrollByCursor: boolean;
|
|
66
|
+
fileUpload?: (file: File, callback: (fileUrl: string) => void) => void;
|
|
67
|
+
$cherry?: Cherry;
|
|
68
|
+
/** 书写风格,normal 普通 | typewriter 打字机 | focus 专注,默认normal */
|
|
69
|
+
writingStyle?: string;
|
|
70
|
+
/** 编辑器初始化后的模式 */
|
|
71
|
+
defaultModel?: EditorMode;
|
|
72
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import Mermaid from 'mermaid';
|
|
2
|
+
|
|
3
|
+
// for IE
|
|
4
|
+
export {};
|
|
5
|
+
|
|
6
|
+
declare global {
|
|
7
|
+
const BUILD_ENV: string;
|
|
8
|
+
interface Window {
|
|
9
|
+
// for IE
|
|
10
|
+
clipboardData: ClipboardEvent['clipboardData'];
|
|
11
|
+
mermaid?: typeof Mermaid;
|
|
12
|
+
mermaidAPI?: typeof Mermaid['mermaidAPI'];
|
|
13
|
+
echarts?: echarts.ECharts;
|
|
14
|
+
MathJax?: any;
|
|
15
|
+
}
|
|
16
|
+
}
|
package/types/menus.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type MenuIconType = 'svg' | 'iconfont' | 'image' | 'element';
|
|
2
|
+
|
|
3
|
+
export interface CustomMenuIcon {
|
|
4
|
+
type: MenuIconType;
|
|
5
|
+
/**
|
|
6
|
+
* 如果 type 为 'svg',则该属性为 svg 文件内容
|
|
7
|
+
* 如果 type 为 'iconfont',则该属性为 iconfont 类名(请确保已引入字体)
|
|
8
|
+
* 如果 type 为 'image',则该属性为img元素的src属性
|
|
9
|
+
*/
|
|
10
|
+
content: string;
|
|
11
|
+
/**
|
|
12
|
+
* 除了 iconfont 外,其他类型可以设置该属性来改变图标的内联样式
|
|
13
|
+
*/
|
|
14
|
+
iconStyle?: string;
|
|
15
|
+
/** 设置class属性 */
|
|
16
|
+
iconClassName?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type IconElement<T extends HTMLElement = HTMLElement> = T;
|
|
20
|
+
|
|
21
|
+
export interface CustomMenuConfig {
|
|
22
|
+
name: string;
|
|
23
|
+
icon: string | CustomMenuIcon | IconElement;
|
|
24
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import Cherry from '../src/Cherry.js';
|
|
2
|
+
export type AfterUpdateCallbackFunc = () => void;
|
|
3
|
+
|
|
4
|
+
export interface PreviewerOptions {
|
|
5
|
+
/** previewer 绑定的 DOM */
|
|
6
|
+
previewerDom: HTMLDivElement;
|
|
7
|
+
/** editor或previewer所占宽度比例的最小值 */
|
|
8
|
+
minBlockPercentage: number;
|
|
9
|
+
/** */
|
|
10
|
+
value: string;
|
|
11
|
+
/** */
|
|
12
|
+
afterUpdateCallBack: AfterUpdateCallbackFunc[];
|
|
13
|
+
/** */
|
|
14
|
+
isPreviewOnly: boolean;
|
|
15
|
+
/** */
|
|
16
|
+
previewerCache: {
|
|
17
|
+
html: string;
|
|
18
|
+
htmlChanged: boolean;
|
|
19
|
+
layout: Record<string, any>;
|
|
20
|
+
};
|
|
21
|
+
/** */
|
|
22
|
+
virtualDragLineDom: HTMLDivElement;
|
|
23
|
+
/** */
|
|
24
|
+
editorMaskDom: HTMLDivElement;
|
|
25
|
+
/** */
|
|
26
|
+
previewerMaskDom: HTMLDivElement;
|
|
27
|
+
/** 是否开启预览区域菜单 */
|
|
28
|
+
enablePreviewerBubble?: boolean;
|
|
29
|
+
// 是否在关闭预览区时,将预览区浮动
|
|
30
|
+
floatWhenClosePreviewer?: boolean;
|
|
31
|
+
$cherry?: Cherry;
|
|
32
|
+
// 配置图片懒加载的逻辑
|
|
33
|
+
lazyLoadImg?: {
|
|
34
|
+
// 加载图片时如果需要展示loaing图,则配置loading图的地址
|
|
35
|
+
loadingImgPath?: string;
|
|
36
|
+
// 同一时间最多有几个图片请求,最大同时加载6张图片
|
|
37
|
+
maxNumPerTime?: 1 | 2 | 3 | 4 | 5 | 6,
|
|
38
|
+
// 不进行懒加载处理的图片数量,如果为0,即所有图片都进行懒加载处理, 如果设置为-1,则所有图片都不进行懒加载处理
|
|
39
|
+
noLoadImgNum?: number,
|
|
40
|
+
// 首次自动加载几张图片(不论图片是否滚动到视野内),autoLoadImgNum = -1 表示会自动加载完所有图片
|
|
41
|
+
autoLoadImgNum?: -1 | number;
|
|
42
|
+
// 针对加载失败的图片 或 beforeLoadOneImgCallback 返回false 的图片,最多尝试加载几次,为了防止死循环,最多5次。以图片的src为纬度统计重试次数
|
|
43
|
+
maxTryTimesPerSrc?: 0 | 1 | 2 | 3 | 4 | 5,
|
|
44
|
+
// 加载一张图片之前的回调函数,函数return false 会终止加载操作
|
|
45
|
+
beforeLoadOneImgCallback?: (img: HTMLImageElement) => void | boolean;
|
|
46
|
+
// 加载一张图片失败之后的回调函数
|
|
47
|
+
failLoadOneImgCallback?: (img: HTMLImageElement) => void;
|
|
48
|
+
// 加载一张图片之后的回调函数,如果图片加载失败,则不会回调该函数
|
|
49
|
+
afterLoadOneImgCallback?: (img: HTMLImageElement) => void;
|
|
50
|
+
// 加载完所有图片后调用的回调函数
|
|
51
|
+
afterLoadAllImgCallback?: () => void;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2021 THL A29 Limited, a Tencent company.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { CherryOptions } from './cherry';
|
|
17
|
+
|
|
18
|
+
export type HookType = 'sentence' | 'paragraph';
|
|
19
|
+
|
|
20
|
+
interface HookTypesListMap extends Record<string, HookType> {
|
|
21
|
+
SEN: 'sentence';
|
|
22
|
+
PAR: 'paragraph';
|
|
23
|
+
DEFAULT: 'sentence';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type HookTypesList<K extends keyof HookTypesListMap = keyof HookTypesListMap> = Record<K, HookTypesListMap[K]>;
|
|
27
|
+
|
|
28
|
+
export interface EditorConfig {
|
|
29
|
+
pageHooks: Record<string, any>;
|
|
30
|
+
/** hook 专用的配置 */
|
|
31
|
+
config: Record<string, any> | false;
|
|
32
|
+
/** 引擎的全局配置 */
|
|
33
|
+
globalConfig: CherryOptions['engine']['global'];
|
|
34
|
+
/** 外部依赖 */
|
|
35
|
+
externals: CherryOptions['externals'];
|
|
36
|
+
[key: string]: any;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface BasicHookRegexpRule {
|
|
40
|
+
reg: RegExp;
|
|
41
|
+
begin: string;
|
|
42
|
+
content: string;
|
|
43
|
+
end: string;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// TODO:
|
|
47
|
+
export type HookRegexpRule = {
|
|
48
|
+
begin: string;
|
|
49
|
+
end: string;
|
|
50
|
+
content: string;
|
|
51
|
+
reg?: RegExp;
|
|
52
|
+
};
|