From aba3e8f91191e7f55a3030944453db3318f2f402 Mon Sep 17 00:00:00 2001 From: chap9 <326754+chap9@user.noreply.gitee.com> Date: Wed, 7 May 2025 21:48:33 +0800 Subject: [PATCH] Change: (org-ql-search) Generate the link of heading column with :ID When a heading contains an id property, dynamic block generate the internal link with id not the heading text. In case two heading has the same text. --- org-ql-search.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/org-ql-search.el b/org-ql-search.el index dc7c130..1868595 100644 --- a/org-ql-search.el +++ b/org-ql-search.el @@ -329,9 +329,12 @@ this (must be a single line in the Org buffer): (list (cons 'todo (lambda (element) (org-element-property :todo-keyword element))) (cons 'heading (lambda (element) - (let ((normalized-heading - (org-ql-search--link-heading-search-string (org-element-property :raw-value element)))) - (org-ql-search--org-make-link-string normalized-heading (org-link-display-format normalized-heading))))) + (let* ((normalized-heading + (org-ql-search--link-heading-search-string (org-element-property :raw-value element))) + (id-value (org-element-property :ID element)) + (link-value (or (and id-value (format "id:%s" id-value)) + normalized-heading))) + (org-ql-search--org-make-link-string link-value (org-link-display-format normalized-heading))))) (cons 'priority (lambda (element) (--when-let (org-element-property :priority element) (char-to-string it))))