插件开发:实现 Obsidian 同步到 Hexo

人工智能
最近在尝试使用各类 AI 工具,就想着这个问题是可以写个 Obsidian 的插件来减少工作量的,于是花了一个晚上搞定了。

近两年一直使用 Obsidian 进行最终文字的输出,除了发公众号,还会同步发布到博客中,博客使用的 hexo,现在发布博客的步骤是:

  • 将文章标题在翻译软件中翻译为英文,并以横线隔开每个单词,作为 hexo 的文件名。
  • vs code 打开 hexo 的代码,执行 hexo n '英文的文件名' 。
  • 将 Obsidian 中的文章内容复制到新创建的 md 文件中。
  • 修改内容最上方的 Front Matter 信息,例如:categories、tags、date 等。
  • 执行下面命令完成构建和发布:
hexo g
hexo d

这个步骤还是有点繁琐,所以经常会忘记更新,忘记不是因为我懒,而是方式不是最优,最终影响到了执行。平时工作也是同样的道理,一件事情如果很繁琐,不顺利,就得停下来看看方法是不是用错了。

最近在尝试使用各类 AI 工具,就想着这个问题是可以写个 Obsidian 的插件来减少工作量的,于是花了一个晚上搞定了。

使用的工具是 Windsurf,模型还是用的 Cloude 3.5 sonnet ,之所以没用 DeepSeek,是因为通过这几天的试用,感觉 Windsurf 对 Cloude 3.5 sonnet 的调教更优一些(个人感觉)。

遵循一次性对话尽可能只让 AI 完成一件事的原则,我先让生成一个 Obsidian 插件的基础文件,核心逻辑在 main.ts 文件中:

接着就按照我上面提到的步骤一步一步引导 Windsurf 来完成开发。

  • 获取文章标题调用翻译 API 转换为英文,并添加横线隔开,翻译 API 一开始使用的腾讯,几轮下来还是存在问题,换成百度的翻译 API 就运行成功了
  • 将文章内容复制到 hexo 的 _posts  目录,获取 Obsidian 文章中的 tag 和 categories,自动转换为 hexo 需要的 Front Matter 格式
  • 过程中如果遇到错误,可以打开 Obsidian->View->Toggle Developer Tools (和网页的 F12 一样),将错误信息提供,几轮下来基本都能解决

代码写完,执行 npm run build 进行构建,构建完成后,会生成一个新的 main.js 文件,Obsidian 插件需要的是包含 main.js 在内的三个文件,如下图:

怎么安装到 Obsidian,具体步骤也可以在 Windsurf 中询问:

  • 需要注意的是重新覆盖了 main.js 文件后,需要重新加载插件(禁用后重新启用)才能生效。

首次安装后,在 Obsidian 的第三方插件中就可以看到自己开发的插件了:

因为使用了百度的翻译、又要将文章内容同步到 hexo 中,所以需要在插件的设置中配置相关参数:

在文档中点击右键,菜单中选择「Publish to Hexo」就可以完成发布了。发布按钮可以放在以下位置,可以让 Windsurf 根据需要自行选择:

  • 左侧按钮栏
  • 页面菜单项(Page Menu,也就是右上角的三个点菜单)
  • 编辑器菜单项(Editor Menu,右键菜单)
  • 命令面板(原有的位置,可以通过 Ctrl/Cmd + P 调出)

文章内容同步到 hexo 后,在 hexo 的根目录执行 hexo g hexo d 便可发布了。

插件代码已经上传到 Github,地址如下:

https://github.com/oec2003/obsidian-to-hexo-plugin。

责任编辑:姜华 来源: 不止dotNET
相关推荐

2022-06-27 19:16:53

Obsidian工具

2024-07-03 08:02:19

MySQL数据搜索

2023-08-29 08:19:19

PicGo插件开发

2009-06-30 15:59:00

Eclipse插件开发

2011-01-19 13:36:08

Thnderbird插件

2009-06-04 20:26:45

2021-09-26 05:00:11

Vscode插件

2024-01-29 10:20:39

Obsidian链接

2015-07-22 09:51:51

iOS开发线程

2009-06-03 16:06:28

Eclipse插件开发Eclipse

2015-07-22 09:39:38

IOS多线程同步

2013-09-16 16:20:55

自动备份Dropbox

2017-06-29 09:28:37

OracleMariaDB复制

2023-06-08 08:43:36

2010-05-31 14:32:44

SVN自动同步

2011-08-29 14:50:08

jQuery插件

2021-09-05 11:45:11

存储

2020-09-24 08:45:10

React架构源码

2023-08-31 08:32:52

2011-08-25 09:30:22

点赞
收藏

51CTO技术栈公众号