Emacs в организационном режиме; вставить ящик PROPERTIES при создании заголовка

Я хочу вставить при создании заголовка ящик PROPERTIES. Пока у меня это

(defadvice org-insert-heading (after add-id-stuff activate)
  (template-myid))

(defun template-myid ()
  (insert "\n:PROPERTIES:\n:TIME: "
      (format "%s" (format-time-string "%Y-%m-%dT%H:%M:%S"))
      "\n:VERTEX: "
      (format "%s" (shell-command "uuidgen" t))
      "\n:EDGES:  \n:END:"))

Это работает - вроде. Моя проблема в том, что uuid разбрасывается. Вывод выглядит так

* Heading
:PROPERTIES:
:TIME: 2020-03-10T23:34:17
:VERTEX: 12836
:EDGES:  
:END:32bf9499-f9e2-49d9-b8e7-9edb40272411

Не уверен, как заставить это себя вести. Было бы неплохо просто вызвать org-tempo и вставить свой готовый шаблон, но я не придумал, как это сделать...


person 147pm    schedule 08.03.2020    source источник
comment
Посоветовать org-insert-heading добавить ящик?   -  person NickD    schedule 10.03.2020


Ответы (1)


Это работает

(defadvice org-insert-heading (after add-id-stuff activate)
  (template-myid))

(defun template-myid ()
  (insert "\n:PROPERTIES:\n:TIME: "
      (format-time-string "%Y-%m-%dT%H:%M:%S")
      "\n:VERTEX: "
      (org-id-uuid)
      "\n:EDGES:  \n:END:"))

который произвел

* heading
:PROPERTIES:
:TIME: 2020-03-11T08:11:36
:VERTEX: 35e40480-7708-4003-9c84-f950b7ce87ce
:EDGES:  
:END:

Получил помощь от предложения NickD выше, Диего Замбони в списке рассылки org-mode ([email protected]), статья Криса Веллона, а также озадачить обычных официальных подозреваемых в сбросе ссылок. Тем не менее, я не уверен, почему (shell-command "uuidgen" t) выдает два вывода. Вот так они выглядят в *scratch*

(shell-command "uuidgen" t)
2827
b5da7e0a-84c0-4db8-91f3-871b681f3022

(org-id-uuid)
"0bb7a4e1-9fc2-4428-b8de-a2d9ef5c56ab"

хотя прямой uuidgen в командной строке bash создает только UUID. Что происходит, чтобы сначала создать 2827 выше? Я не мог понять *Help* на shell-command.

Функция (org-id-uuid) находится в org-id.el и кажется очень тщательной в своей случайности.

Кроме того, кто-нибудь знает, как я мог это сделать, advise используя функцию в темповых шаблонах организационного режима? Я никогда не мог понять, какая функция на самом деле обрабатывала <...-TAB.

person 147pm    schedule 11.03.2020