
Я хочу сделать что-то вроде этого в режиме 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%