From dd2a1b28833877560bacb725c743986d1d125f47 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 14 Apr 2023 16:51:54 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/7203 --- app/src/menus/protyle.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/app/src/menus/protyle.ts b/app/src/menus/protyle.ts index e15740665..42e6fc523 100644 --- a/app/src/menus/protyle.ts +++ b/app/src/menus/protyle.ts @@ -589,6 +589,30 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme } }).element); /// #if !BROWSER + window.siyuan.menus.menu.append(new MenuItem({ + label: "OCR", + submenu: [{ + iconHTML: Constants.ZWSP, + label: window.siyuan.languages.refresh, + click() { + fetchPost("/api/asset/getImageOCRText", { + path: imgElement.getAttribute("src"), + force: true + }) + } + }, { + iconHTML: Constants.ZWSP, + label: `
`, + bind(element) { + fetchPost("/api/asset/getImageOCRText", { + path: imgElement.getAttribute("src"), + force: false + }, (response) => { + element.querySelector("textarea").value = response.data.text + }) + } + }], + }).element); window.siyuan.menus.menu.append(new MenuItem(exportAsset(imgElement.getAttribute("data-src"))).element); /// #endif window.siyuan.menus.menu.append(new MenuItem({ @@ -684,6 +708,13 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme const textElements = window.siyuan.menus.menu.element.querySelectorAll("textarea"); textElements[0].focus(); window.siyuan.menus.menu.removeCB = () => { + const ocrElemennt = window.siyuan.menus.menu.element.querySelector('[data-type="ocr"]') as HTMLTextAreaElement + if (ocrElemennt) { + fetchPost("/api/asset/setImageOCRText", { + path: imgElement.getAttribute("src"), + text: ocrElemennt.value + }); + } imgElement.setAttribute("alt", textElements[2].value.replace(/\n|\r\n|\r|\u2028|\u2029/g, "")); nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss")); updateTransaction(protyle, id, nodeElement.outerHTML, html);