Task View 脚本使用说明
1 功能介绍
Task View 是一个用于 Obsidian 的任务管理视图脚本,它提供了一个灵活的界面来查看和管理你的任务。主要功能包括:
- 多种视图:默认支持 Todo、日报、周报、每日视图等多种任务查看方式
- 自定义按钮(重点):可以自由添加、删除、修改按钮,实现个性化的任务查询与功能集成
- 灵活的查询:支持使用 Tasks 插件语法进行复杂的任务查询
- 周视图导航:可以方便地在不同周之间切换,查看每周的任务
- 日期选择:支持通过周选择器快速跳转到特定周
- 高亮显示:今日按钮和每日按钮会根据当前日期自动高亮
- 调试模式:可以控制是否打印查询语句调试信息
必须的插件依赖
- Dataview:需要开启 dataviewjs 将脚本粘贴到里边
- Tasks:提供待办查询
功能强化插件依赖
- Templater:提供新增待办按钮功能实现
2 视频演示与脚本下载
3 脚本部署步骤
3.1 基础功能
- 安装 Dataview 插件并开启 dataviewjs
- 安装 tasks 插件
- 创建 dataviewjs 代码块
- 自定义编辑 TaskView 脚本中用户配置区域
- 将 TaskView 脚本粘贴进去
- 切换阅读视图
3.2 增强功能
3.3 新增待办集成
- 安装 Templater 插件
- 创建模板 module_insertTask
- 自定义编辑 TaskView 脚本中用户配置区域 Templater 配置部分
- 点击 ✚ 触发新增待办流程
module_insertTask 逻辑是创建对应的文档作为存放不同类型的待办
注意 module_insertTask:
- 需要检查修改用户配置项中笔记文件夹路径
- 存放待办的笔记需要有键为 types,值为 task 的文档属性
- 待办中标签的值来源于文档属性中的别名 aliases 的值否则默认为
#task
4 配置选项
4.1 界面配置
ui: {
fontSize: 0.7, // 字体大小
weekStartDay: 1, // 周开始日:0=周日, 1=周一
}
4.2 Templater 配置
templater: {
homePage: "HomePage", // 首页文件路径名称,或一个不会删除的md文件
moduleInsertTask: "module_insertTask", // Templater 任务插入模板名称
}
4.3 公共查询配置
commonQuery: {
includePaths: [], // 包含路径(为空表示不限制)
excludePaths: ["Templates"], // 排除路径
enabled: true, // 是否启用公共配置
hideBacklink: true, // 是否隐藏 backlink
groupByTag: false, // 是否按标签分组
groupByStatus: false, // 是否按状态分组
excludeFilesWithChars: [], // 排除包含特定字符的文件
limit: 100, // 查询结果限制
}
4.4 调试配置
debug: {
printQuery: true, // 是否打印查询语句调试信息
}
4.5 按钮配置
按钮配置是 Task View 最核心的部分,你可以自由添加、删除、修改按钮。每个按钮必须包含以下字段:
id:按钮唯一标识符label:按钮显示文本type:按钮类型(custom, nav, action, input)position:按钮位置(top, bottom)order:按钮排序(数值越小越靠前)useCommonConfig:是否使用公共配置query:查询语句(仅 custom 类型需要)description:按钮描述
4.6 星期配置
daysOfWeek: ["周一", "周二", "周三", "周四", "周五", "周六", "周天"]
4.7 默认视图
defaultView: "todo", // 按钮 id 或 "daily"
- 可以设置为任意按钮的 id,或者 “daily” 表示每日视图
- 如果设置的 id 不存在,会自动回退到 todo 按钮
4.8 每日按钮查询模板
dailyQuery: "{(done on {{date}}) OR (happens on {{date}}) OR (CANCELLED on {{date}}) OR (created on {{date}})}"
- 可用变量:
{{date}}- 当前选中的日期
5 按钮类型
5.1 custom 类型
-
用途:自定义查询按钮,如 Todo、日报、本周等
-
示例:
{ id: "dailyReport", label: "日报", type: "custom", position: "top", order: 2, useCommonConfig: true, query: "done on {{today}}", description: "显示今日完成的任务", }
5.2 nav 类型
-
用途:导航按钮,用于页面导航操作
-
示例:
{ id: "today", label: "今日", type: "nav", position: "top", order: 7, action: "today", description: "跳转到今天", }
5.3 action 类型
-
用途:动作按钮,用于执行特定操作
-
示例:
{ id: "createTask", label: "✚", type: "action", position: "top", order: 8, action: "createTask", description: "创建新任务", }
5.4 input 类型
-
用途:输入控件,如周选择器
-
示例:
{ id: "weekInput", label: "week", type: "input", position: "top", order: 5, description: "周次选择器", }
6 使用方法
6.1 基本操作
- 点击按钮:直接点击对应按钮即可查看相应的任务视图
- 周导航:使用 “←” 和 “→” 按钮在不同周之间切换
- 今日视图:点击 “今日” 按钮快速返回今天的视图
- 周选择器:使用周选择器输入框可以快速跳转到特定周
- 每日按钮:点击周一至周天的按钮查看对应日期的任务
6.2 自定义按钮
要添加自定义按钮,只需在 buttons 数组中添加新的按钮配置对象即可。例如,添加一个显示所有已完成任务的按钮:
{
id: "completed",
label: "已完成",
type: "custom",
position: "top",
order: 4,
useCommonConfig: true,
query: "done",
description: "显示所有已完成的任务",
}
6.3 查询语法
Task View 使用 Tasks 插件的查询语法,支持以下变量:
{{today}}- 今天的日期(YYYY-MM-DD 格式){{date}}- 当前选中的日期(YYYY-MM-DD 格式){{week}}- 当前选中的周(YYYY-[W]WW 格式)
7 常见问题
7.1 如何添加新的按钮?
在 USER_CONFIG.buttons 数组中添加一个新的按钮配置对象即可。例如:
{
id: "upcoming",
label: "即将到期",
type: "custom",
position: "top",
order: 4,
useCommonConfig: true,
query: "happens before in 7 days",
description: "显示未来7天内到期的任务",
}
7.2 如何禁用公共配置?
有两种方式:
- 全局禁用:设置
commonQuery.enabled: false - 按钮级别禁用:在按钮配置中设置
useCommonConfig: false
7.3 如何修改默认视图?
在 USER_CONFIG 中修改 defaultView 值为按钮 id 即可。例如:
defaultView: "todo"- 默认显示 todo 视图defaultView: "dailyReport"- 默认显示日报视图defaultView: "week"- 默认显示本周视图defaultView: "daily"- 默认显示每日视图
7.4 如何调整按钮顺序?
修改按钮配置中的 order 值,数值越小越靠前。
7.5 如何隐藏查询语句调试信息?
在 USER_CONFIG.debug 中设置 printQuery: false 即可。
7.6 如何新增一个公共配置项
例如:添加新的公共配置项,按照完成日期排序显示
首先确认 tasks 插件语法如下
sort by done
在公共查询配置中新增 isSortByDoneDate 选项默认开启
commonQuery: {
...// 其他省略
isSortByDoneDate: true,
},
在 buildCommonQuery() 方法中添加新的 if 分支
if (cq.isSortByDoneDate) {
query += "sort by done\n";
}
8 注意事项
- 脚本依赖 Dataview 插件,使用前请确保已安装并启用 Dataviewjs
- 脚本依赖于 Tasks 插件,使用前请确保已安装并启用 Tasks 插件
- 创建任务功能依赖于 Templater 插件,使用前请确保已安装并启用 Templater 插件
- 查询语句使用 Tasks 插件的语法,请参考 Tasks 插件文档了解更多查询语法
- 按钮的
id必须唯一,否则可能会导致冲突
9 参考链接
本脚本基于熊猫别熬夜噗~ 大佬的脚本进行的二次开发
二开主要的点是自定义按钮配置,想要什么查询,想要集成其他插件或功能,自己一配置就好
