1. 目标:

  • 实现 Obsidian 内编辑 Hexo 博客文章,尽可能保留hexo语法(因为作者用惯了bushi
  • Obsidian 预览 + Hexo 网站发布
  • 主要支持:
    • 图片预览和黏贴保存处理

      • 问题:Obsidian 和 Hexo 对于..这种相对路径支持不一致
      • 解决方案:
        • 通过脚本直接hexo s/d之前相对路径转为绝对路径
        • 在 Obsidian 中粘贴图片时,自动保存到 Hexo 指定的 source/img/文章名 目录,并插入正确的 Markdown 链接
    • 链接跳转

      • 文件列表拖拽和右键 copy hex link /文章标题右键 copy hexo link :复制 Hexo 的永久链接(abbrlink),例如:[标题](/posts/123456/#标题名)
      • 实现 Obsidian 识别该类链接
    • pdf预览

      • 也通过脚本实现 Obsidian 语法和 Hexo 语法替换

2. 文件夹结构


obsidian-hexo-helper/

├── obsidian-hexo-helper/       # Obsidian 插件本体

│   ├── main.js                 # 核心代码

│   └── manifest.json           # 插件元数据

├── scripts/                    # 配套脚本

│   ├── convert_to_relative.js  # [一次性] 旧文章路径修复脚本 请根据自己blog进行修改

│   └── fix-hexo-compat.js      # [推荐] Hexo 兼容脚本

└── README.md                # 中文说明文档

  1. 插件 (obsidian-hexo-helper)

*   粘贴拦截:监听 editor-paste 事件,图片存入 source/img,插入 ../img/ 相对链接。

*   点击拦截:监听全局点击事件,捕获 /posts/abbrlink 链接,通过构建 abbrlink -> 文件路径 的映射表实现跳转。

*   辅助功能:右键菜单“复制 Hexo 链接”、新建文章自动生成 Front-matter。

  1. 转换脚本 (convert_to_relative.js)

*   Node.js 脚本,一次性批量将旧文章的 /img/ 绝对路径转换为 ../img/ 相对路径。

  1. 兼容脚本 (fix-hexo-compat.js)

*   Hexo Filter 脚本,在 hexo generate 阶段将 ../img/ 还原为 /img/
    * 放到博客根目录下scripts文件夹

3. 具体使用方法

配置

  • 安装插件
  1. obsidian-hexo-helper 文件夹整个复制到 Obsidian 仓库的 .obsidian/plugins/ 下。

  2. 重启 Obsidian,去“第三方插件”里开启 Hexo Helper

  • 修改旧文章图片代码(需要依据个人需求更改)
  1. scripts/convert_to_relative.js 放到 Hexo 博客根目录下。

  2. 运行 node scripts/convert_to_relative.js

  • 配置 Hexo(保证网站正常)
  1. scripts/fix-hexo-compat.js 放到 Hexo 博客的 scripts/ 文件夹里(Hexo 会自动加载这个目录下的脚本)。

具体功能

  • 右键copy hexo link
  • 拖拽文件直接生成hexo link
  • 其余功能都静默进行