Browse Source

:rotating_light: #1

Van 6 years ago
parent
commit
5140fb5dca
5 changed files with 22 additions and 21 deletions
  1. 1 1
      src/index.ts
  2. 1 1
      src/ts/toolbar/WYSIWYG.ts
  3. 1 1
      src/ts/upload/index.ts
  4. 2 2
      src/ts/util/getRange.ts
  5. 17 16
      src/ts/wysiwyg/highlightToolbar.ts

+ 1 - 1
src/index.ts

@@ -70,8 +70,8 @@ class Vditor {
             originalInnerHTML: document.getElementById(id).innerHTML,
             tip: new Tip(),
             undo: undefined,
-            wysiwygUndo: undefined,
             wysiwyg: undefined,
+            wysiwygUndo: undefined,
         };
 
         if (mergedOptions.counter > 0) {

+ 1 - 1
src/ts/toolbar/WYSIWYG.ts

@@ -74,7 +74,7 @@ export class WYSIWYG extends MenuItem {
                 vditor.currentMode = "wysiwyg";
                 renderDomByMd(vditor, editorMD);
                 vditor.wysiwyg.element.focus();
-                vditor.wysiwyg.popover.style.display = 'none'
+                vditor.wysiwyg.popover.style.display = "none";
             }
 
             if (vditor.hint) {

+ 1 - 1
src/ts/upload/index.ts

@@ -174,7 +174,7 @@ const uploadFiles = (vditor: IVditor, files: FileList | DataTransferItemList | F
     }
     const editorElement = vditor.currentMode === "markdown" ? vditor.editor.element : vditor.wysiwyg.element;
 
-    vditor.upload.range = getRange(editorElement)
+    vditor.upload.range = getRange(editorElement);
 
     const validateResult = validateFile(vditor, fileList);
     if (validateResult.length === 0) {

+ 2 - 2
src/ts/util/getRange.ts

@@ -1,5 +1,5 @@
 export const getRange = (element: HTMLElement) => {
-    const selection = getSelection()
+    const selection = getSelection();
     if (selection.rangeCount > 0) {
         return selection.getRangeAt(0);
     } else {
@@ -8,4 +8,4 @@ export const getRange = (element: HTMLElement) => {
         range.collapse(true);
         return range;
     }
-}
+};

+ 17 - 16
src/ts/wysiwyg/highlightToolbar.ts

@@ -27,7 +27,7 @@ export const highlightToolbar = (vditor: IVditor) => {
 
     let toolbarName = typeElement.nodeName;
     if (toolbarName === "CODE" &&
-        (typeElement.parentElement.nodeName === "PRE" || typeElement.getAttribute('data-type'))) {
+        (typeElement.parentElement.nodeName === "PRE" || typeElement.getAttribute("data-type"))) {
         toolbarName = "";
     }
     if (/^H[1-6]$/.test(toolbarName)) {
@@ -337,11 +337,11 @@ export const highlightToolbar = (vditor: IVditor) => {
     const blockElement = hasClosestByClassName(typeElement, "vditor-wysiwyg__block");
     // block popover: math-inline, math-block, html-block, html-inline, code-block
     if (blockElement) {
-        const blockType = blockElement.getAttribute("data-type")
+        const blockType = blockElement.getAttribute("data-type");
         vditor.wysiwyg.popover.innerHTML = "";
 
         const language = document.createElement("input");
-        if (blockType.indexOf('block') > -1) {
+        if (blockType.indexOf("block") > -1) {
             const insertBefore = genInsertBefore(range, blockElement);
             const insertAfter = genInsertAfter(range, blockElement);
             const close = genClose(vditor.wysiwyg.popover, blockElement);
@@ -349,7 +349,7 @@ export const highlightToolbar = (vditor: IVditor) => {
             vditor.wysiwyg.popover.insertAdjacentElement("beforeend", insertAfter);
             vditor.wysiwyg.popover.insertAdjacentElement("beforeend", close);
 
-            if (blockType === 'code-block') {
+            if (blockType === "code-block") {
                 const codeElement = blockElement.firstElementChild.firstElementChild;
 
                 const updateLanguage = () => {
@@ -370,7 +370,7 @@ export const highlightToolbar = (vditor: IVditor) => {
         }
 
         const previewObj = genPreview(() => {
-            if (blockType === 'code-block') {
+            if (blockType === "code-block") {
                 previewObj.previewPanel.innerHTML =
                     `<pre>${blockElement.firstElementChild.innerHTML}</pre>`;
                 if (language.value === "abc") {
@@ -383,14 +383,15 @@ export const highlightToolbar = (vditor: IVditor) => {
                     highlightRender(vditor.options.preview.hljs, previewObj.previewPanel);
                     codeRender(previewObj.previewPanel, vditor.options.lang);
                 }
-            } else if (blockType.indexOf('html') > -1) {
-                previewObj.previewPanel.innerHTML = blockElement.firstElementChild.innerHTML
-            } else if (blockType.indexOf('math') > -1) {
-                const tagName = blockType === "math-block" ? 'div' : 'span'
-                previewObj.previewPanel.innerHTML = `<${tagName} class="vditor-math">${blockElement.firstChild.textContent}</${tagName}>`;
+            } else if (blockType.indexOf("html") > -1) {
+                previewObj.previewPanel.innerHTML = blockElement.firstElementChild.innerHTML;
+            } else if (blockType.indexOf("math") > -1) {
+                const tagName = blockType === "math-block" ? "div" : "span";
+                previewObj.previewPanel.innerHTML =
+                    `<${tagName} class="vditor-math">${blockElement.firstChild.textContent}</${tagName}>`;
                 mathRenderByLute(previewObj.previewPanel);
             }
-        }, blockElement, blockType.indexOf('block') > -1 ? 'div' : 'span');
+        }, blockElement, blockType.indexOf("block") > -1 ? "div" : "span");
         vditor.wysiwyg.popover.insertAdjacentElement("beforeend", previewObj.preview);
         setPopoverPosition(vditor, blockElement);
     }
@@ -462,19 +463,19 @@ const genPreview = (clickEvent: () => void, element: HTMLElement, tagName: strin
     preview.innerHTML = previewSVG;
     preview.className = "vditor-icon";
     preview.onclick = () => {
-        let display = 'block'
-        if (tagName === 'span') {
-            display = 'inline'
+        let display = "block";
+        if (tagName === "span") {
+            display = "inline";
         }
 
         if (previewPanel.style.display === "block" || previewPanel.style.display === "inline") {
             preview.innerHTML = previewSVG;
             previewPanel.style.display = "none";
-            element.firstElementChild.setAttribute('style', `display: ${display}`)
+            element.firstElementChild.setAttribute("style", `display: ${display}`);
         } else {
             preview.innerHTML = editSVG;
             previewPanel.style.display = display;
-            element.firstElementChild.setAttribute('style', 'display: none')
+            element.firstElementChild.setAttribute("style", "display: none");
             clickEvent();
         }
     };