From 066a9b519255299964dc8cabd0eac1c87f93256d Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Fri, 16 Jan 2026 21:59:21 +0800
Subject: [PATCH] :art: Add "Remove ID from asset name" switch to export
settings https://github.com/siyuan-note/siyuan/issues/16065
Signed-off-by: Daniel <845765@qq.com>
---
app/appearance/langs/ar_SA.json | 2 +
app/appearance/langs/de_DE.json | 2 +
app/appearance/langs/en_US.json | 2 +
app/appearance/langs/es_ES.json | 2 +
app/appearance/langs/fr_FR.json | 2 +
app/appearance/langs/he_IL.json | 2 +
app/appearance/langs/it_IT.json | 2 +
app/appearance/langs/ja_JP.json | 2 +
app/appearance/langs/ko_KR.json | 2 +
app/appearance/langs/pl_PL.json | 2 +
app/appearance/langs/pt_BR.json | 2 +
app/appearance/langs/ru_RU.json | 2 +
app/appearance/langs/tr_TR.json | 2 +
app/appearance/langs/zh_CHT.json | 2 +
app/appearance/langs/zh_CN.json | 2 +
app/src/config/exportConfig.ts | 9 ++++
app/src/config/search.ts | 2 +-
app/src/types/config.d.ts | 4 ++
kernel/conf/export.go | 2 +
kernel/model/assets.go | 17 ++++++++
kernel/model/export.go | 75 +++++++++++++++++++++++++++-----
21 files changed, 128 insertions(+), 11 deletions(-)
diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json
index 1dfa19cc9..02f708e9d 100644
--- a/app/appearance/langs/ar_SA.json
+++ b/app/appearance/langs/ar_SA.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "إزالة الـ ID من أسماء ملفات الموارد",
+ "removeAssetsIDTip": "عند التفعيل سيتم إزالة جزء الـ ID من أسماء ملفات الموارد عند تصدير Markdown",
"clearTempFiles": "Temporäre Dateien bereinigen",
"clearTempFilesTip": "Bereinigen Sie temporäre Dateien, die während der Ausführung der Anwendung erstellt wurden, um Speicherplatz freizugeben",
"uploadFileTooLarge": "⚠️ الملف الذي تم رفعه [${x}] كبير جدًا [${y}],هل تؤكد المتابعة بالرفع?",
diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json
index 1221ccd4a..73cc4bb61 100644
--- a/app/appearance/langs/de_DE.json
+++ b/app/appearance/langs/de_DE.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "ID aus Asset-Dateinamen entfernen",
+ "removeAssetsIDTip": "Wenn aktiviert, wird beim Export nach Markdown der ID-Teil aus den Asset-Dateinamen entfernt",
"clearTempFiles": "Temporäre Dateien bereinigen",
"clearTempFilesTip": "Bereinigen Sie temporäre Dateien, die während der Ausführung der Anwendung erstellt wurden, um Speicherplatz freizugeben",
"uploadFileTooLarge": "⚠️ Die hochgeladene Datei [${x}] ist zu groß [${y}]. Sind Sie sicher, dass Sie den Upload fortsetzen möchten?",
diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index 4dbdc436e..b6054ddb1 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "Remove ID from asset file names",
+ "removeAssetsIDTip": "When enabled, the ID part will be removed from asset file names when exporting Markdown",
"clearTempFiles": "Clear temporary files",
"clearTempFilesTip": "Clear temporary files generated while the app is running to free up storage space",
"uploadFileTooLarge": "⚠️ The uploaded file [${x}] is too large [${y}]. Are you sure you want to continue uploading?",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 4b81e0931..ee4b4e157 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "Eliminar el ID de los nombres de archivo de los recursos",
+ "removeAssetsIDTip": "Al habilitar, al exportar a Markdown se eliminará la parte del nombre de archivo de recursos que contiene el ID",
"clearTempFiles": "Limpiar archivos temporales",
"clearTempFilesTip": "Limpia los archivos temporales generados durante la ejecución de la aplicación para liberar espacio de almacenamiento",
"uploadFileTooLarge": "⚠️ El archivo subido [${x}] es demasiado grande [${y}],¿estás seguro de que deseas continuar con la subida?",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index a3c655faa..477ddfa78 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "Supprimer l'ID des noms de fichiers des ressources",
+ "removeAssetsIDTip": "Une fois activé, lors de l'export en Markdown, la partie ID dans le nom des fichiers de ressources sera supprimée",
"clearTempFiles": "Effacer les fichiers temporaires",
"clearTempFilesTip": "Effacez les fichiers temporaires générés lors de l'exécution de l'application pour libérer de l'espace de stockage",
"uploadFileTooLarge": "⚠️ Le fichier envoyé [${x}] est trop volumineux [${y}]. Voulez-vous continuer l'envoi ?",
diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json
index 921ed610b..07beefd51 100644
--- a/app/appearance/langs/he_IL.json
+++ b/app/appearance/langs/he_IL.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "הסר את ה‑ID משמות קבצי המשאבים",
+ "removeAssetsIDTip": "כאשר מופעל, בעת ייצוא ל‑Markdown יוסר חלק ה‑ID משמות קבצי המשאבים",
"clearTempFiles": "ניקוי קבצים זמניים",
"clearTempFilesTip": "נקה קבצים זמניים שנוצרו במהלך הפעלת היישום כדי לפנות מקום אחסון",
"uploadFileTooLarge": "⚠️ הקובץ שהועלה [${x}] גדול מאוד [${y}],אשר האם להמשיך בהעלאה?",
diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json
index ab494379f..67a0eaa91 100644
--- a/app/appearance/langs/it_IT.json
+++ b/app/appearance/langs/it_IT.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "Rimuovi l'ID dai nomi dei file delle risorse",
+ "removeAssetsIDTip": "Se abilitato, durante l'esportazione in Markdown verrà rimossa la parte ID dai nomi dei file delle risorse",
"clearTempFiles": "Elimina file temporanei",
"clearTempFilesTip": "Elimina i file temporanei creati durante l'esecuzione dell'app per liberare spazio di archiviazione",
"uploadFileTooLarge": "⚠️ Il file caricato [${x}] è troppo grande [${y}]. Sei sicuro di voler continuare il caricamento?",
diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json
index 957fb39ba..66fc87dc5 100644
--- a/app/appearance/langs/ja_JP.json
+++ b/app/appearance/langs/ja_JP.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "リソースファイル名から ID を削除",
+ "removeAssetsIDTip": "有効にすると Markdown をエクスポートする際にリソースファイル名の ID 部分を削除します",
"clearTempFiles": "一時ファイルを削除",
"clearTempFilesTip": "アプリの実行中に生成された一時ファイルを削除して、ストレージ領域を解放します",
"uploadFileTooLarge": "⚠️ アップロードしたファイル [${x}] は [${y}] で大きすぎます。アップロードを続行しますか?",
diff --git a/app/appearance/langs/ko_KR.json b/app/appearance/langs/ko_KR.json
index c4c4ec386..af89315f4 100644
--- a/app/appearance/langs/ko_KR.json
+++ b/app/appearance/langs/ko_KR.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "리소스 파일 이름의 ID 제거",
+ "removeAssetsIDTip": "활성화하면 Markdown 내보내기 시 리소스 파일 이름의 ID 부분을 제거합니다",
"clearTempFiles": "임시 파일 정리",
"clearTempFilesTip": "앱 실행 중 생성된 임시 파일을 정리하여 저장 공간을 확보합니다",
"uploadFileTooLarge": "⚠️ 업로드한 파일 [${x}]의 크기가 [${y}]로 너무 큽니다. 계속 업로드하시겠습니까?",
diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json
index b09472c04..7f64c4025 100644
--- a/app/appearance/langs/pl_PL.json
+++ b/app/appearance/langs/pl_PL.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "Usuń ID z nazw plików zasobów",
+ "removeAssetsIDTip": "Po włączeniu podczas eksportu do Markdown zostanie usunięta część nazwy pliku zasobu zawierająca ID",
"clearTempFiles": "Wyczyść pliki tymczasowe",
"clearTempFilesTip": "Wyczyść pliki tymczasowe tworzone podczas działania aplikacji, aby zwolnić miejsce na dysku",
"uploadFileTooLarge": "⚠️ Przesłany plik [${x}] jest za duży [${y}]. Czy na pewno chcesz kontynuować przesyłanie?",
diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json
index b1e112e65..87183f7f7 100644
--- a/app/appearance/langs/pt_BR.json
+++ b/app/appearance/langs/pt_BR.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "Remover o ID dos nomes dos arquivos de recursos",
+ "removeAssetsIDTip": "Ao ativar, ao exportar para Markdown a parte do nome do arquivo de recursos contendo o ID será removida",
"clearTempFiles": "Limpar arquivos temporários",
"clearTempFilesTip": "Limpe os arquivos temporários gerados durante a execução do aplicativo para liberar espaço de armazenamento",
"uploadFileTooLarge": "⚠️ O arquivo enviado [${x}] é muito grande [${y}]。 Tem certeza de que deseja continuar o upload?",
diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json
index 0bb06134e..8969a5d64 100644
--- a/app/appearance/langs/ru_RU.json
+++ b/app/appearance/langs/ru_RU.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "Удалить ID из имени файла ресурса",
+ "removeAssetsIDTip": "При включении при экспорте в Markdown из имён файлов ресурсов будет удалена часть с ID",
"clearTempFiles": "Очистить временные файлы",
"clearTempFilesTip": "Очистите временные файлы, созданные при работе приложения, чтобы освободить место в хранилище",
"uploadFileTooLarge": "⚠️ Загруженный файл [${x}] очень большой [${y}]. Вы уверены, что хотите продолжить загрузку?",
diff --git a/app/appearance/langs/tr_TR.json b/app/appearance/langs/tr_TR.json
index 634f95fde..b4be85cfc 100644
--- a/app/appearance/langs/tr_TR.json
+++ b/app/appearance/langs/tr_TR.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "Varlık dosya adlarındaki ID'yi kaldır",
+ "removeAssetsIDTip": "Etkinleştirildiğinde Markdown dışa aktarılırken varlık dosya adlarındaki ID kısmı kaldırılacaktır",
"clearTempFiles": "Geçici dosyaları temizle",
"clearTempFilesTip": "Uygulama çalışırken oluşan geçici dosyaları temizleyerek depolama alanını boşalt",
"uploadFileTooLarge": "⚠️ Yüklenen dosya [${x}], boyutu [${y}] kadar büyük. Yüklemeye devam etmek istediğinize emin misiniz?",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index 7c7fbed2c..e13465b62 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "移除資源檔名中的 ID",
+ "removeAssetsIDTip": "啟用後在匯出 Markdown 時會移除資源檔名中的 ID 部分",
"clearTempFiles": "清理臨時檔案",
"clearTempFilesTip": "清理應用運行過程中產生的臨時檔案以釋放儲存空間",
"uploadFileTooLarge": "⚠️ 上傳的檔案 [${x}] 很大 [${y}],請確認是否繼續上傳?",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index da03462dc..47da61ebe 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -1,4 +1,6 @@
{
+ "removeAssetsID": "移除资源文件名中的 ID",
+ "removeAssetsIDTip": "启用后在导出 Markdown 时将移除资源文件名中的 ID 部分",
"clearTempFiles": "清理临时文件",
"clearTempFilesTip": "清理应用运行过程中产生的临时文件以释放存储空间",
"uploadFileTooLarge": "⚠️ 上传的文件 [${x}] 很大 [${y}],请确认是否继续上传?",
diff --git a/app/src/config/exportConfig.ts b/app/src/config/exportConfig.ts
index bb4e3f8fb..b9acf695d 100644
--- a/app/src/config/exportConfig.ts
+++ b/app/src/config/exportConfig.ts
@@ -39,6 +39,14 @@ export const exportConfig = {
+