mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-11 22:51:20 +08:00
This commit is contained in:
parent
216dc408ff
commit
f5ddcd2bbb
@ -554,11 +554,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-linenumber {
|
&-linenumber__rows {
|
||||||
border-top-left-radius: 0 !important;
|
|
||||||
border-bottom-left-radius: 0 !important;
|
|
||||||
|
|
||||||
&__rows {
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
counter-reset: linenumber;
|
counter-reset: linenumber;
|
||||||
@ -586,7 +582,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
&-speech {
|
&-speech {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -2100,8 +2100,8 @@ export const setFold = (protyle: IProtyle, nodeElement: Element, isOpen?: boolea
|
|||||||
}
|
}
|
||||||
nodeElement.removeAttribute("fold");
|
nodeElement.removeAttribute("fold");
|
||||||
// https://github.com/siyuan-note/siyuan/issues/4411
|
// https://github.com/siyuan-note/siyuan/issues/4411
|
||||||
nodeElement.querySelectorAll(".protyle-linenumber").forEach((item: HTMLElement) => {
|
nodeElement.querySelectorAll(".protyle-linenumber__rows").forEach((item: HTMLElement) => {
|
||||||
lineNumberRender(item);
|
lineNumberRender(item.parentElement);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (typeof isOpen === "boolean" && isOpen) {
|
if (typeof isOpen === "boolean" && isOpen) {
|
||||||
|
@ -89,8 +89,7 @@ export const highlightRender = (element: Element, cdn = Constants.PROTYLE_CDN) =
|
|||||||
const codeText = block.textContent;
|
const codeText = block.textContent;
|
||||||
if (!isPreview && (lineNumber === "true" || (lineNumber !== "false" && window.siyuan.config.editor.codeSyntaxHighlightLineNum))) {
|
if (!isPreview && (lineNumber === "true" || (lineNumber !== "false" && window.siyuan.config.editor.codeSyntaxHighlightLineNum))) {
|
||||||
// 需要先添加 class 以防止抖动 https://ld246.com/article/1648116585443
|
// 需要先添加 class 以防止抖动 https://ld246.com/article/1648116585443
|
||||||
block.classList.add("protyle-linenumber");
|
block.firstElementChild.classList.add("protyle-linenumber__rows")
|
||||||
block.innerHTML = '<div class="protyle-linenumber__rows"></div><div style="flex: 1"></div>'
|
|
||||||
lineNumberRender(block);
|
lineNumberRender(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,11 +115,10 @@ export const lineNumberRender = (block: HTMLElement) => {
|
|||||||
if (!window.siyuan.config.editor.codeSyntaxHighlightLineNum && lineNumber !== "true") {
|
if (!window.siyuan.config.editor.codeSyntaxHighlightLineNum && lineNumber !== "true") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
block.classList.add("protyle-linenumber");
|
|
||||||
// clientHeight 总是取的整数
|
// clientHeight 总是取的整数
|
||||||
block.parentElement.style.lineHeight = `${((parseInt(block.parentElement.style.fontSize) || window.siyuan.config.editor.fontSize) * 1.625 * 0.85).toFixed(0)}px`;
|
block.parentElement.style.lineHeight = `${((parseInt(block.parentElement.style.fontSize) || window.siyuan.config.editor.fontSize) * 1.625 * 0.85).toFixed(0)}px`;
|
||||||
const lineNumberTemp = document.createElement("div");
|
const lineNumberTemp = document.createElement("div");
|
||||||
lineNumberTemp.className = "hljs protyle-linenumber";
|
lineNumberTemp.className = "hljs";
|
||||||
lineNumberTemp.setAttribute("style", `box-sizing: border-box;width: calc(100% - 3.6em);position: absolute;padding-top:0 !important;padding-bottom:0 !important;min-height:auto !important;white-space:${block.style.whiteSpace};word-break:${block.style.wordBreak};font-variant-ligatures:${block.style.fontVariantLigatures};`);
|
lineNumberTemp.setAttribute("style", `box-sizing: border-box;width: calc(100% - 3.6em);position: absolute;padding-top:0 !important;padding-bottom:0 !important;min-height:auto !important;white-space:${block.style.whiteSpace};word-break:${block.style.wordBreak};font-variant-ligatures:${block.style.fontVariantLigatures};`);
|
||||||
lineNumberTemp.setAttribute("contenteditable", "true");
|
lineNumberTemp.setAttribute("contenteditable", "true");
|
||||||
block.insertAdjacentElement("afterend", lineNumberTemp);
|
block.insertAdjacentElement("afterend", lineNumberTemp);
|
||||||
|
@ -1195,12 +1195,6 @@ export class Toolbar {
|
|||||||
nodeElement.innerHTML = `<div spin="1"></div><div class="protyle-attr" contenteditable="false">${Constants.ZWSP}</div>`;
|
nodeElement.innerHTML = `<div spin="1"></div><div class="protyle-attr" contenteditable="false">${Constants.ZWSP}</div>`;
|
||||||
processRender(nodeElement);
|
processRender(nodeElement);
|
||||||
} else {
|
} else {
|
||||||
const lineNumber = nodeElement.getAttribute("linenumber");
|
|
||||||
if (lineNumber === "true" || (lineNumber !== "false" && window.siyuan.config.editor.codeSyntaxHighlightLineNum)) {
|
|
||||||
editElement.classList.add("protyle-linenumber");
|
|
||||||
} else {
|
|
||||||
editElement.classList.remove("protyle-linenumber");
|
|
||||||
}
|
|
||||||
(editElement as HTMLElement).textContent = editElement.textContent;
|
(editElement as HTMLElement).textContent = editElement.textContent;
|
||||||
editElement.removeAttribute("data-render");
|
editElement.removeAttribute("data-render");
|
||||||
highlightRender(nodeElement);
|
highlightRender(nodeElement);
|
||||||
|
@ -73,8 +73,8 @@ export const initUI = (protyle: IProtyle) => {
|
|||||||
wheelTimeout = window.setTimeout(() => {
|
wheelTimeout = window.setTimeout(() => {
|
||||||
fetchPost("/api/setting/setEditor", window.siyuan.config.editor);
|
fetchPost("/api/setting/setEditor", window.siyuan.config.editor);
|
||||||
if (window.siyuan.config.editor.codeSyntaxHighlightLineNum) {
|
if (window.siyuan.config.editor.codeSyntaxHighlightLineNum) {
|
||||||
protyle.wysiwyg.element.querySelectorAll(".code-block .protyle-linenumber").forEach((block: HTMLElement) => {
|
protyle.wysiwyg.element.querySelectorAll(".code-block .protyle-linenumber__rows").forEach((block: HTMLElement) => {
|
||||||
lineNumberRender(block);
|
lineNumberRender(block.parentElement);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, Constants.TIMEOUT_LOAD);
|
}, Constants.TIMEOUT_LOAD);
|
||||||
|
@ -28,7 +28,8 @@ export const resize = (protyle: IProtyle) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
protyle.wysiwyg.element.querySelectorAll(".code-block .protyle-linenumber").forEach((block: HTMLElement) => {
|
protyle.wysiwyg.element.querySelectorAll(".code-block .protyle-linenumber__rows").forEach((item: HTMLElement) => {
|
||||||
|
const block = item.parentElement;
|
||||||
if ((window.siyuan.config.editor.codeSyntaxHighlightLineNum && block.parentElement.getAttribute("lineNumber") !== "false" &&
|
if ((window.siyuan.config.editor.codeSyntaxHighlightLineNum && block.parentElement.getAttribute("lineNumber") !== "false" &&
|
||||||
window.siyuan.config.editor.codeLineWrap && block.parentElement.getAttribute("linewrap") !== "false") ||
|
window.siyuan.config.editor.codeLineWrap && block.parentElement.getAttribute("linewrap") !== "false") ||
|
||||||
(block.parentElement.getAttribute("lineNumber") === "true" && block.parentElement.getAttribute("linewrap") === "true")) {
|
(block.parentElement.getAttribute("lineNumber") === "true" && block.parentElement.getAttribute("linewrap") === "true")) {
|
||||||
|
Loading…
Reference in New Issue
Block a user