【求助】调用 Mac 自带“预览”软件作为默认阅读器

感觉Mac自带的“预览”非常有用,对一些PDF文件可以直接提取文字,省掉了OCR的工作。我就想,有木有可能基于Mac的这个功能专门设计一个插件,可以在ob上调用这个“预览”,有点像booknote,把阅读器换成Mac自带的这个,这样阅读一些书的时候,我不必ocr,直接在那里画来画去,还能复制粘贴,非常方便。

为此,我问了一下ChatGPT这个插件开发的可行性,我是小白,我也看不懂,请专业人士把把脉~

我问老Chat:

假设你现在是一个obsidian专家,我需要写一个obsidian插件,能够调用mac自带的“预览”软件,在obsidian中实现阅读功能,请帮我看看是否可行。

老Chat的回复如下:

在理论上,是可以实现该插件的。因为 Obsidian 是基于 Electron 开发的应用程序,而预览应用程序则是在 macOS 上本地运行的应用程序,因此,可以通过调用 macOS 的 shell 命令来打开预览应用程序并加载文档。

具体来说,可以使用 Node.js 中的 child_process 模块调用 shell 命令,来启动预览应用程序并将文档加载到预览中。代码示例如下:

const { exec } = require('child_process')

function openPreview(path) {
  const command = `open -a Preview.app '${path}'`
  exec(command, (err) => {
    if (err) {
      console.error(err.message)
    }
  })
}

在插件内部,可以监听 Obsidian 中特定的快捷键或命令,以获取用户在 Obsidian 中选中的文档路径信息,并将其传递给 openPreview() 函数中对应的 path 参数。然后,该函数会将文档路径作为 shell 命令中的参数,并调用 open 命令打开预览应用程序,并自动加载该文档。

需要注意的是,这种实现方式主要用于 macOS 系统上,因为在 Windows 或 Linux 等其他系统上,预览应用程序不一定是默认的文档查看器。

另外,需要注意文件路径的安全性和兼容性,需要针对不同的系统做出不同的路径处理。

请大佬们看看如何,感谢:pray:

1 个赞