一个简单的插件 auto-close-rename-dialog,用于关闭 obsidian 的重命名弹窗。

上一次的自动重命名(见下)有一点点小问题,就是自动重命名以后,没法关闭 ob 自己的重命名弹窗。

创建文件时,根据文件夹下文件数量,自动重命名新文件

于是写了一个非常简单的插件,能够在设定的目录下,延迟 100ms 自动关闭重命名弹窗,由于只是为了简单满足需求,只有main.js和manifest.json两个文件,加起来代码不超过 100 行。

代码很简短,并且应该很少有人和我有同样的需求,所以就不上传代码托管平台,直接附在下面了。

const { Plugin } = require('obsidian'); 

module.exports = class MyPlugin extends Plugin {
    async onload() {
        console.log("自动关闭重命名弹窗插件已启动");

        // 注册事件监听器,检查是否在“文章”文件夹下创建笔记
        this.registerEvent(
            this.app.vault.on("create", (file) => {
                // console.log("文件创建事件触发:"+file.parent.path);
                if (file.parent.path.includes("文章")) {
                    // console.log("正在无需重命名的文件夹内创建文件");
                    setTimeout(() => {
                        this.closeRenameDialog();
                    }, 100);  // 延迟100毫秒,注意过快的话弹窗未触发,无法关闭
                }
            })
        );
    }

    closeRenameDialog() {
        // 获取重命名弹窗
        const renameDialog = document.querySelector("body > div.modal-container.mod-confirmation.mod-dim > div.modal.mod-file-rename");

        if (renameDialog) {
            // 获取取消按钮
            const cancelButton = renameDialog.querySelector(".mod-cancel");
            if (cancelButton) {
                cancelButton.click();  // 自动点击“取消”按钮
            } else {
                console.log("未找到取消按钮");
            }
        } else {
            console.log("未找到重命名弹窗");
        }
    }

    onunload() {
        console.log("关闭");
    }
};

{
    "id": "auto-close-rename-dialog",
    "name": "Auto Close Rename Dialog",
    "version": "1.0.0",
    "minAppVersion": "0.12.0",
    "description": "自动关闭新建文件时弹出的重命名对话框。",
    "author": "Olinta",
    "isDesktopOnly": true
}

插件名就叫 auto-close-rename-dialog ,效果简单粗暴。