From 1c065bb46ba47cc24c8962ed6e71f680f75e66c4 Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Sat, 26 Sep 2020 16:44:11 +0200 Subject: [PATCH] Add simple function to insert links to other items at point --- init.el | 3 ++- site-lisp/db-org.el | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index d026bc0..6a578f4 100644 --- a/init.el +++ b/init.el @@ -716,7 +716,8 @@ db/org-mark-current-default-task db/export-diary db/org-copy-template-for-periodic-task - db/org-find-links-to-current-item)) + db/org-find-links-to-current-item + db/org-add-link-to-other-item)) (use-package org :pin "gnu" diff --git a/site-lisp/db-org.el b/site-lisp/db-org.el index 75a1214..499036c 100644 --- a/site-lisp/db-org.el +++ b/site-lisp/db-org.el @@ -635,6 +635,21 @@ prompt for an item." (org-with-point-at pom (list (org-id-get) (org-entry-get nil "CUSTOM_ID")))))))) +(defun db/org-add-link-to-other-item () + "Interactively query for item and add link to it at point. +Uses `org-id-get-create' to get the ID or CUSTOM_ID propery of +the target headline." + (interactive) + (let ((pom (nth 3 (org-refile-get-location nil (get-file-buffer db/org-default-org-file))))) + (if (not pom) + (user-error "Invalid location") + (let (id item) + (save-mark-and-excursion + (org-with-point-at pom + (setq item (org-entry-get nil "ITEM") + id (org-id-get-create))) + (insert (format "[[id:%s][%s]]" id item))))))) + ;;; End