mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-12 23:21:23 +08:00
🎨 Clean code
This commit is contained in:
parent
49b18ce664
commit
35b8412aad
@ -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 {
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user