From 2e0b2ba967fd31fda6a42afb1d32ffbec84747cd Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 6 Dec 2023 09:31:42 +0800 Subject: [PATCH] :art: Support converting network assets to local https://github.com/siyuan-note/siyuan/issues/9826 --- app/appearance/langs/en_US.json | 1 + app/appearance/langs/es_ES.json | 1 + app/appearance/langs/fr_FR.json | 1 + app/appearance/langs/zh_CHT.json | 1 + app/appearance/langs/zh_CN.json | 1 + app/src/protyle/breadcrumb/action.ts | 21 +++++++++++++++++++++ app/src/protyle/breadcrumb/index.ts | 9 ++++++++- kernel/go.sum | 2 ++ kernel/model/assets.go | 2 ++ 9 files changed, 38 insertions(+), 1 deletion(-) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 43988e20a..f08b8ec49 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -450,6 +450,7 @@ "searchBackmention": "Backlink mentions (backlink mentions search keywords are obtained from)", "searchVirtualRef": "Virtual reference (virtual reference search keywords are obtained from)", "netImg2LocalAsset": "Convert network images to local images", + "netAssets2LocalAssets": "Convert network assets to local", "releaseDate": "Release Date", "pkgSize": "Package size", "installSize": "Install Size", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 7add10a26..3bc0e906e 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -450,6 +450,7 @@ "searchBackmention": "Menciones de backlinks (las menciones de backlinks de las que se obtienen las palabras clave de la búsqueda)", "searchVirtualRef": "Referencia virtual (las palabras clave de búsqueda de referencias virtuales se obtienen a partir de ellas)", "netImg2LocalAsset": "Convertir imágenes de red en imágenes locales", + "netAssets2LocalAssets": "Convertir activos de red a locales", "releaseDate": "Fecha de lanzamiento", "pkgSize": "Tamaño del paquete", "installSize": "Tamaño de instalación", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 699f5d457..abf03aedd 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -450,6 +450,7 @@ "searchBackmention": "Mentions de backlink (les mentions de backlink à partir desquelles les mots-clés de recherche sont obtenus)", "searchVirtualRef": "Référence virtuelle (les mots-clés de recherche de référence virtuelle sont obtenus à partir de)", "netImg2LocalAsset": "Convertir des images réseau en images locales", + "netAssets2LocalAssets": "Convertir les actifs réseau en local", "releaseDate": "Date de sortie", "pkgSize": "Taille du package", "installSize": "Taille d'installation", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 0b75f3e30..d6a9cf3da 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -450,6 +450,7 @@ "searchBackmention": "反連提及(反連提及搜索關鍵字從以下方式獲得)", "searchVirtualRef": "虛擬引用(虛擬引用搜索關鍵字從以下方式獲得)", "netImg2LocalAsset": "網絡圖片轉換為本地圖片", + "netAssets2LocalAssets": "網路資源檔案轉換本地", "releaseDate": "發布日期", "pkgSize": "檔大小", "installSize": "安裝大小", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 72ad87541..8d7ce494c 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -450,6 +450,7 @@ "searchBackmention": "反链提及(反链提及搜索关键字从以下方式获得)", "searchVirtualRef": "虚拟引用(虚拟引用搜索关键字从以下方式获得)", "netImg2LocalAsset": "网络图片转换为本地图片", + "netAssets2LocalAssets": "网络资源文件转换本地", "releaseDate": "发布日期", "pkgSize": "包大小", "installSize": "安装大小", diff --git a/app/src/protyle/breadcrumb/action.ts b/app/src/protyle/breadcrumb/action.ts index 71c0e7125..d64127922 100644 --- a/app/src/protyle/breadcrumb/action.ts +++ b/app/src/protyle/breadcrumb/action.ts @@ -9,6 +9,27 @@ import {hasClosestByClassName} from "../util/hasClosest"; import {reloadProtyle} from "../util/reload"; import {resize} from "../util/resize"; +export const netAssets2LocalAssets = (protyle: IProtyle) => { + if (protyle.element.querySelector(".wysiwygLoading")) { + return; + } + addLoading(protyle); + hideElements(["toolbar"], protyle); + fetchPost("/api/format/netAssets2LocalAssets", { + id: protyle.block.rootID + }, () => { + /// #if MOBILE + reloadProtyle(protyle, false); + /// #else + getAllModels().editor.forEach(item => { + if (item.editor.protyle.block.rootID === protyle.block.rootID) { + reloadProtyle(item.editor.protyle, item.editor.protyle.element.isSameNode(protyle.element)); + } + }); + /// #endif + }); +}; + export const netImg2LocalAssets = (protyle: IProtyle) => { if (protyle.element.querySelector(".wysiwygLoading")) { return; diff --git a/app/src/protyle/breadcrumb/index.ts b/app/src/protyle/breadcrumb/index.ts index 6db2f0fae..39fe594fc 100644 --- a/app/src/protyle/breadcrumb/index.ts +++ b/app/src/protyle/breadcrumb/index.ts @@ -2,7 +2,7 @@ import {getIconByType} from "../../editor/getIcon"; import {fetchPost} from "../../util/fetch"; import {Constants} from "../../constants"; import {MenuItem} from "../../menus/Menu"; -import {fullscreen, netImg2LocalAssets} from "./action"; +import {fullscreen, netAssets2LocalAssets, netImg2LocalAssets} from "./action"; import {openFileAttr} from "../../menus/commonMenuItem"; import {setEditMode} from "../util/setEditMode"; import {RecordMedia} from "../util/RecordMedia"; @@ -341,6 +341,13 @@ export class Breadcrumb { netImg2LocalAssets(protyle); } }).element); + window.siyuan.menus.menu.append(new MenuItem({ + label: window.siyuan.languages.netAssets2LocalAssets, + icon: "iconTransform", + click() { + netAssets2LocalAssets(protyle); + } + }).element); window.siyuan.menus.menu.append(new MenuItem({ label: window.siyuan.languages.uploadAssets2CDN, icon: "iconCloudSucc", diff --git a/kernel/go.sum b/kernel/go.sum index 532e9a656..3ebdaf7bb 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -10,6 +10,8 @@ github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5 h1:8HdZozCsXS github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/88250/gulu v1.2.3-0.20231205093500-bcc43ee27cba h1:ypA1nYRPXm+oac3GnAziPOhMx49nTLtrajePha1CU0g= github.com/88250/gulu v1.2.3-0.20231205093500-bcc43ee27cba/go.mod h1:pTWnjt+6qUqNnP9xltswsJxgCBVu3C7eW09u48LWX0k= +github.com/88250/lute v1.7.6-0.20231205144411-36eb02d113a6 h1:nCZMMQB5XqhX2jJYegnmrlBAYKotE7Cwex17Kz24rko= +github.com/88250/lute v1.7.6-0.20231205144411-36eb02d113a6/go.mod h1:+wUqx/1kdFDbWtxn9LYJlaCOAeol2pjSO6w+WJTVQsg= github.com/88250/pdfcpu v0.3.14-0.20230401044135-c7369a99720c h1:Dl/8S9iLyPMTElnWIBxmjaLiWrkI5P4a21ivwAn5pU0= github.com/88250/pdfcpu v0.3.14-0.20230401044135-c7369a99720c/go.mod h1:S5YT38L/GCjVjmB4PB84PymA1qfopjEhfhTNQilLpv4= github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 h1:48T899JQDwyyRu9yXHePYlPdHtpJfrJEUGBMH3SMBWY= diff --git a/kernel/model/assets.go b/kernel/model/assets.go index da0817852..85f66aac9 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -386,6 +386,8 @@ func NetAssets2LocalAssets(rootID string) (err error) { return } util.PushUpdateMsg(msgId, fmt.Sprintf(Conf.Language(120), files), 5000) + } else { + util.PushUpdateMsg(msgId, Conf.Language(121), 3000) } return }