mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-21 09:00:12 +01:00
🎨 search
This commit is contained in:
parent
e2e836a159
commit
0a8ea4e1b8
2 changed files with 5 additions and 9 deletions
|
|
@ -102,14 +102,6 @@ export const highlightRender = (element: Element, cdn = Constants.PROTYLE_CDN) =
|
||||||
languageElement.style.marginLeft = "";
|
languageElement.style.marginLeft = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 搜索定位
|
|
||||||
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 = window.hljs.highlight(
|
block.innerHTML = window.hljs.highlight(
|
||||||
block.textContent + (block.textContent.endsWith("\n") ? "" : "\n"), // https://github.com/siyuan-note/siyuan/issues/4609
|
block.textContent + (block.textContent.endsWith("\n") ? "" : "\n"), // https://github.com/siyuan-note/siyuan/issues/4609
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1189,7 +1189,11 @@ export const getArticle = (options: {
|
||||||
if (matchElement) {
|
if (matchElement) {
|
||||||
matchElement.classList.add("search-mark--hl");
|
matchElement.classList.add("search-mark--hl");
|
||||||
const contentRect = options.edit.protyle.contentElement.getBoundingClientRect();
|
const contentRect = options.edit.protyle.contentElement.getBoundingClientRect();
|
||||||
options.edit.protyle.contentElement.scrollTop = options.edit.protyle.contentElement.scrollTop + matchElement.getBoundingClientRect().top - contentRect.top - contentRect.height / 2;
|
const matchRectTop = matchElement.getBoundingClientRect().top; // 需前置,否则代码高亮后会移除该元素
|
||||||
|
setTimeout(() => {
|
||||||
|
// 等待 scrollCenter 定位后再滚动
|
||||||
|
options.edit.protyle.contentElement.scrollTop = options.edit.protyle.contentElement.scrollTop + matchRectTop - contentRect.top - contentRect.height / 2;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue