TriliumNext × WechatSync 多平台发布 使用教程
它是什么、适合谁
如果你平时用 TriliumNext 记笔记、攒文章,写完还要手动复制到知乎、公众号、CSDN、掘金、B站……这篇文档说的工具就是替你省掉这一步:一篇笔记一键发布到 20+ 个中国内容平台,发布时各平台的登录状态、发布结果、草稿编辑链接都显示在一个控制台里。
它适合在 TriliumNext 里做内容沉淀、需要多平台分发的作者和自媒体运营者。工作方式也很克制:扩展用的是你浏览器里已有的登录态,发布结果默认是各平台的草稿,最终要不要点发布仍然由你确认。
快速开始
整个链路需要四样东西同时就位:宿主机上的桥接服务、Chrome 里的 WechatSync 扩展、打过补丁的 TriliumNext、以及装好的 CLI。按顺序做:
- 安装桥接(宿主机执行)
sudo bash install.sh
安装完成后会打印生成的 Token,WebSocket 监听 :9600,HTTP API 监听 :9601,Token 存在 /etc/wechatsync-token.conf。
-
配置 Chrome 扩展:安装 WechatSync 扩展 → 打开扩展设置页 → 服务器地址填
ws://<NAS_IP>:9600→ Token 填上一步生成的值 → 点「连接」,状态变为「已连接」;随后在各平台网页扫码登录。 -
给 TriliumNext 打补丁
bash patch/patch.sh /path/to/triliumnext
补丁会替换服务端发布逻辑、API 路由和发布控制台前端,并执行 pnpm server:build 重新构建。
- 安装 CLI(Trilium 跑在 Docker 里就装进同一个容器)
npm install -g @wechatsync/cli
docker exec triliumnext npm install -g @wechatsync/cli
- 打开发布控制台:访问
http://<your-trilium>:<port>/publish。
常用操作
- 查看平台登录状态:控制台里绿点=已登录、红点=未登录、灰点=未知;未登录的平台会自动置灰,不可勾选。
- 选择平台并发布:勾选目标平台(可多选),支持多篇文章批量发到多平台;发布结果按文章分组展示,成功的条目带草稿编辑链接,点开即可去各平台后台微调。
- 确认桥接连通:控制台或日志里可以看到桥接状态;扩展断开时页面会显示带「📦 缓存」标注的历史状态,提醒你当前看到的不是实时数据。
- 扫码补登录:哪个平台显示未登录,就去 Chrome 里打开该平台网页扫码,控制台刷新后状态会更新。
- 排查不通:先在宿主机
systemctl status wechatsync-bridge看桥接是否运行,再确认扩展设置里的地址和 Token 与/etc/wechatsync-token.conf一致。
常见问题
- 控制台一直显示连接不上 / 状态空白? 最常见原因是 Trilium 跑在 Docker 里却用
localhost访问桥接。容器内的localhost是容器自己,必须用host.docker.internal(本仓库代码默认已如此);裸机部署则设BRIDGE_HOST=localhost。 - 改了代码怎么不生效? 修改容器内的服务端文件后必须重启容器,Node 只在启动时把代码加载进内存一次。
- 什么值得买发不出去? 这是已知问题:扩展侧缺 CSRF token,其他平台正常。
- 头条号 / 小红书 / 什么值得买的登录状态为什么是「❓ 未知」? 它们不在扩展原生
listPlatforms()里,可以发布,但状态检测拿不到数据。 - 扩展一断,页面就变灰? 不是坏了:桥接/扩展断开时返回的是缓存状态(带 📦 标注),等桥接和扩展恢复连接即可回到实时状态。
- 发布会不会直接发出去? 默认同步为草稿,发布前由你在各平台人工确认。
支持的平台
扩展内置 19 个平台并支持扩展配置:知乎、掘金、微博、哔哩哔哩、百家号、CSDN、语雀、豆瓣、搜狐号、雪球、微信公众号、人人都是产品经理、51CTO、慕课手记、开源中国、思否、博客园、Markdown 压缩包、东方财富,另可加头条号、小红书、什么值得买。
功能清单
- 平台登录状态实时检测(绿 / 红 / 灰三色),未登录自动置灰不可选;
- 桥接或扩展断开时返回缓存状态,页面不再一片空白;
- 发布结果按文章分组,成功条目返回草稿编辑链接;
- 等待扩展连接最多重试 5 次;
- 支持多文章批量发布到多平台。