org-heatmap: 执行 org-heatmap-habit-draw-overview, 报错 org-agenda-error

这是我关于 org-heatmap 的配置文件:

(require 'org-habit)
(setq org-habit-graph-column 1)
(setq org-habit-preceding-days 10)
(setq org-habit-following-days 1)
(setq org-habit-show-habits-only-for-today nil)

(require 'org-heatmap)
(require 'emacsql)
(setq org-agenda-files '("~/notes/org/examples.org"))
(setq org-heatmap-db-location "~/notes/org/org-heatmap.db")

我在 examples.orgHabit A headline 这一行执行 org-heatmap-habit-draw-overview, 得到报错:

org-agenda-error: Command not allowed in this line
* TODO Habit A
SCHEDULED: <2023-06-29 Thu .+1d>
:PROPERTIES:
:STYLE:    habit
:LAST_REPEAT: [2023-06-28 Wed 12:30]
:END:

我调试了一下, 发现问题出在:

(or (org-get-at-bol 'org-marker)
                     (org-agenda-error))

返回的是 nil.

我想问 org-marker 是什么 text property? 为什么这里没有这个 text property? 是不是只能在 agenda 中执行这个命令?

对,因为 org-habit 只能在 org-agenda 中用,为了一致性考虑就也设置成了这样。