🎨 Clean code

This commit is contained in:
Daniel 2024-04-02 09:16:12 +08:00
parent 49b18ce664
commit 35b8412aad
No known key found for this signature in database
GPG Key ID: 86211BA83DF03017
2 changed files with 25 additions and 25 deletions

View File

@ -19,25 +19,25 @@ import {cellScrollIntoView, getCellText} from "../render/av/cell";
import {getContenteditableElement} from "../wysiwyg/getBlock"; import {getContenteditableElement} from "../wysiwyg/getBlock";
export const getTextStar = (blockElement: HTMLElement) => { export const getTextStar = (blockElement: HTMLElement) => {
const dataType = blockElement.dataset.type const dataType = blockElement.dataset.type;
let refText = "" let refText = "";
if (["NodeHeading", "NodeParagraph"].includes(dataType)) { if (["NodeHeading", "NodeParagraph"].includes(dataType)) {
refText = getContenteditableElement(blockElement).innerHTML; refText = getContenteditableElement(blockElement).innerHTML;
} else { } else {
if ("NodeHTMLBlock" === dataType) { if ("NodeHTMLBlock" === dataType) {
refText = "HTML" refText = "HTML";
} else if ("NodeAttributeView" === dataType) { } else if ("NodeAttributeView" === dataType) {
refText = blockElement.querySelector(".av__title").textContent || window.siyuan.languages.database refText = blockElement.querySelector(".av__title").textContent || window.siyuan.languages.database;
} else if ("NodeThematicBreak" === dataType) { } else if ("NodeThematicBreak" === dataType) {
refText = window.siyuan.languages.line refText = window.siyuan.languages.line;
} else if ("NodeIFrame" === dataType) { } else if ("NodeIFrame" === dataType) {
refText = "IFrame" refText = "IFrame";
} else if ("NodeWidget" === dataType) { } else if ("NodeWidget" === dataType) {
refText = window.siyuan.languages.widget refText = window.siyuan.languages.widget;
} else if ("NodeVideo" === dataType) { } else if ("NodeVideo" === dataType) {
refText = window.siyuan.languages.video refText = window.siyuan.languages.video;
} else if ("NodeAudio" === dataType) { } else if ("NodeAudio" === dataType) {
refText = window.siyuan.languages.audio refText = window.siyuan.languages.audio;
} else if (["NodeCodeBlock", "NodeTable"].includes(dataType)) { } else if (["NodeCodeBlock", "NodeTable"].includes(dataType)) {
refText = getPlainText(blockElement); refText = getPlainText(blockElement);
} else if (blockElement.classList.contains("render-node")) { } else if (blockElement.classList.contains("render-node")) {
@ -49,49 +49,49 @@ export const getTextStar = (blockElement: HTMLElement) => {
refText = getTextStar(blockElement.querySelector("[data-node-id]")); refText = getTextStar(blockElement.querySelector("[data-node-id]"));
return true; return true;
} }
}) });
if (refText) { if (refText) {
return refText return refText;
} }
} }
} }
return refText + ` <span data-type="block-ref" data-subtype="s" data-id="${blockElement.getAttribute("data-node-id")}">*</span>`; return refText + ` <span data-type="block-ref" data-subtype="s" data-id="${blockElement.getAttribute("data-node-id")}">*</span>`;
} };
export const getPlainText = (blockElement: HTMLElement, isNested = false) => { export const getPlainText = (blockElement: HTMLElement, isNested = false) => {
let text = "" let text = "";
const dataType = blockElement.dataset.type const dataType = blockElement.dataset.type;
if ("NodeHTMLBlock" === dataType) { if ("NodeHTMLBlock" === dataType) {
text += Lute.UnEscapeHTMLStr(blockElement.querySelector("protyle-html").getAttribute("data-content")) text += Lute.UnEscapeHTMLStr(blockElement.querySelector("protyle-html").getAttribute("data-content"));
} else if ("NodeAttributeView" === dataType) { } else if ("NodeAttributeView" === dataType) {
blockElement.querySelectorAll(".av__row").forEach(rowElement => { blockElement.querySelectorAll(".av__row").forEach(rowElement => {
rowElement.querySelectorAll(".av__cell").forEach((cellElement: HTMLElement) => { rowElement.querySelectorAll(".av__cell").forEach((cellElement: HTMLElement) => {
text += getCellText(cellElement) + " "; text += getCellText(cellElement) + " ";
}) });
text += "\n"; text += "\n";
}) });
text = text.trimEnd() text = text.trimEnd();
} else if ("NodeThematicBreak" === dataType) { } else if ("NodeThematicBreak" === dataType) {
text += "---"; text += "---";
} else if ("NodeIFrame" === dataType || "NodeWidget" === dataType) { } else if ("NodeIFrame" === dataType || "NodeWidget" === dataType) {
text += blockElement.querySelector("iframe").getAttribute("src") text += blockElement.querySelector("iframe").getAttribute("src");
} else if ("NodeVideo" === dataType) { } else if ("NodeVideo" === dataType) {
text += blockElement.querySelector("video").getAttribute("src") text += blockElement.querySelector("video").getAttribute("src");
} else if ("NodeAudio" === dataType) { } else if ("NodeAudio" === dataType) {
text += blockElement.querySelector("audio").getAttribute("src") text += blockElement.querySelector("audio").getAttribute("src");
} else if (blockElement.classList.contains("render-node")) { } else if (blockElement.classList.contains("render-node")) {
// 需在嵌入块后,代码块前 // 需在嵌入块后,代码块前
text += Lute.UnEscapeHTMLStr(blockElement.getAttribute("data-content")) text += Lute.UnEscapeHTMLStr(blockElement.getAttribute("data-content"));
} else if (["NodeHeading", "NodeParagraph", "NodeCodeBlock", "NodeTable"].includes(dataType)) { } else if (["NodeHeading", "NodeParagraph", "NodeCodeBlock", "NodeTable"].includes(dataType)) {
text += blockElement.querySelector("[spellcheck]").textContent; text += blockElement.querySelector("[spellcheck]").textContent;
} else if (!isNested && ["NodeBlockquote", "NodeList", "NodeSuperBlock", "NodeListItem"].includes(dataType)) { } else if (!isNested && ["NodeBlockquote", "NodeList", "NodeSuperBlock", "NodeListItem"].includes(dataType)) {
blockElement.querySelectorAll("[data-node-id]").forEach((item: HTMLElement) => { blockElement.querySelectorAll("[data-node-id]").forEach((item: HTMLElement) => {
const nestedText = getPlainText(item, true); const nestedText = getPlainText(item, true);
text += nestedText ? nestedText + "\n" : ""; text += nestedText ? nestedText + "\n" : "";
}) });
} }
return text; return text;
} };
export const pasteEscaped = async (protyle: IProtyle, nodeElement: Element) => { export const pasteEscaped = async (protyle: IProtyle, nodeElement: Element) => {
try { try {

View File

@ -269,7 +269,7 @@ export class WYSIWYG {
selectElements[0].parentElement.classList.contains("list") && // 反链复制列表项 https://github.com/siyuan-note/siyuan/issues/6555 selectElements[0].parentElement.classList.contains("list") && // 反链复制列表项 https://github.com/siyuan-note/siyuan/issues/6555
selectElements[0].parentElement.childElementCount - 1 === selectElements.length) { selectElements[0].parentElement.childElementCount - 1 === selectElements.length) {
if (isRefText) { if (isRefText) {
html = getTextStar(selectElements[0].parentElement) html = getTextStar(selectElements[0].parentElement);
} else { } else {
html = selectElements[0].parentElement.outerHTML; html = selectElements[0].parentElement.outerHTML;
} }