diff --git a/README.md b/README.md index 4585fa0..9d47d77 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,45 @@ NextNote: "[[vexporter readMe]]" LocalGitProject: D:\iLanix\isync\Obsidian\.obsidian\plugins\obsidian-vaultexporter-plugin --- -![[Pasted image 20240422213449.png]] +下载 [obsidian-sample-plugin](https://github.com/obsidianmd/obsidian-sample-plugin), + +```bash +cd Your_Vault_DIR/.obsidian/plugins +git clone https://github.com/obsidianmd/obsidian-sample-plugin.git +``` + +修改 `manifest.json`: + +```jsn +{ + "id": "vault-exporter", + "name": "Vault Exporter", + "version": "1.0.0", + "minAppVersion": "0.15.0", + "description": "Export current note to another Vault.", + "author": "ZigHolding", + "isDesktopOnly": true +} +``` + +```bash +cd obsidian-sample-plugin +npm i # 下载依赖包 +npm run dev # 将 main.ts 编译为 main.js +``` + +开发完成后:将`main.js`、`styles.css`、`mainfest.json` 复制到 :`VaultFolder/.obsidian/plugins/your-plugin-id/`。 + + +需要先安装 [[obsidian-notechain-plugin]] 和 [[Templater]] 插件。 + +`Vault Exporter: Set Git Project`:将当前笔记绑定项目笔记。输入目录,生成 `LocalGitProject` 的元数据。 + +![](./assets/Pasted image 20240422220412.png) + +`Vault Exporter: Export readMe`:将当前笔记输出到 readme,笔记引用的图和文件复制到 `LocalGitProject/assets` 下。复制 readme 时,会更换链接。 + +元数据和附录可以在设置页面更改。 + +![](./assets/Pasted image 20240422213449.png) -![[Pasted image 20240422214245.png]] \ No newline at end of file diff --git a/assets/Pasted image 20240422220412.png b/assets/Pasted image 20240422220412.png new file mode 100644 index 0000000..c6c590c Binary files /dev/null and b/assets/Pasted image 20240422220412.png differ diff --git a/main.js b/main.js index 162ab33..c0d0ccc 100644 --- a/main.js +++ b/main.js @@ -155,6 +155,7 @@ var VaultExpoterPlugin = class extends import_obsidian.Plugin { tmp = dst + "/" + tfile.basename + ".md"; } this.copy_tfile(tfile, tmp); + await this.replace_readme(tmp); let adir = dst + "/" + assets; if (!fs.existsSync(adir)) { fs.mkdirSync(adir); @@ -165,6 +166,26 @@ var VaultExpoterPlugin = class extends import_obsidian.Plugin { } } } + replace_readme(path) { + fs.readFile(path, "utf8", (err, data) => { + if (err) { + return; + } + const replacedContent = data.replace( + /\!\[\[(.*?)\]\]/g, + (match, filename) => { + return `![](./assets/${filename})`; + } + ); + fs.writeFile(path, replacedContent, "utf8", (err2) => { + if (err2) { + console.error("Error writing file:", err2); + } else { + console.log("File content updated successfully."); + } + }); + }); + } }; var VExporterSettingTab = class extends import_obsidian.PluginSettingTab { constructor(app, plugin) { @@ -184,4 +205,4 @@ var VExporterSettingTab = class extends import_obsidian.PluginSettingTab { })); } }; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0ICogYXMgTW9kdWxlIGZyb20gJ21vZHVsZSc7XHJcbmltcG9ydCB7IEFwcCwgRWRpdG9yLCBNYXJrZG93blZpZXcsIE1vZGFsLCBOb3RpY2UsIFBsdWdpbiwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZywgVEZpbGUgfSBmcm9tICdvYnNpZGlhbic7XHJcblxyXG4vLyBSZW1lbWJlciB0byByZW5hbWUgdGhlc2UgY2xhc3NlcyBhbmQgaW50ZXJmYWNlcyFcclxuXHJcbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcclxuXHJcbmludGVyZmFjZSBWRXhwb3J0ZXJTZXR0aW5ncyB7XHJcblx0bmFtZUxvY2FsR2l0UHJvamVjdDogc3RyaW5nO1xyXG5cdGFzc2V0c0xvY2FsR2l0UHJvamVjdDpzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IFZFeHBvcnRlclNldHRpbmdzID0ge1xyXG5cdG5hbWVMb2NhbEdpdFByb2plY3Q6ICdMb2NhbEdpdFByb2plY3QnLFxyXG5cdGFzc2V0c0xvY2FsR2l0UHJvamVjdDogJ2Fzc2V0cydcclxufVxyXG5cclxuY29uc3QgY21kX2V4cG9ydF9yZWFkbWUgPSAocGx1Z2luOlZhdWx0RXhwb3RlclBsdWdpbikgPT4gKHtcclxuXHRpZDogJ2V4cG9ydF9yZWFkbWUnLFxyXG5cdG5hbWU6ICdFeHBvcnQgcmVhZE1lJyxcclxuXHRjYWxsYmFjazogYXN5bmMgKCkgPT4ge1xyXG5cdFx0bGV0IG5jID0gYXdhaXQgcGx1Z2luLmFwcC5wbHVnaW5zLmdldFBsdWdpbignbm90ZS1jaGFpbicpO1xyXG5cdFx0bGV0IHRmaWxlID0gbmMuY2hhaW4uY3VycmVudF9ub3RlO1xyXG5cdFx0YXdhaXQgcGx1Z2luLmV4cG9ydF9yZWFkbWUoXHJcblx0XHRcdHRmaWxlLG51bGwsdHJ1ZSxwbHVnaW4uc2V0dGluZ3MuYXNzZXRzTG9jYWxHaXRQcm9qZWN0XHJcblx0XHQpO1xyXG5cdH1cclxufSk7XHJcblxyXG5jb25zdCBjbWRfc2V0X2dpdF9wcm9qZWN0ID0gKHBsdWdpbjpWYXVsdEV4cG90ZXJQbHVnaW4pID0+ICh7XHJcblx0aWQ6ICdzZXRfZ2l0X3Byb2plY3QnLFxyXG5cdG5hbWU6ICdTZXQgR2l0IFByb2plY3QnLFxyXG5cdGNhbGxiYWNrOiBhc3luYyAoKSA9PiB7XHJcblx0XHRsZXQgbmMgPSBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKCdub3RlLWNoYWluJyk7XHJcblx0XHRsZXQgZGlyID0gYXdhaXQgbmMuY2hhaW4udHBfcHJvbXB0KCdcdThGOTNcdTUxNjVcdTY1ODdcdTRFRjZcdTU5MzknKTtcclxuXHRcdGlmKCFkaXIgfHwgIWZzLmV4aXN0c1N5bmMoZGlyKSl7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGF3YWl0IG5jLmVkaXRvci5zZXRfZnJvbnRtYXR0ZXIoXHJcblx0XHRcdG5jLmNoYWluLmN1cnJlbnRfbm90ZSxcclxuXHRcdFx0cGx1Z2luLnNldHRpbmdzLm5hbWVMb2NhbEdpdFByb2plY3QsXHJcblx0XHRcdGRpclxyXG5cdFx0KVxyXG5cdH1cclxufSk7XHJcblxyXG5jb25zdCBjb21tYW5kQnVpbGRlcnMgPSBbXHJcblx0Y21kX2V4cG9ydF9yZWFkbWUsXHJcblx0Y21kX3NldF9naXRfcHJvamVjdFxyXG5dO1xyXG5cclxuZnVuY3Rpb24gYWRkQ29tbWFuZHMocGx1Z2luOlZhdWx0RXhwb3RlclBsdWdpbikge1xyXG4gICAgY29tbWFuZEJ1aWxkZXJzLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICBwbHVnaW4uYWRkQ29tbWFuZChjKHBsdWdpbikpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZhdWx0RXhwb3RlclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XHJcblx0c2V0dGluZ3M6IFZFeHBvcnRlclNldHRpbmdzO1xyXG5cdHJvb3QgOiBzdHJpbmc7XHJcblx0XHJcblx0YXN5bmMgb25sb2FkKCkge1xyXG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcclxuXHRcdHRoaXMuYXBwLnZ0ID0gdGhpcztcclxuXHRcdHRoaXMuZnMgPSBmcztcclxuXHRcdHRoaXMucm9vdCA9IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIuYmFzZVBhdGg7XHJcblx0XHQvLyBUaGlzIGFkZHMgYSBzZXR0aW5ncyB0YWIgc28gdGhlIHVzZXIgY2FuIGNvbmZpZ3VyZSB2YXJpb3VzIGFzcGVjdHMgb2YgdGhlIHBsdWdpblxyXG5cdFx0dGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBWRXhwb3J0ZXJTZXR0aW5nVGFiKHRoaXMuYXBwLCB0aGlzKSk7XHJcblxyXG5cdFx0YWRkQ29tbWFuZHModGhpcyk7XHJcblx0fVxyXG5cclxuXHRvbnVubG9hZCgpIHtcclxuXHJcblx0fVxyXG5cclxuXHRhc3luYyBsb2FkU2V0dGluZ3MoKSB7XHJcblx0XHR0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIHNhdmVTZXR0aW5ncygpIHtcclxuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQqIFx1OTY0NFx1NEVGNiBzcmMgXHU1MjMwIGRzdFx1RkYwQ1x1NEUwRFx1NTcyOCB2YXVsdCBcdTRFMkRcdUZGMENcdTk3MDBcdTg5ODFcdTdFRERcdTVCRjlcdThERUZcdTVGODRcclxuXHQqIG92ZXJ3cml0ZVx1RkYwQ1x1NTkwRFx1NzZENlx1RkYxQm10aW1lXHVGRjBDXHU2NUIwXHU2NTg3XHU0RUY2XHVGRjFCXHJcblx0Ki9cclxuXHRjb3B5X2ZpbGVfYnlfcGF0aChzcmM6c3RyaW5nLCBkc3Q6c3RyaW5nLG1vZGU9J292ZXJ3cml0ZT5tdGltZT5wYXNzJykge1xyXG5cdFx0bW9kZSA9IG1vZGUuc3BsaXQoJz4nKVswXVxyXG5cdFx0aWYoIWZzLmV4aXN0c1N5bmMoc3JjKSl7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGlmKGZzLmV4aXN0c1N5bmMoZHN0KSl7XHJcblx0XHRcdGlmKG1vZGU9PT0nb3ZlcndyaXRlJyl7XHJcblx0XHRcdFx0ZnMudW5saW5rU3luYyhkc3QpO1xyXG5cdFx0XHRcdGZzLmNvcHlGaWxlU3luYyhzcmMsZHN0KTtcclxuXHRcdFx0fWVsc2UgaWYobW9kZT09PSdtdGltZScpe1xyXG5cdFx0XHRcdC8vIGRzdCBcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjRcdTVDMEZcdTRFOEUgc3JjXHJcblx0XHRcdFx0aWYoZnMuc3RhdFN5bmMoZHN0KS5tdGltZU1zPGZzLnN0YXRTeW5jKHNyYykubXRpbWVNcyl7XHJcblx0XHRcdFx0XHRmcy51bmxpbmtTeW5jKGRzdCk7XHJcblx0XHRcdFx0XHRmcy5jb3B5RmlsZVN5bmMoc3JjLGRzdCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0ZnMuY29weUZpbGVTeW5jKHNyYyxkc3QpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWJzcGF0aCh0ZmlsZTpURmlsZSl7XHJcblx0XHRpZih0ZmlsZSl7XHJcblx0XHRcdHJldHVybiB0aGlzLnJvb3QrJy8nK3RmaWxlLnBhdGg7XHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjb3B5X3RmaWxlKHRmaWxlOlRGaWxlLCBkc3Q6c3RyaW5nKSB7XHJcblx0XHRpZih0ZmlsZSl7XHJcblx0XHRcdGxldCBzcmMgPSB0aGlzLmFic3BhdGgodGZpbGUpO1xyXG5cdFx0XHRzcmMgJiYgdGhpcy5jb3B5X2ZpbGVfYnlfcGF0aChzcmMsZHN0KTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0YXN5bmMgZXhwb3J0X3JlYWRtZSh0ZmlsZTpURmlsZSxkc3Q6c3RyaW5nfG51bGwsYXNfcmVhZG1lPXRydWUsYXNzZXRzPSdhc3NldHMnKXtcclxuXHRcdFxyXG5cdFx0bGV0IG5jID0gdGhpcy5hcHAucGx1Z2lucy5nZXRQbHVnaW4oJ25vdGUtY2hhaW4nKTtcclxuXHRcdGlmKCF0ZmlsZSl7dGZpbGUgPSBuYy5jaGFpbi5jdXJyZW50X25vdGU7fVxyXG5cdFx0XHJcblx0XHRpZighZHN0KXtcclxuXHRcdFx0ZHN0ID0gdGhpcy5zZXR0aW5ncy5uYW1lTG9jYWxHaXRQcm9qZWN0O1xyXG5cdFx0fVxyXG5cdFx0aWYoIWRzdC5jb250YWlucygnLycpKXtcclxuXHRcdFx0ZHN0ID0gbmMuZWRpdG9yLmdldF9mcm9udG1hdHRlcih0ZmlsZSxkc3QpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmKCFkc3Qpe1xyXG5cdFx0XHRkc3QgPSBhd2FpdCBuYy5jaGFpbi50cF9wcm9tcHQoJ1BhdGggb2YgTG9jYWxHaXRQcm9qZWN0Jyk7XHJcblx0XHRcdGlmKCFkc3Qpe3JldHVybjt9XHJcblx0XHR9XHJcblx0XHRkc3QgPSBkc3QucmVwbGFjZSgvXFxcXC9nLCcvJyk7XHJcblx0XHRpZighZnMuZXhpc3RzU3luYyhkc3QpKXtcclxuXHRcdFx0Y29uc29sZS5sb2coJ05vIERpcjonLGRzdCk7XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZyhkc3QpO1xyXG5cdFx0bGV0IG9saW5rcyA9IG5jLmNoYWluLmdldF9vdXRsaW5rcyh0ZmlsZSk7XHJcblx0XHRcclxuXHRcdGxldCB0bXA7XHJcblx0XHRpZihhc19yZWFkbWUpe1xyXG5cdFx0XHR0bXAgPSBkc3QrJy8nKydyZWFkTWUubWQnO1xyXG5cdFx0fWVsc2V7XHJcblx0XHRcdHRtcCA9IGRzdCsnLycrdGZpbGUuYmFzZW5hbWUrJy5tZCc7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5jb3B5X3RmaWxlKHRmaWxlLHRtcCk7XHJcblxyXG5cdFx0bGV0IGFkaXIgPSBkc3QrJy8nK2Fzc2V0cztcclxuXHRcdGlmKCFmcy5leGlzdHNTeW5jKGFkaXIpKXtcclxuXHRcdFx0ZnMubWtkaXJTeW5jKGFkaXIpO1xyXG5cdFx0fVxyXG5cdFx0Zm9yKGxldCBmIG9mIG9saW5rcyl7XHJcblx0XHRcdGlmKCEoZi5leHRlbnNpb249PT0nbWQnKSl7XHJcblx0XHRcdFx0dGhpcy5jb3B5X3RmaWxlKGYsYWRpcisnLycrZi5iYXNlbmFtZSsnLicrZi5leHRlbnNpb24pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5jbGFzcyBWRXhwb3J0ZXJTZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XHJcblx0cGx1Z2luOiBWYXVsdEV4cG90ZXJQbHVnaW47XHJcblxyXG5cdGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IFZhdWx0RXhwb3RlclBsdWdpbikge1xyXG5cdFx0c3VwZXIoYXBwLCBwbHVnaW4pO1xyXG5cdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcblx0fVxyXG5cclxuXHRkaXNwbGF5KCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qge2NvbnRhaW5lckVsfSA9IHRoaXM7XHJcblxyXG5cdFx0Y29udGFpbmVyRWwuZW1wdHkoKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0xvY2FsR2l0UHJvamVjdCcpXHJcblx0XHRcdC5zZXREZXNjKCdNZXRhZGF0YSBOYW1lIGZvciBEaXIgb2YgR2l0IFBvcmplY3QnKVxyXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcclxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoJ0VudGVyIHlvdXIgZmllbGQnKVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uYW1lTG9jYWxHaXRQcm9qZWN0KVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5hbWVMb2NhbEdpdFByb2plY3QgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHRcdFxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdGb2xkZXIgRm9yIEFzc2V0cycpXHJcblx0XHRcdC5zZXREZXNjKCdEaXIgTmFtZSBmb3IgQXNzZXRzJylcclxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFzc2V0c0xvY2FsR2l0UHJvamVjdClcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hc3NldHNMb2NhbEdpdFByb2plY3QgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRcclxuXHR9XHJcbn1cclxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBLHNCQUFtRztBQUluRyxJQUFNLEtBQUssUUFBUSxJQUFJO0FBT3ZCLElBQU0sbUJBQXNDO0FBQUEsRUFDM0MscUJBQXFCO0FBQUEsRUFDckIsdUJBQXVCO0FBQ3hCO0FBRUEsSUFBTSxvQkFBb0IsQ0FBQyxZQUErQjtBQUFBLEVBQ3pELElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLFVBQVUsWUFBWTtBQUNyQixRQUFJLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxVQUFVLFlBQVk7QUFDeEQsUUFBSSxRQUFRLEdBQUcsTUFBTTtBQUNyQixVQUFNLE9BQU87QUFBQSxNQUNaO0FBQUEsTUFBTTtBQUFBLE1BQUs7QUFBQSxNQUFLLE9BQU8sU0FBUztBQUFBLElBQ2pDO0FBQUEsRUFDRDtBQUNEO0FBRUEs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 +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0ICogYXMgTW9kdWxlIGZyb20gJ21vZHVsZSc7XHJcbmltcG9ydCB7IEFwcCwgRWRpdG9yLCBNYXJrZG93blZpZXcsIE1vZGFsLCBOb3RpY2UsIFBsdWdpbiwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZywgVEZpbGUgfSBmcm9tICdvYnNpZGlhbic7XHJcblxyXG4vLyBSZW1lbWJlciB0byByZW5hbWUgdGhlc2UgY2xhc3NlcyBhbmQgaW50ZXJmYWNlcyFcclxuXHJcbmNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcclxuXHJcbmludGVyZmFjZSBWRXhwb3J0ZXJTZXR0aW5ncyB7XHJcblx0bmFtZUxvY2FsR2l0UHJvamVjdDogc3RyaW5nO1xyXG5cdGFzc2V0c0xvY2FsR2l0UHJvamVjdDpzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IFZFeHBvcnRlclNldHRpbmdzID0ge1xyXG5cdG5hbWVMb2NhbEdpdFByb2plY3Q6ICdMb2NhbEdpdFByb2plY3QnLFxyXG5cdGFzc2V0c0xvY2FsR2l0UHJvamVjdDogJ2Fzc2V0cydcclxufVxyXG5cclxuY29uc3QgY21kX2V4cG9ydF9yZWFkbWUgPSAocGx1Z2luOlZhdWx0RXhwb3RlclBsdWdpbikgPT4gKHtcclxuXHRpZDogJ2V4cG9ydF9yZWFkbWUnLFxyXG5cdG5hbWU6ICdFeHBvcnQgcmVhZE1lJyxcclxuXHRjYWxsYmFjazogYXN5bmMgKCkgPT4ge1xyXG5cdFx0bGV0IG5jID0gYXdhaXQgcGx1Z2luLmFwcC5wbHVnaW5zLmdldFBsdWdpbignbm90ZS1jaGFpbicpO1xyXG5cdFx0bGV0IHRmaWxlID0gbmMuY2hhaW4uY3VycmVudF9ub3RlO1xyXG5cdFx0YXdhaXQgcGx1Z2luLmV4cG9ydF9yZWFkbWUoXHJcblx0XHRcdHRmaWxlLG51bGwsdHJ1ZSxwbHVnaW4uc2V0dGluZ3MuYXNzZXRzTG9jYWxHaXRQcm9qZWN0XHJcblx0XHQpO1xyXG5cdH1cclxufSk7XHJcblxyXG5jb25zdCBjbWRfc2V0X2dpdF9wcm9qZWN0ID0gKHBsdWdpbjpWYXVsdEV4cG90ZXJQbHVnaW4pID0+ICh7XHJcblx0aWQ6ICdzZXRfZ2l0X3Byb2plY3QnLFxyXG5cdG5hbWU6ICdTZXQgR2l0IFByb2plY3QnLFxyXG5cdGNhbGxiYWNrOiBhc3luYyAoKSA9PiB7XHJcblx0XHRsZXQgbmMgPSBhd2FpdCBwbHVnaW4uYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKCdub3RlLWNoYWluJyk7XHJcblx0XHRsZXQgZGlyID0gYXdhaXQgbmMuY2hhaW4udHBfcHJvbXB0KCdcdThGOTNcdTUxNjVcdTY1ODdcdTRFRjZcdTU5MzknKTtcclxuXHRcdGlmKCFkaXIgfHwgIWZzLmV4aXN0c1N5bmMoZGlyKSl7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGF3YWl0IG5jLmVkaXRvci5zZXRfZnJvbnRtYXR0ZXIoXHJcblx0XHRcdG5jLmNoYWluLmN1cnJlbnRfbm90ZSxcclxuXHRcdFx0cGx1Z2luLnNldHRpbmdzLm5hbWVMb2NhbEdpdFByb2plY3QsXHJcblx0XHRcdGRpclxyXG5cdFx0KVxyXG5cdH1cclxufSk7XHJcblxyXG5jb25zdCBjb21tYW5kQnVpbGRlcnMgPSBbXHJcblx0Y21kX2V4cG9ydF9yZWFkbWUsXHJcblx0Y21kX3NldF9naXRfcHJvamVjdFxyXG5dO1xyXG5cclxuZnVuY3Rpb24gYWRkQ29tbWFuZHMocGx1Z2luOlZhdWx0RXhwb3RlclBsdWdpbikge1xyXG4gICAgY29tbWFuZEJ1aWxkZXJzLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICBwbHVnaW4uYWRkQ29tbWFuZChjKHBsdWdpbikpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZhdWx0RXhwb3RlclBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XHJcblx0c2V0dGluZ3M6IFZFeHBvcnRlclNldHRpbmdzO1xyXG5cdHJvb3QgOiBzdHJpbmc7XHJcblx0XHJcblx0YXN5bmMgb25sb2FkKCkge1xyXG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcclxuXHRcdHRoaXMuYXBwLnZ0ID0gdGhpcztcclxuXHRcdHRoaXMuZnMgPSBmcztcclxuXHRcdHRoaXMucm9vdCA9IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIuYmFzZVBhdGg7XHJcblx0XHQvLyBUaGlzIGFkZHMgYSBzZXR0aW5ncyB0YWIgc28gdGhlIHVzZXIgY2FuIGNvbmZpZ3VyZSB2YXJpb3VzIGFzcGVjdHMgb2YgdGhlIHBsdWdpblxyXG5cdFx0dGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBWRXhwb3J0ZXJTZXR0aW5nVGFiKHRoaXMuYXBwLCB0aGlzKSk7XHJcblxyXG5cdFx0YWRkQ29tbWFuZHModGhpcyk7XHJcblx0fVxyXG5cclxuXHRvbnVubG9hZCgpIHtcclxuXHJcblx0fVxyXG5cclxuXHRhc3luYyBsb2FkU2V0dGluZ3MoKSB7XHJcblx0XHR0aGlzLnNldHRpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9TRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIHNhdmVTZXR0aW5ncygpIHtcclxuXHRcdGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQqIFx1OTY0NFx1NEVGNiBzcmMgXHU1MjMwIGRzdFx1RkYwQ1x1NEUwRFx1NTcyOCB2YXVsdCBcdTRFMkRcdUZGMENcdTk3MDBcdTg5ODFcdTdFRERcdTVCRjlcdThERUZcdTVGODRcclxuXHQqIG92ZXJ3cml0ZVx1RkYwQ1x1NTkwRFx1NzZENlx1RkYxQm10aW1lXHVGRjBDXHU2NUIwXHU2NTg3XHU0RUY2XHVGRjFCXHJcblx0Ki9cclxuXHRjb3B5X2ZpbGVfYnlfcGF0aChzcmM6c3RyaW5nLCBkc3Q6c3RyaW5nLG1vZGU9J292ZXJ3cml0ZT5tdGltZT5wYXNzJykge1xyXG5cdFx0bW9kZSA9IG1vZGUuc3BsaXQoJz4nKVswXVxyXG5cdFx0aWYoIWZzLmV4aXN0c1N5bmMoc3JjKSl7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGlmKGZzLmV4aXN0c1N5bmMoZHN0KSl7XHJcblx0XHRcdGlmKG1vZGU9PT0nb3ZlcndyaXRlJyl7XHJcblx0XHRcdFx0ZnMudW5saW5rU3luYyhkc3QpO1xyXG5cdFx0XHRcdGZzLmNvcHlGaWxlU3luYyhzcmMsZHN0KTtcclxuXHRcdFx0fWVsc2UgaWYobW9kZT09PSdtdGltZScpe1xyXG5cdFx0XHRcdC8vIGRzdCBcdTY2RjRcdTY1QjBcdTY1RjZcdTk1RjRcdTVDMEZcdTRFOEUgc3JjXHJcblx0XHRcdFx0aWYoZnMuc3RhdFN5bmMoZHN0KS5tdGltZU1zPGZzLnN0YXRTeW5jKHNyYykubXRpbWVNcyl7XHJcblx0XHRcdFx0XHRmcy51bmxpbmtTeW5jKGRzdCk7XHJcblx0XHRcdFx0XHRmcy5jb3B5RmlsZVN5bmMoc3JjLGRzdCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0ZnMuY29weUZpbGVTeW5jKHNyYyxkc3QpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWJzcGF0aCh0ZmlsZTpURmlsZSl7XHJcblx0XHRpZih0ZmlsZSl7XHJcblx0XHRcdHJldHVybiB0aGlzLnJvb3QrJy8nK3RmaWxlLnBhdGg7XHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjb3B5X3RmaWxlKHRmaWxlOlRGaWxlLCBkc3Q6c3RyaW5nKSB7XHJcblx0XHRpZih0ZmlsZSl7XHJcblx0XHRcdGxldCBzcmMgPSB0aGlzLmFic3BhdGgodGZpbGUpO1xyXG5cdFx0XHRzcmMgJiYgdGhpcy5jb3B5X2ZpbGVfYnlfcGF0aChzcmMsZHN0KTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0YXN5bmMgZXhwb3J0X3JlYWRtZSh0ZmlsZTpURmlsZSxkc3Q6c3RyaW5nfG51bGwsYXNfcmVhZG1lPXRydWUsYXNzZXRzPSdhc3NldHMnKXtcclxuXHRcdFxyXG5cdFx0bGV0IG5jID0gdGhpcy5hcHAucGx1Z2lucy5nZXRQbHVnaW4oJ25vdGUtY2hhaW4nKTtcclxuXHRcdGlmKCF0ZmlsZSl7dGZpbGUgPSBuYy5jaGFpbi5jdXJyZW50X25vdGU7fVxyXG5cdFx0XHJcblx0XHRpZighZHN0KXtcclxuXHRcdFx0ZHN0ID0gdGhpcy5zZXR0aW5ncy5uYW1lTG9jYWxHaXRQcm9qZWN0O1xyXG5cdFx0fVxyXG5cdFx0aWYoIWRzdC5jb250YWlucygnLycpKXtcclxuXHRcdFx0ZHN0ID0gbmMuZWRpdG9yLmdldF9mcm9udG1hdHRlcih0ZmlsZSxkc3QpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmKCFkc3Qpe1xyXG5cdFx0XHRkc3QgPSBhd2FpdCBuYy5jaGFpbi50cF9wcm9tcHQoJ1BhdGggb2YgTG9jYWxHaXRQcm9qZWN0Jyk7XHJcblx0XHRcdGlmKCFkc3Qpe3JldHVybjt9XHJcblx0XHR9XHJcblx0XHRkc3QgPSBkc3QucmVwbGFjZSgvXFxcXC9nLCcvJyk7XHJcblx0XHRpZighZnMuZXhpc3RzU3luYyhkc3QpKXtcclxuXHRcdFx0Y29uc29sZS5sb2coJ05vIERpcjonLGRzdCk7XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZyhkc3QpO1xyXG5cdFx0bGV0IG9saW5rcyA9IG5jLmNoYWluLmdldF9vdXRsaW5rcyh0ZmlsZSk7XHJcblx0XHRcclxuXHRcdGxldCB0bXA7XHJcblx0XHRpZihhc19yZWFkbWUpe1xyXG5cdFx0XHR0bXAgPSBkc3QrJy8nKydyZWFkTWUubWQnO1xyXG5cdFx0fWVsc2V7XHJcblx0XHRcdHRtcCA9IGRzdCsnLycrdGZpbGUuYmFzZW5hbWUrJy5tZCc7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5jb3B5X3RmaWxlKHRmaWxlLHRtcCk7XHJcblx0XHRhd2FpdCB0aGlzLnJlcGxhY2VfcmVhZG1lKHRtcCk7XHJcblxyXG5cdFx0bGV0IGFkaXIgPSBkc3QrJy8nK2Fzc2V0cztcclxuXHRcdGlmKCFmcy5leGlzdHNTeW5jKGFkaXIpKXtcclxuXHRcdFx0ZnMubWtkaXJTeW5jKGFkaXIpO1xyXG5cdFx0fVxyXG5cdFx0Zm9yKGxldCBmIG9mIG9saW5rcyl7XHJcblx0XHRcdGlmKCEoZi5leHRlbnNpb249PT0nbWQnKSl7XHJcblx0XHRcdFx0dGhpcy5jb3B5X3RmaWxlKGYsYWRpcisnLycrZi5iYXNlbmFtZSsnLicrZi5leHRlbnNpb24pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHJlcGxhY2VfcmVhZG1lKHBhdGg6c3RyaW5nKXtcclxuXHRcdGZzLnJlYWRGaWxlKHBhdGgsICd1dGY4JywgKGVyciwgZGF0YSkgPT4ge1xyXG5cdFx0XHRpZiAoZXJyKSB7XHJcblx0XHRcdCAgcmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRjb25zdCByZXBsYWNlZENvbnRlbnQgPSBkYXRhLnJlcGxhY2UoXHJcblx0XHRcdFx0L1xcIVxcW1xcWyguKj8pXFxdXFxdL2csIFxyXG5cdFx0XHRcdChtYXRjaCwgZmlsZW5hbWUpID0+IHtcclxuXHRcdFx0ICBcdHJldHVybiBgIVtdKC4vYXNzZXRzLyR7ZmlsZW5hbWV9KWA7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHRcclxuXHRcdFx0Ly8gXHU1RjAyXHU2QjY1XHU1MTk5XHU1MTY1XHU2NUIwXHU1MTg1XHU1QkI5XHU1MjMwXHU2NTg3XHU0RUY2XHJcblx0XHRcdGZzLndyaXRlRmlsZShwYXRoLCByZXBsYWNlZENvbnRlbnQsICd1dGY4JywgKGVycikgPT4ge1xyXG5cdFx0XHQgIGlmIChlcnIpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCdFcnJvciB3cml0aW5nIGZpbGU6JywgZXJyKTtcclxuXHRcdFx0ICB9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdGaWxlIGNvbnRlbnQgdXBkYXRlZCBzdWNjZXNzZnVsbHkuJyk7XHJcblx0XHRcdCAgfVxyXG5cdFx0XHR9KTtcclxuXHRcdCAgfSk7XHJcblx0fVxyXG59XHJcblxyXG5jbGFzcyBWRXhwb3J0ZXJTZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XHJcblx0cGx1Z2luOiBWYXVsdEV4cG90ZXJQbHVnaW47XHJcblxyXG5cdGNvbnN0cnVjdG9yKGFwcDogQXBwLCBwbHVnaW46IFZhdWx0RXhwb3RlclBsdWdpbikge1xyXG5cdFx0c3VwZXIoYXBwLCBwbHVnaW4pO1xyXG5cdFx0dGhpcy5wbHVnaW4gPSBwbHVnaW47XHJcblx0fVxyXG5cclxuXHRkaXNwbGF5KCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qge2NvbnRhaW5lckVsfSA9IHRoaXM7XHJcblxyXG5cdFx0Y29udGFpbmVyRWwuZW1wdHkoKTtcclxuXHJcblx0XHRuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuXHRcdFx0LnNldE5hbWUoJ0xvY2FsR2l0UHJvamVjdCcpXHJcblx0XHRcdC5zZXREZXNjKCdNZXRhZGF0YSBOYW1lIGZvciBEaXIgb2YgR2l0IFBvcmplY3QnKVxyXG5cdFx0XHQuYWRkVGV4dCh0ZXh0ID0+IHRleHRcclxuXHRcdFx0XHQuc2V0UGxhY2Vob2xkZXIoJ0VudGVyIHlvdXIgZmllbGQnKVxyXG5cdFx0XHRcdC5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5uYW1lTG9jYWxHaXRQcm9qZWN0KVxyXG5cdFx0XHRcdC5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGx1Z2luLnNldHRpbmdzLm5hbWVMb2NhbEdpdFByb2plY3QgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHRcdFxyXG5cdFx0bmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcblx0XHRcdC5zZXROYW1lKCdGb2xkZXIgRm9yIEFzc2V0cycpXHJcblx0XHRcdC5zZXREZXNjKCdEaXIgTmFtZSBmb3IgQXNzZXRzJylcclxuXHRcdFx0LmFkZFRleHQodGV4dCA9PiB0ZXh0XHJcblx0XHRcdFx0LnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmFzc2V0c0xvY2FsR2l0UHJvamVjdClcclxuXHRcdFx0XHQub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLnBsdWdpbi5zZXR0aW5ncy5hc3NldHNMb2NhbEdpdFByb2plY3QgPSB2YWx1ZTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHR9XHJcbn1cclxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBLHNCQUFtRztBQUluRyxJQUFNLEtBQUssUUFBUSxJQUFJO0FBT3ZCLElBQU0sbUJBQXNDO0FBQUEsRUFDM0MscUJBQXFCO0FBQUEsRUFDckIsdUJBQXVCO0FBQ3hCO0FBRUEsSUFBTSxvQkFBb0IsQ0FBQyxZQUErQjtBQUFBLEVBQ3pELElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLFVBQVUsWUFBWTtBQUNyQixRQUFJLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxVQUFVLFlBQVk7QUFDeEQsUUFBSSxRQUFRLEdBQUcsTUFBTTtBQUNyQixVQUFNLE9BQU87QUFBQSxNQUNaO0FBQUEsTUFBTTtBQUFBLE1BQUs7QUFBQSxNQUFLLE9BQU8sU0FBUztBQUFBLElBQ2pDO0FBQUEsRUFDRDtBQUNEO0FBRUEsSUFBTSxzQkFBc0IsQ0FBQyxZQUErQjtBQUFBLEVBQzNELElBQUk7QUFBQSxFQUNKLE1BQU07QUFBQSxFQUNOLFVBQVUsWUFBWTtBQUNyQixRQUFJLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxVQUFVLFlBQVk7QUFDeEQsUUFBSSxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsZ0NBQU87QUFDMUMsUUFBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFdBQVcsR0FBRyxH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 diff --git a/main.ts b/main.ts index c4de8ed..754348e 100644 --- a/main.ts +++ b/main.ts @@ -153,6 +153,7 @@ export default class VaultExpoterPlugin extends Plugin { } this.copy_tfile(tfile,tmp); + await this.replace_readme(tmp); let adir = dst+'/'+assets; if(!fs.existsSync(adir)){ @@ -164,6 +165,29 @@ export default class VaultExpoterPlugin extends Plugin { } } } + + replace_readme(path:string){ + fs.readFile(path, 'utf8', (err, data) => { + if (err) { + return; + } + + const replacedContent = data.replace( + /\!\[\[(.*?)\]\]/g, + (match, filename) => { + return `![](./assets/${filename})`; + }); + + // 异步写入新内容到文件 + fs.writeFile(path, replacedContent, 'utf8', (err) => { + if (err) { + console.error('Error writing file:', err); + } else { + console.log('File content updated successfully.'); + } + }); + }); + } } class VExporterSettingTab extends PluginSettingTab { @@ -199,7 +223,5 @@ class VExporterSettingTab extends PluginSettingTab { this.plugin.settings.assetsLocalGitProject = value; await this.plugin.saveSettings(); })); - - } }