getText.ts 755 B

1234567891011121314151617
  1. import {code160to32} from "../util/code160to32";
  2. export const getText = (vditor: IVditor) => {
  3. if (vditor.currentMode === "markdown") {
  4. // last char must be a `\n`.
  5. return code160to32(`${vditor.editor.element.textContent}\n`.replace(/\n\n$/, "\n"));
  6. } else if (vditor.wysiwyg) {
  7. const cloneEditorElement = document.createElement("pre");
  8. cloneEditorElement.innerHTML = vditor.wysiwyg.element.innerHTML;
  9. cloneEditorElement.querySelectorAll("code").forEach((codeElement) => {
  10. codeElement.setAttribute("data-code",
  11. decodeURIComponent(codeElement.getAttribute("data-code")));
  12. });
  13. return vditor.lute.VditorDOM2Md(cloneEditorElement.innerHTML);
  14. }
  15. return "";
  16. };