vditor
Version:
♏ 易于使用的 Markdown 编辑器,为适配不同的应用场景而生
33 lines (30 loc) • 1.15 kB
text/typescript
import {scrollCenter} from "../util/editorCommonEvent";
import {setSelectionFocus} from "../util/selection";
export const showCode = (previewElement: HTMLElement, vditor: IVditor, first = true) => {
const previousElement = previewElement.previousElementSibling as HTMLElement;
const range = previousElement.ownerDocument.createRange();
if (previousElement.tagName === "CODE") {
previousElement.style.display = "inline-block";
if (first) {
range.setStart(previousElement.firstChild, 1);
} else {
range.selectNodeContents(previousElement);
}
} else {
previousElement.style.display = "block";
if (!previousElement.firstChild.firstChild) {
previousElement.firstChild.appendChild(document.createTextNode(""));
}
range.selectNodeContents(previousElement.firstChild);
}
if (first) {
range.collapse(true);
} else {
range.collapse(false);
}
setSelectionFocus(range);
if (previewElement.firstElementChild.classList.contains("language-mindmap")) {
return;
}
scrollCenter(vditor);
};