lizhen37 downloadsSync WeChat Official Account articles to your vault as Markdown, archived by date.
将微信公众号文章同步到 Obsidian vault,自动转换为 Markdown,按日期归档,图片下载到本地。
本插件是 WeChat Obsidian Sync 项目的一部分,需要配合后端服务器使用。
微信公众号文章 → 微信小程序提交 → 后端服务器抓取/转换 → 本插件轮询拉取 → Obsidian vault
YYYY-MM 归档到指定目录requestUrl API)requestUrl, vault.create, vault.createBinary)src/
├── main.ts # 插件入口
├── settings.ts # 设置面板
├── syncService.ts # 同步服务(定时轮询 + 增量拉取)
├── apiClient.ts # 后端 API 客户端
├── fileManager.ts # 文件创建与图片下载
├── types.ts # 类型定义
└── logger.ts # 日志工具
需要部署 后端服务器 并获取 API Token。
main.js、manifest.json、styles.css 复制到 vault 的 .obsidian/plugins/wechat-collector/ 目录# 或从源码构建
git clone https://github.com/Lizhen0628/obsidian-wechat-sync.git
cd obsidian-wechat-sync
npm install
npm run build
VAULT="<你的 vault 路径>"
mkdir -p "$VAULT/.obsidian/plugins/wechat-collector"
cp main.js manifest.json styles.css "$VAULT/.obsidian/plugins/wechat-collector/"
| 设置项 | 说明 | 默认值 |
|---|---|---|
| 服务器地址 | 后端服务器的根 URL | — |
| API Token | 与服务器一致的鉴权密钥 | — |
| 自动同步 | 启动时自动按间隔轮询 | 开启 |
| 轮询间隔 | 单位:分钟,0 则禁用 | 5 |
| 保存目录 | 文章保存的基础目录 | Inbox/WeChat |
| 日期归档格式 | 子目录的日期格式 | YYYY-MM |
| 下载图片 | 将文章图片下载到 vault 本地 | 开启 |
| 图片目录名 | 图片存储的子目录名 | attachments |
Inbox/
└── WeChat/
└── 2024-01/
├── 文章标题.md
└── attachments/
├── img_001.png
└── img_002.jpg
npm install
npm run dev # esbuild watch 模式
npm run build # 类型检查 + 生产构建
建议使用 Hot-Reload 插件实现开发时自动重载,并在测试 vault(非主力 vault)中开发。
npx tsx scripts/test-replace.ts
使用 npm version 命令(自动同步 package.json、manifest.json、versions.json,并创建无 v 前缀的 tag):
# 1. bump 版本号(自动更新三个文件 + 创建纯版本号 tag,如 0.2.0 而非 v0.2.0)
npm version patch # 0.1.2 → 0.1.3
npm version minor # 0.1.2 → 0.2.0
npm version major # 0.1.2 → 1.0.0
# 2. 推送代码和标签(会自动触发 GitHub Actions 构建 + 创建草稿 Release)
git push && git push --tags
⚠️ Obsidian 要求 Release tag 不带
v前缀(0.2.0而非v0.2.0),postversion钩子会自动处理。
推送标签后,GitHub Actions 会自动构建并创建草稿 Release(包含 main.js、manifest.json、styles.css)。前往 Releases 审核后手动发布。
Lizhen0628/obsidian-wechat-sync首次提交后,后续版本更新无需再次提交——Obsidian 会自动从 GitHub Release 拉取新版本。