Skip to content

添加基于文件标签的原生任务自动同步 - #20

Open
qingxuanlin-s wants to merge 4 commits into
CYZice:mainfrom
qingxuanlin-s:main
Open

添加基于文件标签的原生任务自动同步#20
qingxuanlin-s wants to merge 4 commits into
CYZice:mainfrom
qingxuanlin-s:main

Conversation

@qingxuanlin-s

Copy link
Copy Markdown

⚠️⚠️⚠️:纯vibe coding,请谨慎合并。

十分感谢老哥的无私奉献,我是基于目前的能力让codex加了个 对应tag的文件任务自动同步的逻辑,希望可以帮助有需要的人。

本 PR 添加了“按文件标签自动同步原生任务”的功能。

当启用原生任务同步,并且 Markdown 文件带有配置指定的文件标签时,在该文件中新增的
原生任务:

- [ ] 任务内容

会自动创建到滴答清单。创建成功后,插件会把 Dida 跳转链接回写到原任务行(与原动作保存一致)。

## 主要改动

- 新增设置项:原生任务自动同步标签
    - 支持多个标签,用空格或逗号分隔。
    - 留空时关闭自动同步,保持原有行为不变。

- 只匹配 Obsidian 的文件级标签:
    - frontmatter 中的 tags / tag
    - Obsidian metadata cache 中的文件标签
    - 不会把正文里的普通 #tag 单独当作触发条件。

- 在匹配标签的文件保存后,自动同步新增的未完成原生任务。
- 创建远端任务成功后,自动在原任务行回写 Dida 链接。
- 增加重复创建保护:
    - 使用稳定的本地原生任务 ID。
    - 如果远端创建成功但链接回写失败,下次扫描只补回链接,不会重复创建远端任务。

- 补充测试覆盖:
    - 自动同步标签规范化
    - 文件标签匹配
    - Dida 链接回写

## 验证

已通过:

- npm run test:native-task-sync
- npm run test:task-line-format
- npm run build

## 说明

该功能只处理标准 Obsidian 原生任务格式:

- [ ] 任务内容

不会扩展或改变非标准任务语法的支持范围

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant