|
@@ -2,6 +2,7 @@ import {addScript} from "../util/addScript";
|
|
|
import {Constants} from "../../constants";
|
|
|
import {focusByOffset} from "../util/selection";
|
|
|
import {setCodeTheme} from "../../util/assets";
|
|
|
+import {hasClosestByClassName} from "../util/hasClosest";
|
|
|
|
|
|
export const highlightRender = (element: Element, cdn = Constants.PROTYLE_CDN) => {
|
|
|
let codeElements: NodeListOf<Element>;
|
|
@@ -98,10 +99,13 @@ export const highlightRender = (element: Element, cdn = Constants.PROTYLE_CDN) =
|
|
|
languageElement.style.marginLeft = "";
|
|
|
}
|
|
|
}
|
|
|
- const matchElement = block.querySelector('span[data-type="search-mark"]');
|
|
|
- if (matchElement) {
|
|
|
- // 搜索定位
|
|
|
- matchElement.scrollIntoView();
|
|
|
+ // 搜索定位
|
|
|
+ const layoutElement = hasClosestByClassName(block, "search__layout", true)
|
|
|
+ if (layoutElement && block.parentElement.getAttribute("data-node-id") === layoutElement.querySelector("#searchList > .b3-list-item--focus")?.getAttribute("data-node-id")) {
|
|
|
+ const matchElement = block.querySelector('span[data-type="search-mark"]');
|
|
|
+ if (matchElement) {
|
|
|
+ matchElement.scrollIntoView();
|
|
|
+ }
|
|
|
}
|
|
|
block.innerHTML = hljs.highlight(
|
|
|
block.textContent + (block.textContent.endsWith("\n") ? "" : "\n"), // https://github.com/siyuan-note/siyuan/issues/4609
|