ZheWana122 downloadsSynchronize shared Markdown knowledge bases with Git history and S3 attachments.
面向小型团队的 Obsidian 知识库同步插件
中文 | English
Oldeng Team Core 使用 Git 同步 Markdown 笔记与团队插件配置,使用兼容 S3 的对象存储同步附件,并在桌面端和移动端提供一致的同步、历史、冲突处理和恢复体验。
[!IMPORTANT] AI 开发声明
本插件完全由 AI 开发,包括源代码、测试、文档和自动化工作流。人类负责提出需求、产品决策、部署授权和验收测试。
username。团队约定使用姓名的全小写拼音,例如 wangxiaoming。日常使用不需要反复打开命令面板。点击 Obsidian 右下角的 Team Core 状态栏即可执行双向同步;自动同步默认关闭,可以在设置中自行启用。
[!WARNING] 立即同步是双向同步。 本地删除会作为有效修改推送到远端。误删文件且尚未同步时,不要点击立即同步,请使用 重置本地并重新同步 从远端恢复。
无法通过社区插件安装时,也可以从 GitHub Releases 下载同一版本的 main.js、manifest.json 和 styles.css,放入:
<Vault>/.obsidian/plugins/team-core/
assets/ 不进入 Git,附件以 tc-sha256-<sha256>.<扩展名> 保存到兼容 S3 的对象存储。.team/assets-manifest.json,并且仅在对象上传成功后提交清单。assets/ 和 私人笔记/assets/ 会从 Obsidian 文件列表与搜索中隐藏。置顶- 文章、分页和刷新。main.js、manifest.json、styles.css、data.json 和其他目录内容。私人笔记/,不会进入 Git 或 S3。Obsidian Vault
└─ Oldeng Team Core
├─ Markdown / 团队配置 ── Git Smart HTTP ── Git 仓库
├─ assets/ ───────────── S3 API ────────── 对象存储
└─ 私人笔记/ ─────────── 仅保留在本机
附件变更遵循固定顺序:
扫描并计算 SHA-256
→ 确认附件对象已上传
→ 更新附件清单
→ 提交 Markdown 与清单
→ 推送 Git
这样可以避免 Git 提交引用尚未上传的附件对象。普通同步是增量同步,已存在且哈希一致的附件不会重复上传。
插件会创建精确路径 私人笔记/。该目录及其子目录不进入 Git,内部附件也不会上传 S3。名称相似但路径不同的目录,例如 私人笔记备份/,仍属于公共同步范围。
在公共区域与私人笔记之间移动 Markdown 时,插件会迁移该笔记独占引用的附件并重写链接。如果附件仍被其他笔记引用,则保留共享副本,避免破坏其他文档。
[!NOTE]
.gitignore只能阻止未来追踪,不能清除历史提交。如果旧仓库曾提交私人内容,需要由管理员重写或重建仓库历史。
| 场景 | 应使用的操作 | 对远端的影响 |
|---|---|---|
| 正常新增、编辑或主动删除文章 | 点击右下角状态栏立即同步 | 推送本地修改与删除 |
| 误删文件且尚未同步 | 重置本地并重新同步 | 无,远端覆盖本地公共内容 |
| 希望完整重新下载知识库 | 重置本地并重新同步 | 无,保留远端 Git 与 S3 |
| 普通内容冲突 | 使用内置冲突编辑器 | 解决后新增合并提交 |
| 测试环境需要清空远端 | 测试:清空远端 Git 与 S3 | 删除远端 Git main 和托管 S3 对象 |
重置本地并重新同步 会保留 私人笔记/、.obsidian/ 和本地回收站,清除其余本地公共内容与 Git 元数据后重新导入远端。
远端清理属于测试期破坏性功能,需要显式确认。Git 与 S3 删除无法组成原子事务,只应在已验证备份的测试环境中使用。
运行插件需要:
1.12.3 或更高版本;快速配置字符串包含共享 Git 和 S3 凭据以及作者显示映射。它使用 tc1. 压缩格式,但不是加密数据,应当像密码一样通过可信私密渠道发送。本机用户名和自动同步选择不会被配置导入覆盖。
插件仅为同步功能访问用户配置的 Git 与 S3 服务,不包含遥测或广告。凭据保存在本机 .obsidian/plugins/team-core/data.json,不会被 Team Core 提交到 Git。
npm install
npm run dev
npm run check
生产构建位于 dist/。npm run check 包含构建、TypeScript 类型检查、Vitest、ESLint、Stylelint 和 Obsidian 插件校验。
发布版本必须提供 .github/release-notes/<版本>.md。推送与 manifest.json 完全一致且不带 v 前缀的标签后,GitHub Actions 会验证并发布 main.js、manifest.json 和 styles.css。
完整更新记录见 CHANGELOG.md。参与开发前请阅读 CONTRIBUTING.md,安全问题请参阅 SECURITY.md。
MIT © 2026 ZheWana