|
@@ -14,7 +14,7 @@ import {Preview} from "./ts/preview/index";
|
|
|
import {Resize} from "./ts/resize/index";
|
|
import {Resize} from "./ts/resize/index";
|
|
|
import {Editor} from "./ts/sv/index";
|
|
import {Editor} from "./ts/sv/index";
|
|
|
import {inputEvent} from "./ts/sv/inputEvent";
|
|
import {inputEvent} from "./ts/sv/inputEvent";
|
|
|
-import {processAfterRender as processSVAfterRender} from "./ts/sv/process";
|
|
|
|
|
|
|
+import {processAfterRender as processSVAfterRender, processPaste} from "./ts/sv/process";
|
|
|
import {Tip} from "./ts/tip/index";
|
|
import {Tip} from "./ts/tip/index";
|
|
|
import {Toolbar} from "./ts/toolbar/index";
|
|
import {Toolbar} from "./ts/toolbar/index";
|
|
|
import {disableToolbar, hidePanel} from "./ts/toolbar/setToolbar";
|
|
import {disableToolbar, hidePanel} from "./ts/toolbar/setToolbar";
|
|
@@ -30,11 +30,12 @@ import {addScript, addScriptSync} from "./ts/util/addScript";
|
|
|
import {getSelectText} from "./ts/util/getSelectText";
|
|
import {getSelectText} from "./ts/util/getSelectText";
|
|
|
import {Options} from "./ts/util/Options";
|
|
import {Options} from "./ts/util/Options";
|
|
|
import {processCodeRender} from "./ts/util/processCode";
|
|
import {processCodeRender} from "./ts/util/processCode";
|
|
|
-import {getCursorPosition, getEditorRange} from "./ts/util/selection";
|
|
|
|
|
|
|
+import {getCursorPosition, getEditorRange, insertHTML} from "./ts/util/selection";
|
|
|
import {afterRenderEvent} from "./ts/wysiwyg/afterRenderEvent";
|
|
import {afterRenderEvent} from "./ts/wysiwyg/afterRenderEvent";
|
|
|
import {WYSIWYG} from "./ts/wysiwyg/index";
|
|
import {WYSIWYG} from "./ts/wysiwyg/index";
|
|
|
import {input} from "./ts/wysiwyg/input";
|
|
import {input} from "./ts/wysiwyg/input";
|
|
|
import {renderDomByMd} from "./ts/wysiwyg/renderDomByMd";
|
|
import {renderDomByMd} from "./ts/wysiwyg/renderDomByMd";
|
|
|
|
|
+import {execAfterRender} from "./ts/util/fixBrowserBehavior";
|
|
|
|
|
|
|
|
class Vditor extends VditorMethod {
|
|
class Vditor extends VditorMethod {
|
|
|
public readonly version: string;
|
|
public readonly version: string;
|
|
@@ -268,6 +269,8 @@ class Vditor extends VditorMethod {
|
|
|
public insertValue(value: string, render = true) {
|
|
public insertValue(value: string, render = true) {
|
|
|
const range = getEditorRange(this.vditor);
|
|
const range = getEditorRange(this.vditor);
|
|
|
range.collapse(true);
|
|
range.collapse(true);
|
|
|
|
|
+ // https://github.com/Vanessa219/vditor/issues/716
|
|
|
|
|
+ // https://github.com/Vanessa219/vditor/issues/917
|
|
|
const tmpElement = document.createElement("template");
|
|
const tmpElement = document.createElement("template");
|
|
|
tmpElement.innerHTML = value;
|
|
tmpElement.innerHTML = value;
|
|
|
range.insertNode(tmpElement.content.cloneNode(true));
|
|
range.insertNode(tmpElement.content.cloneNode(true));
|
|
@@ -290,6 +293,20 @@ class Vditor extends VditorMethod {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /** 在焦点处插入 Markdown */
|
|
|
|
|
+ public insertMD(md: string) {
|
|
|
|
|
+ // https://github.com/Vanessa219/vditor/issues/1640
|
|
|
|
|
+ if (this.vditor.currentMode === "ir") {
|
|
|
|
|
+ insertHTML(this.vditor.lute.Md2VditorIRDOM(md), this.vditor);
|
|
|
|
|
+ } else if (this.vditor.currentMode === "wysiwyg") {
|
|
|
|
|
+ insertHTML(this.vditor.lute.Md2VditorDOM(md), this.vditor);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ processPaste(this.vditor, md);
|
|
|
|
|
+ }
|
|
|
|
|
+ this.vditor.outline.render(this.vditor);
|
|
|
|
|
+ execAfterRender(this.vditor);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/** 设置编辑器内容 */
|
|
/** 设置编辑器内容 */
|
|
|
public setValue(markdown: string, clearStack = false) {
|
|
public setValue(markdown: string, clearStack = false) {
|
|
|
if (this.vditor.currentMode === "sv") {
|
|
if (this.vditor.currentMode === "sv") {
|