目前假设存在这三种checkbox,其中第三种应该不是原生的。我现在希望达到这样的效果,就是原始的空白checkbox,按一次会变成第3种的时钟样式,再按一次会变成原来的完成样式。
时钟样式内部的符号是’/’
- [/]
目前假设存在这三种checkbox,其中第三种应该不是原生的。我现在希望达到这样的效果,就是原始的空白checkbox,按一次会变成第3种的时钟样式,再按一次会变成原来的完成样式。
时钟样式内部的符号是’/’
可以考虑直接用 Tasks 插件 obsidian-tasks-group/obsidian-tasks: Task management for the Obsidian knowledge base.
除增加一系列新的任务状态, 甚至还能给生成个状态转换图表, 让用户检查自己设的对不对
如果是要求 Ob 原生解决, 似乎有点复杂,
我想到的大致是找到当前行, 判断是否为任务行, 自己写逻辑把状态给切过去
let sourceFile = app.workspace.getActiveFile();
let editor = app.workspace.getActiveFileView().editor;
let cursor = editor.getCursor();
console.log("Current cursor: ", cursor);
// debugger;
let taskLine = editor.getLine(cursor.line);
console.log("Current line: ", taskLine);
if (taskLine.trim().startsWith("- [ ]") ||
taskLine.trim().startsWith("- [x]") ||
taskLine.trim().startsWith("- [/]") ) {
fix_task_line(taskLine, sourceFile); // 实现状态切换 editor.setLine(cursor.line, taskLineFixed);
} else {
new Notice('当前行不是任务行, 请检查');
}
但是目前我还不会怎么 “把这处理函数绑定到鼠标单击 task item 勾选框事件” 上
好的,我试试Tasks,谢谢