From 5abdf087060d2de5952df87ea2f7540e6df553b5 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 7 Dec 2024 11:03:30 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/13343 --- app/src/history/history.ts | 4 ++++ app/src/layout/dock/Backlink.ts | 1 + app/src/protyle/render/searchMarkRender.ts | 5 +++++ app/src/protyle/scroll/saveScroll.ts | 3 +++ app/src/protyle/util/reload.ts | 1 + app/src/search/util.ts | 1 + 6 files changed, 15 insertions(+) diff --git a/app/src/history/history.ts b/app/src/history/history.ts index d6398f844..07acd9d3a 100644 --- a/app/src/history/history.ts +++ b/app/src/history/history.ts @@ -15,6 +15,7 @@ import {openModel} from "../mobile/menu/model"; import {closeModel} from "../mobile/util/closePanel"; import {App} from "../index"; import {resizeSide} from "./resizeSide"; +import {searchMarkRender, searchTextMarkRender} from "../protyle/render/searchMarkRender"; let historyEditor: Protyle; @@ -694,12 +695,14 @@ const bindEvent = (app: App, element: Element, dialog?: Dialog) => { } else if (type === "doc") { fetchPost("/api/history/getDocHistoryContent", { historyPath: dataPath, + highlight: CSS && CSS.highlights, k: (firstPanelElement.querySelector(".b3-text-field") as HTMLInputElement).value }, (response) => { if (response.data.isLargeDoc) { mdElement.value = response.data.content; mdElement.classList.remove("fn__none"); docElement.classList.add("fn__none"); + searchTextMarkRender(mdElement, []); } else { mdElement.classList.add("fn__none"); docElement.classList.remove("fn__none"); @@ -709,6 +712,7 @@ const bindEvent = (app: App, element: Element, dialog?: Dialog) => { protyle: historyEditor.protyle, action: [Constants.CB_GET_HISTORY, Constants.CB_GET_HTML], }); + searchMarkRender(historyEditor.protyle, historyEditor.protyle.wysiwyg.element.querySelectorAll('span[data-type~="search-mark"]')); } }); } diff --git a/app/src/layout/dock/Backlink.ts b/app/src/layout/dock/Backlink.ts index 6a610ed87..536e85f60 100644 --- a/app/src/layout/dock/Backlink.ts +++ b/app/src/layout/dock/Backlink.ts @@ -437,6 +437,7 @@ export class Backlink extends Model { fetchPost(isMention ? "/api/ref/getBackmentionDoc" : "/api/ref/getBacklinkDoc", { defID: this.blockId, refTreeID: docId, + highlight: CSS && CSS.highlights, keyword: isMention ? this.inputsElement[1].value : this.inputsElement[0].value, }, (response) => { svgElement.removeAttribute("disabled"); diff --git a/app/src/protyle/render/searchMarkRender.ts b/app/src/protyle/render/searchMarkRender.ts index 27218ebe7..ad966278a 100644 --- a/app/src/protyle/render/searchMarkRender.ts +++ b/app/src/protyle/render/searchMarkRender.ts @@ -27,3 +27,8 @@ export const searchMarkRender = (protyle: IProtyle, matchElements: NodeListOf { + +} diff --git a/app/src/protyle/scroll/saveScroll.ts b/app/src/protyle/scroll/saveScroll.ts index 8504816b2..ac1c1177c 100644 --- a/app/src/protyle/scroll/saveScroll.ts +++ b/app/src/protyle/scroll/saveScroll.ts @@ -73,6 +73,7 @@ export const getDocByScroll = (options: { query: options.protyle.query?.key, queryMethod: options.protyle.query?.method, queryTypes: options.protyle.query?.types, + highlight: CSS && CSS.highlights, }, response => { if (response.code === 1) { fetchPost("/api/filetree/getDoc", { @@ -80,6 +81,7 @@ export const getDocByScroll = (options: { query: options.protyle.query?.key, queryMethod: options.protyle.query?.method, queryTypes: options.protyle.query?.types, + highlight: CSS && CSS.highlights, }, response => { onGet({ data: response, @@ -111,6 +113,7 @@ export const getDocByScroll = (options: { query: options.protyle.query?.key, queryMethod: options.protyle.query?.method, queryTypes: options.protyle.query?.types, + highlight: CSS && CSS.highlights, }, response => { onGet({ data: response, diff --git a/app/src/protyle/util/reload.ts b/app/src/protyle/util/reload.ts index 883a2ae08..852601a38 100644 --- a/app/src/protyle/util/reload.ts +++ b/app/src/protyle/util/reload.ts @@ -40,6 +40,7 @@ export const reloadProtyle = (protyle: IProtyle, focus: boolean, updateReadonly? fetchPost(isMention ? "/api/ref/getBackmentionDoc" : "/api/ref/getBacklinkDoc", { defID: protyle.element.getAttribute("data-defid"), refTreeID: protyle.block.rootID, + highlight: CSS && CSS.highlights, keyword: isMention ? inputsElement[1].value : inputsElement[0].value, }, response => { protyle.options.backlinkData = isMention ? response.data.backmentions : response.data.backlinks; diff --git a/app/src/search/util.ts b/app/src/search/util.ts index 9fc93056e..e23ce2909 100644 --- a/app/src/search/util.ts +++ b/app/src/search/util.ts @@ -1221,6 +1221,7 @@ export const getArticle = (options: { mode: zoomIn ? 0 : 3, size: zoomIn ? Constants.SIZE_GET_MAX : window.siyuan.config.editor.dynamicLoadBlocks, zoom: zoomIn, + highlight: CSS && CSS.highlights, }, getResponse => { options.edit.protyle.query = { key: options.value || null,