diff --git a/API.md b/API.md
index 022db8894..0c8ba3877 100644
--- a/API.md
+++ b/API.md
@@ -457,13 +457,12 @@ View API token in Settings - About, request header: `Authorization: T
* `/api/asset/upload`
* The parameter is an HTTP Multipart form
- * `assetsDirPath`: The folder path where the assets are stored. The arguments have the following three cases
+ * `assetsDirPath`: The folder path where assets are stored, with the data folder as the root path, for example:
+ * `"/assets/"`: workspace/data/assets/ folder
+ * `"/assets/sub/"`: workspace/data/assets/sub/ folder
- 1. `"/assets/"`: Workspace/data/assets folder
- 2. `"/Test Notebook/assets/"`: Assets folder under `Test Notebook`
- 3. `"/Test Notebook/foo/assets/"`: Assets folder under foo folder under `Test notebook`
-
- It is recommended to use the first one, which is stored in the workspace assets folder uniformly.
+ Under normal circumstances, it is recommended to use the first method, which is stored in the assets folder
+ of the workspace.
* `file[]`: Uploaded file list
* Return value
@@ -705,7 +704,7 @@ View API token in Settings - About, request header: `Authorization: T
}
```
- * `id`: ID of the block to be got
+ * `id`: ID of the block to be got
* Return value
```json
@@ -718,7 +717,7 @@ View API token in Settings - About, request header: `Authorization: T
}
}
```
-
+
## Attributes
### Set block attributes
@@ -814,8 +813,9 @@ View API token in Settings - About, request header: `Authorization: T
"path": "F:\\SiYuan\\data\\templates\\foo.md"
}
```
- * `id`: The ID of the document where the rendering is called
- * `path`: Template file absolute path
+
+ * `id`: The ID of the document where the rendering is called
+ * `path`: Template file absolute path
* Return value
```json
diff --git a/API_zh_CN.md b/API_zh_CN.md
index 93c83d82b..c77c5818b 100644
--- a/API_zh_CN.md
+++ b/API_zh_CN.md
@@ -454,13 +454,11 @@
* `/api/asset/upload`
* 参数为 HTTP Multipart 表单
- * `assetsDirPath`:资源文件存放的文件夹路径,实参有以下三种情况
+ * `assetsDirPath`:资源文件存放的文件夹路径,以 data 文件夹作为根路径,比如:
+ * `"/assets/"`:工作空间/data/assets/ 文件夹
+ * `"/assets/sub/"`:工作空间/data/assets/sub/ 文件夹
- 1. `"/assets/"`:工作空间/data/assets 文件夹
- 2. `"/测试笔记本/assets/"`:`测试笔记本`下的 assets 文件夹
- 3. `"/测试笔记本/foo/assets/"`:`测试笔记本`下 foo 文件夹下的 assets 文件夹
-
- 建议用第一种,统一存放到工作空间资源文件夹下。
+ 常规情况下建议用第一种,统一存放到工作空间资源文件夹下。
* `file[]`:上传的文件列表
* 返回值
diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index 62500b459..887d2eec5 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -199,9 +199,10 @@
"exportPDF1": "Landscape page",
"exportPDF2": "Page margins",
"exportPDF3": "Page Scale",
- "exportPDF4": "Remove assets directory",
+ "exportPDF4": "Embed assets",
"exportPDF5": "Keep folded",
- "exportPDF6": "Merge subdocuments",
+ "mergeSubdocs": "Merge subdocuments",
+ "removeAssetsFolder": "Remove assets directory",
"upload": "Upload",
"reminderTip": "The reminder time cannot be less than the current time",
"wechatTip": "The content block will be sent to the cloud in clear text, and pushed through the WeChat MP template message when it expires",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index ba8eba908..a99a523d4 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -199,9 +199,10 @@
"exportPDF1": "Página apaisada",
"exportPDF2": "Márgenes de la página",
"exportPDF3": "Escala de la página",
- "exportPDF4": "Eliminar directorio de activos",
+ "exportPDF4": "Activos incrustados",
"exportPDF5": "Mantener doblado",
- "exportPDF6": "Fusionar subdocumentos",
+ "mergeSubdocs": "Fusionar subdocumentos",
+ "removeAssetsFolder": "Eliminar directorio de activos",
"upload": "Subir",
"reminderTip": "La hora del recordatorio no puede ser inferior a la hora actual",
"wechatTip": "El bloque de contenido se enviará a la nube en texto claro, y se empujará a través del mensaje de plantilla de WeChat MP cuando caduque",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index 9ecc80ca4..d684b5c9e 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -199,9 +199,10 @@
"exportPDF1": "Page paysage",
"exportPDF2": "Marges de page",
"exportPDF3": "Échelle de page",
- "exportPDF4": "Supprimer le répertoire des actifs",
+ "exportPDF4": "Incorporer des ressources",
"exportPDF5": "Garder plié",
- "exportPDF6": "Fusionner les sous-documents",
+ "mergeSubdocs": "Fusionner les sous-documents",
+ "removeAssetsFolder": "Supprimer le répertoire des actifs",
"upload": "Télécharger",
"reminderTip": "The reminder time cannot be less than the current time",
"wechatTip": "Le bloc de contenu sera envoyé au cloud en texte clair et transmis au message du modèle de compte officiel WeChat à son expiration.",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index 598868c1b..bcff17a8d 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -199,9 +199,10 @@
"exportPDF1": "橫向頁面",
"exportPDF2": "頁面邊距",
"exportPDF3": "頁面縮放",
- "exportPDF4": "移除 assets 目錄",
+ "exportPDF4": "嵌入資源文件",
"exportPDF5": "保持折疊狀態",
- "exportPDF6": "合併子文檔",
+ "mergeSubdocs": "合併子文檔",
+ "removeAssetsFolder": "移除 assets 目錄",
"upload": "上傳",
"reminderTip": "提醒時間不能小於當前時間",
"wechatTip": "該內容塊將以明文形式發送到雲端,到期時通過微信公眾號模板消息進行推送",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index 5202f15a6..c166b2ee0 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -199,9 +199,10 @@
"exportPDF1": "横向页面",
"exportPDF2": "页面边距",
"exportPDF3": "页面缩放",
- "exportPDF4": "移除 assets 目录",
+ "exportPDF4": "嵌入资源文件",
"exportPDF5": "保持折叠状态",
- "exportPDF6": "合并子文档",
+ "mergeSubdocs": "合并子文档",
+ "removeAssetsFolder": "移除 assets 目录",
"upload": "上传",
"reminderTip": "提醒时间不能小于当前时间",
"wechatTip": "该内容块将以明文形式发送到云端,到期时通过微信公众号模板消息进行推送",
diff --git a/app/src/protyle/export/index.ts b/app/src/protyle/export/index.ts
index e92cf3c1d..1bba90468 100644
--- a/app/src/protyle/export/index.ts
+++ b/app/src/protyle/export/index.ts
@@ -1,7 +1,7 @@
import {hideMessage, showMessage} from "../../dialog/message";
import {Constants} from "../../constants";
/// #if !BROWSER
-import {OpenDialogReturnValue, ipcRenderer} from "electron";
+import {ipcRenderer, OpenDialogReturnValue} from "electron";
import {app, BrowserWindow, dialog, getCurrentWindow} from "@electron/remote";
import * as fs from "fs";
import * as path from "path";
@@ -33,14 +33,14 @@ export const saveExport = (option: { type: string, id: string }) => {
content: `