Как заставить счетчики контрольного списка накапливать результаты из подзаголовков в org-mode?

Как заставить счетчики контрольного списка накапливать результаты из подзаголовков в org-mode?

Я хочу сделать что-то вроде этого в режиме Org в Emacs:

* headline [%]
** subheadline1 [%]
   - [ ] list item 1
   - [ ] list item 2
** subheadline2 [%]
   - [ ] list item 1
   - [ ] list item 2

Целью здесь является то, чтобы процентный cookie-файл в заголовке отражал общий процент выполненных задач, рассчитанный на основе процентных cookie-файлов его подзаголовков.

Если "subheadline1" находится на40%, а "subheadline2" находится на уровне50%, то "заголовок" должен быть на уровне(40 + 50) / 2 = 45% (2— количество подзаголовков).

Возможно ли это? Если да, то как?

решение1

Я не думаю, что это полностью возможно на данный момент. Флажки по умолчанию работают со своими потомками только как с полными/неполными куки. (См.Флажки). Однако есть возможность использовать org-checkbox-hierarchical-statisticsи включать в заголовок все флажки, а не только прямые дочерние элементы.

Таким образом, добавляя или оценивая

(setq org-checkbox-hierarchical-statistics nil)

Вы можете установить эту функцию (подсчет всех флажков в дереве, рекурсивно) для всех org-файлов.

Если вы хотите установить его только для определенных деревьев, ответ даст строка документации:

org-checkbox-hierarchical-statistics is a variable defined in `org-list.el'.
Its value is t

Documentation:
Non-nil means checkbox statistics counts only the state of direct children.
When nil, all boxes below the cookie are counted.
This can be set to nil on a per-node basis using a COOKIE_DATA property
with the word "recursive" in the value.

В этом случае ваш пример будет выглядеть так:

* headline [%]
:PROPERTIES:
:COOKIE_DATA: recursive
:END:
** subheadline1 [%]
   - [ ] list item 1
   - [ ] list item 2
** subheadline2 [%]
   - [ ] list item 1
   - [ ] list item 2

Для использования вашего дальнейшего примера:
Подзаголовок 1 = 2/4 = 50%
Подзаголовок 2 = 2/5 = 45%
Заголовок 1 = 4/9 = 44,44%

Связанный контент