# Dada Todo List > 一款基于 Obsidian 笔记的待办与清单管理插件,全部基于纯 Markdown 复选框。任务就在你自己的笔记里——日记、收件箱、清单文件。无账号、无云端、无锁定。 [English](./README_en.md) · 简体中文 --- **Dada Todo List(达达清单)** 是一款基于 Obsidian 笔记的待办与清单管理插件。所有任务就是你笔记里的 Markdown 复选框(`- [ ]` / `- [x]`),插件负责把它们聚合起来,提供日历、时间轴、日程等多种视图和顺手的编辑体验。 ### 🎯 这个插件适合你吗? - 🙋 **你已经在用 Obsidian 管理待办** —— 任务散落在日记和各处笔记里,找起来靠搜索、看起来只有干巴巴的列表?装上它,你写过的每一行待办都会聚合成日历、时间轴、日程和清单,**数据一行都不用搬**,还在你原来的笔记里。 - 🌱 **你还没试过用 Obsidian 管理待办** —— 不必再注册第 N 个待办服务:你的库就是任务管理器,纯 Markdown 复选框、全本地、跟着笔记永久保存。从一行 `- [ ]` 开始,慢慢长出属于自己的任务系统。 ### 💡 快速上手 1. 建议开启核心插件「**日记**」(设置 → 核心插件)——有日期的任务就存在你的每日笔记里; 2. 点击左侧栏的 ✅ 图标(或命令面板「打开 Dada Todo List」)打开面板; 3. 在任意一篇每日笔记里写下一行 `- [ ] 买牛奶 #生活`,面板里立刻就能看到。 ### ✨ 功能特性 #### 🗓 六种视图,随意切换 | 视图 | 适合场景 | |---|---| | **日视图** | 聚焦一天:时间轴 + 凌晨列表 + 全天任务 | | **周视图** | 一周七天并排时间轴,定时任务按泳道排布、互不遮挡 | | **月视图** | 整月日历格:农历、节气、节日、法定节假日(休/班)一目了然 | | **日程** | 按日期纵向滚动的议程:已延期 → 未来 7 天 → 更远 | | **清单** | 按 `###` 标题分组管理清单文件,支持列表 / 分栏两种布局 | | **列表** | 全部任务池:按标签、日期、清单、状态(已完成 / 已取消)多维筛选 | #### ✏️ 顺手的任务编辑 - **标题内联语法**:直接写 `#标签` 和 `[文字](链接)`,渲染为可点击的标签胶囊与超链接 - **时间灵活**:单时间、时间段(开始 – 结束)、全天、**跨日期**(开始日期 – 结束日期,自动跨多天显示)四种形态一键切换 - **子任务**:无限层级缩进即子任务,弹窗内直接增删改 #### 🖱 效率操作 - **拖拽改期**:周 / 月视图之间拖拽任务即可改期;时间轴上还能拖动手柄精细调整开始 / 结束时间 - **Option/Alt + 拖拽 = 复制任务**:按住 Option(Mac)/ Alt 或 Ctrl(Windows·Linux)拖动任务,落点会新建一份副本、原任务保留。月视图中副本保持原开始 / 结束时刻只换日期;周 / 日时间轴中拖到哪格哪条即以该位置为新的开始时间(按原时长保留结束) - **过期待办顺延**:一键把所有已过期任务顺延到今天(保留原时刻,全天任务保持全天) - **Ctrl/⌘ + 点击**:直接跳转到任务所在的笔记并高亮定位 - **待办侧栏**:周 / 月视图左侧可展开「无日期 / 所有待办」列表,拖到日历即改期 #### 🔒 数据与隐私 - **纯 Markdown**:任务就是笔记里的复选框,插件删除后数据原样保留 - **全本地**:不依赖任何外部服务,不联网,天然适配各种同步方案 - **界面记忆**:视图、筛选等偏好存本机 localStorage,不污染 data.json、不触发云盘同步 #### 📂 数据访问说明 - **扫描文件列表**:插件会枚举库内 Markdown 文件的**路径与 frontmatter**,用于发现每日笔记与清单文件(清单通过标记全库识别);**只有**命中的日记(限加载范围内)、收件箱、清单文件会被读取正文,其余文件一概不碰。 - **localStorage**:仅存储非必要的界面偏好(当前视图、筛选状态、引导关闭标记等),只存在于本机、不含任何笔记内容、绝不联网同步;刻意不写入 `data.json`,避免频繁改写触发云盘同步服务。 #### 🌍 界面 - **中英双语**:跟随 Obsidian 界面语言自动切换 - **农历支持**:月视图 / 周视图表头显示农历、节气与节日,英文界面下同样可用 - **主题跟随**:配色全部走 Obsidian 原生变量,深浅色主题、自定义主题色都自动适配 ### 🚀 安装 **手动安装**:下载 `main.js`、`styles.css`、`manifest.json` 三个文件,放入 `你的库/.obsidian/plugins/dada-todo-list/` 目录,然后在设置中启用第三方插件并开启本插件。 ### 📁 数据存储 | 数据 | 位置 | |---|---| | 有日期的任务 | **日记文件夹**设置指定的文件夹(插件扫描其中文件名含日期的笔记),任务即这些笔记正文中的复选框 | | 无日期的任务(收件箱) | 默认库根目录 `DadaTodoList.md`,可在设置中改为任意文件;不存在时启动自动创建 | | 清单 | frontmatter `tags` 中包含 `todoList`(可改)的笔记,**全库识别**,不限目录 | > 收件箱文件、清单 tag 标记与日记文件夹都是本插件的设置项。日记文件夹默认指向库根目录(扫描文件名含日期的笔记),可独立于核心「日记」插件使用。 ### 📝 清单文件的写法 任意一篇笔记,只要 frontmatter `tags` 含有清单识别标记(默认 `todoList`)就会成为一份清单。文件里用 **`###` 三级标题作为分组依据**,清单视图按分组展示: ```markdown --- tags: - todoList --- ### 工作 - [ ] 完成季度汇报 #work - [ ] 收集数据 - [ ] 制作图表 - [x] 回复客户邮件 ### 生活 - [ ] 预约牙医 - [x] 给绿萝浇水 ``` 规则与技巧: - **`###` 标题 = 分组名**,可增删改,无需任何额外配置;标题前的任务归入「未分组」 - **缩进的复选框 = 子任务**,层级不限 - 清单视图支持**列表 / 分栏**两种布局;**拖拽任务到其他分组**即可移动归属 - 每个分组标题旁有 **+ 按钮**可向该分组新增任务;侧栏实时显示各清单的总数与完成进度 - 一篇笔记就是一份清单,任务直接存在这篇笔记里——在编辑器里手动增删改,面板会自动刷新 ### ⚙️ 设置 | 设置项 | 说明 | |---|---| | **打开位置** | 左侧栏 / 主工作区标签页 / 右侧栏 | | **主题配色** | 时间轴、日历等任务块的配色方案:默认 / 莫兰迪 / 卡通果冻 / 春樱 / 夏木 / 秋枫 / 冬雪;按任务标题取色,相同标题颜色一致 | | **显示农历与节假日** | 日 / 周 / 月视图中的农历、节气、节日及休 / 班标记,可关闭只显示公历 | | **日记文件夹** | 存放日记(有日期任务)的文件夹,插件扫描该目录及子目录里文件名含日期的笔记;默认 `/` 表示库根目录 | | **日记载入范围** | 仅加载最近 N 天的日记(近 30 / 90 / 180 天 / 一年 / 全部,默认全部)。笔记与任务较多时可调小以提升加载性能 | | **收件箱文件** | 无日期任务的存放文件(相对库根目录的路径);更换路径时若旧文件还有任务,会主动询问是否整体迁移 | | **清单文件 tag 标记** | frontmatter `tags` 含任一标记的笔记即清单文件,可配置多个 | | **每周开始日** | 周视图起始列与月历首列以此为准,可选周日到周六,默认周一 | | **时间轴显示范围** | 时间轴视图的起止小时(0:00 – 24:00),聚焦常用时段 | | **完成任务时添加完成日期标记** | 勾选完成任务时,在任务行末尾追加完成日期(如 ✅ 2026-10-06)。默认开启,关闭后不再追加该标记,开始 / 结束等日期标记不受影响 | ### 🌐 语言 界面跟随 Obsidian 的语言设置(简体中文 / English)。切换 Obsidian 语言后重启即可生效。 --- ## 💖 赞赏支持 如果这个插件对你有帮助,欢迎请作者喝杯咖啡,是我持续更新的动力~你也可以在 [我的小红书](https://xhslink.cn/o/2G9OTVU76WP) 找到我,分享使用技巧与更新动态。 微信赞赏 WeChat Pay 微信赞赏码 支付宝赞赏 Alipay 支付宝赞赏码 --- ## 🛠 开发 ```bash npm install npm run build # 生产构建(产物:dada-todo-list/main.js、styles.css、manifest.json) npm run dev # 开发模式:监听 src/ 改动自动重建 ``` 本地调试:把测试库的插件目录软链到产物目录即可(目录名与插件 id 一致): ```bash ln -s "$(pwd)/dada-todo-list" "你的库/.obsidian/plugins/dada-todo-list" ``` ## 📄 License MIT