Org 文件的结构—层级与列表—便于定义待办依赖关系。
通常,父待办任务应在所有子待办任务标记为完成后,方可标记为完成。
有时子任务存在逻辑顺序,即某一子任务需在其上方所有同级任务完成后才能执行。
若自定义变量 org-enforce-todo-dependencies ,
Org 会阻止存在未完成子待办事项的条目切换至 DONE 状态。
此外,若条目设有 ‘ORDERED’ 属性,其每个待办子项
都会被阻塞,直至所有更早的同级项标记为完成。示例如下:
* TODO Blocked until (two) is done ** DONE one ** TODO two * Parent :PROPERTIES: :ORDERED: t :END: ** TODO a ** TODO b, needs to wait for (a) ** TODO c, needs to wait for (a) and (b)
你可以通过 ‘NOBLOCKING’ 属性确保条目永远不会被阻塞(参见 Properties and Columns):
* This entry is never blocked :PROPERTIES: :NOBLOCKING: t :END:
org-toggle-ordered-property) ¶切换当前条目的 ‘ORDERED’ 属性。
该行为使用属性实现,因为此设置应仅作用于当前条目,
而非像标签一样从上层条目继承(参见 Tags)。
不过,若你希望通过标签 跟踪(track) 该属性值以提升可见性,
可自定义变量 org-track-ordered-property-with-tag 。
强制修改待办状态,忽略所有状态阻塞规则。
若设置变量 org-agenda-dim-blocked-tasks ,
因存在未标记子项而无法标记为完成的待办条目,
会以淡化字体显示,甚至在议程视图中完全隐藏(参见 Agenda Views)。
你也可以通过复选框阻塞待办状态的修改(参见 Checkboxes)。
若设置变量 org-enforce-todo-checkbox-dependencies ,
存在未勾选复选框的条目将无法切换至 DONE 状态。
若需要更复杂的依赖结构,例如不同树形结构或文件中条目间的依赖, 可查阅 ‘org-contrib’ 仓库中的 ‘org-depend.el’ 模块。