aribuga/obsidian-belki-tasks
GitHub: aribuga/obsidian-belki-tasks
belki 是一款 Obsidian 插件,提供类似 Todoist 的任务管理体验,所有任务以本地 Markdown 文件存储于 vault 中。
Stars: 86 | Forks: 0
belki
一款为 Obsidian 设计的、类似 Todoist 的宁静任务管理器。
任务以本地 Markdown 文件的形式保存在你的 vault 中。
社区插件
·
版本发布
·
文档
belki 是一款灵感源自 Todoist 的任务管理器,它完全存在于你的 Obsidian vault 中。你的任务以纯 Markdown 文件的形式存储,完全归你所有。可选的只读日历订阅绝不会将事件转换为 belki 任务,也不会将事件数据写入任务的 Markdown 文件中。
belki 旨在成为轻量级复选框任务插件和较繁重的任务笔记系统之间的折中方案:它既具备足够的结构化以充当真正的任务管理器,又足够轻量以保持宁静且易于使用。
## 截图
## 功能
### 视图
- **Inbox** — 没有项目的任务。
- **Today** — 今天的任务、逾期任务以及可选的只读日历事件。
- **Upcoming** — 按日期分组的未来任务,以及可选的仅日历日期。
- **Projects** — 所有项目或单个重点关注的项目。
- **Filters & Labels** — 按优先级、日期、标签或保存的智能过滤器进行浏览。
- **Activity** — 已完成任务的统计和 26 周的活动热力图。
- **Completed** — 按完成日期分组的已完成任务。
- **Search** — 跨任务标题、描述、项目和标签的快速浮层搜索。
- **Daily Notes** — 在 belki 面板或 `belki-completed` 代码块中显示每日笔记的已完成任务,支持可选的自动插入。
### 任务管理
- 从看板、桌面端浮动编辑器、移动端全屏编辑器,或使用 `belki: Quick Add Task` 命令添加任务。
- 使用默认的 `Cmd/Ctrl + Shift + A` 快捷键进行快速添加。在激活的桌面端 belki 视图中,它会打开上下文编辑器;在 belki 外部或移动端,它会打开全局快速添加模态框。
- 当存在 Obsidian 快捷键分配时,桌面侧边栏的添加任务按钮会显示当前的快捷键。
- 编辑标题、描述、项目、优先级、截止日期、最后期限、标签、重复规则和附件。
- 完成、取消完成、重新安排、移动、复制和删除任务。
- 从逾期部分批量重新安排可见的逾期任务。
- 删除时会要求确认,当涉及直接的子任务时会包含父任务警告。
- 在添加任务时,在标题字段中使用 `#label` 和 `//project`。
- 在任务标题和描述中使用 wikilinks,例如 `[[Project brief]]`。
- 按 Smart、Due date、Priority、Deadline、Created date、Project 或 Alphabetical 排序。
### 子任务
- 从父任务详情视图添加子任务。
- 父任务行显示子任务完成计数器。
- 点击计数器可在主任务列表中展开内联子任务预览。
- 直接从预览中完成子任务。
- 在桌面端的任务详情视图中重新排序子任务。
- 子任务在顶级视图中保持隐藏,以避免重复。
### 周期性任务
- 每日、每周、每月、每年和自定义重复规则。
- 基于日历或基于完成情况的重复。
- 每周重复可以针对多个工作日。
- 周期性任务在完成后推进到下一次发生。
- 使用 **Complete permanently** 来结束一个周期性任务。
### 项目、标签和优先级
- 创建、重命名、归档、删除和为项目设置颜色。
- 在创建项目时选择项目颜色,或使用 Auto。
- 重命名或删除标签而不删除任务。
- 在设置中自定义项目和标签颜色。
- 优先级使用类似 Todoist 的模型:Priority 1、Priority 2、Priority 3 以及默认的 Priority 4。
- 优先级在完成圆圈上以微妙的方式显示。
### 附件
- 将文件附加到任务中。
- 图像附件显示内联预览和灯箱。
- 其他文件显示为紧凑的文件行。
- 附件存储在你的 vault 内。
- 复制任务时,会将附件复制到副本任务自己的附件文件夹中,而不是共享原始文件。
### 移动端
- 响应式单列移动布局。
- 全屏移动任务编辑器。
- 带有返回导航的移动任务详情屏幕。
- 适合移动端的日期选择器和重复控件。
- 任务操作菜单包括 Move to Today、Move to Tomorrow、Pick date、Clear date、Duplicate task 和 Delete task。
- 移动端保持全局快速添加流程,而不是使用桌面端浮动编辑器。
### 可选集成
- 多个 iCal 日历订阅事件可以在 Today 和 Upcoming 中以只读形式内联显示。
- 当暴露有效的 iCal 订阅 URL 时,支持 Google Calendar、Apple/iCloud Calendar 以及其他 HTTPS 或 `webcal://` iCal 源。
- 不添加日历页面或侧边栏项目。
- 日历事件不会存储为 belki 任务,也不会写入任务的 Markdown 文件。
- 日历订阅是只读的。belki 不会创建、编辑、删除、导入、导出或双向同步日历事件。
- 有关设置和安全详细信息,请参阅 [日历订阅](docs/calendar-subscriptions.md)。
## 如何存储任务
belki 会在你的 vault 中创建一个数据文件夹。默认位置是:
```
_belki_files/
├─ Data/
│ └─ YYYY-MM.md
└─ Attachments/
└─
/
```
每个任务都是一个带有元数据的 Markdown 列表项:
```
- [ ] Write portfolio case study draft
id:: task-example
created:: 2026-07-05
due:: 2026-07-08
deadline:: 2026-07-10
project:: Client Work
priority:: P2
description:: Keep it short and visual.
labels:: writing, portfolio
```
没有实际项目的任务只需省略 `project::` 并出现在 Inbox 中。已完成的任务使用 `[x]` 并包含 `completed::` 日期。可以在设置中配置数据文件夹的路径。
有关完整详细信息,请参阅 [Markdown 存储](docs/markdown-storage.md)。
## Obsidian 搜索和排除文件
belki 将任务数据作为本地 Markdown 文件存储在可配置的数据文件夹中(默认为 `_belki_files/`)。由于这些是真实的 vault 文件,不希望 belki 任务数据出现在 Obsidian 搜索、图谱或未链接提及中的用户应将 `_belki_files/` 添加到:
belki 本身仅读取其配置的数据文件夹,不会扫描整个 vault。未来的全 vault 清单导入应遵守 Obsidian 排除的文件夹。
## 安装
### 社区插件
1. 打开 Obsidian 设置 → 社区插件。
2. 点击 **Browse** 并搜索 `belki`。
3. 安装并启用该插件。
4. 运行命令 `belki: Open`。
社区列表:[community.obsidian.md/plugins/belki](https://community.obsidian.md/plugins/belki)
### 手动安装
1. 从 [GitHub release](https://github.com/aribuga/obsidian-belki-tasks/releases) 下载 `manifest.json`、`main.js` 和 `styles.css`。
2. 在你的 vault 中创建此文件夹:
.obsidian/plugins/belki/
3. 将这三个文件复制到该文件夹中。
4. 重新加载 Obsidian。
5. 在设置 → 社区插件中启用 **belki**。
6. 运行命令 `belki: Open`。
## 快速开始
1. 安装并启用 belki。
2. 从命令面板运行 `belki: Open`。
3. 点击 **+ Add task** 或运行 `belki: Quick Add Task`。
4. 添加标题、日期、项目、标签、优先级或重复规则。
5. 没有项目的任务会进入 **Inbox**。
有关详细操作指南,请参阅 [入门指南](docs/getting-started.md)。
## 文档
| 页面 | 描述 |
|---|---|
| [入门指南](docs/getting-started.md) | 安装并迈出第一步 |
| [任务](docs/tasks.md) | 创建、编辑和完成任务 |
| [项目和 Inbox](docs/projects-and-inbox.md) | 项目和 Inbox 如何运作 |
| [子任务](docs/subtasks.md) | 添加和管理子任务 |
| [周期性任务](docs/recurring-tasks.md) | 重复规则和行为 |
| [标签和优先级](docs/labels-and-priorities.md) | 标记任务和设置优先级 |
| [排序和过滤](docs/sorting-and-filtering.md) | 排序、分组和过滤 |
| [附件](docs/attachments.md) | 向任务添加文件和图像 |
| [活动](docs/activity.md) | 已完成的任务历史和统计 |
| [Daily Notes](docs/daily-notes.md) | 显示每日笔记日期的已完成任务 |
| [移动端](docs/mobile.md) | 在移动设备上使用 belki |
| [设置](docs/settings.md) | 配置选项 |
| [Markdown 存储](docs/markdown-storage.md) | belki 如何存储任务数据 |
| [常见问题](docs/faq.md) | 常见问题解答 |
## 开发
```
pnpm install
pnpm run build
```
在开发期间:
```
pnpm run dev
```
构建输出写入到:
- `main.js`
- `styles.css`
- `manifest.json`
## 发布检查清单
- 更新 `manifest.json`、`package.json` 和 `versions.json`。
- 运行 `pnpm install --frozen-lockfile`。
- 运行 `pnpm run typecheck`、`pnpm test` 和 `pnpm run build`。
- 确认 `manifest.json`、`main.js` 和 `styles.css` 存在。
- 创建一个 GitHub release,其标签与 manifest 版本完全匹配。
- 上传 `manifest.json`、`main.js` 和 `styles.css` 作为发布资产。
有关完整流程,请参阅 [RELEASE.md](RELEASE.md)。
## 隐私和网络使用
belki 不添加遥测功能,也不需要账户。它仅在其配置的 vault 数据文件夹内读取和写入任务数据。
如果你启用了可选的日历订阅,belki 仅会获取你配置的 iCal 订阅 URL。这些订阅 URL 本地存储在插件设置中,在设置 UI 中会被掩盖,并且当它们包含日历访问 token 时,应被视为私密机密。
## 计划改进
这些是正在探索的方向,而非承诺:
- 自然语言日期解析(`tomorrow`、`next Friday`、`in 3 days`)。
- 独立的周期性任务改进。
- 遵守 Obsidian 排除文件和文件夹的全 vault 清单导入。
- 更好的轻量级 GTD 风格工作流,例如 Inbox、Next Actions、Waiting、Someday/Maybe 和 Projects。
- 极简、易懂的设置,具有明确的默认值和可选的高级工作流。
## 作者
由 Yasin Aribuga 创建。
## 许可证
MIT。请参阅 [LICENSE](LICENSE)。标签:Markdown, Obsidian插件, 个人信息管理, 任务管理, 效率工具, 日历订阅, 自定义脚本