emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/denote 303f39e150 15/27: Merge pull request #26 from gg


From: ELPA Syncer
Subject: [elpa] externals/denote 303f39e150 15/27: Merge pull request #26 from ggjp/subdir-support
Date: Sun, 3 Jul 2022 00:57:35 -0400 (EDT)

branch: externals/denote
commit 303f39e15052f0755953b4bd50b5648dd2e06889
Merge: 53e6ca2299 66e455ef84
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #26 from ggjp/subdir-support
    
    Fix links in non org notes
---
 denote-link.el | 14 +++++++-------
 denote.el      |  8 +++++++-
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/denote-link.el b/denote-link.el
index 3305bddfe1..d75823b15b 100644
--- a/denote-link.el
+++ b/denote-link.el
@@ -386,11 +386,12 @@ format is always [[denote:IDENTIFIER]]."
 
 (defun denote-link--find-file-at-button (button)
   "Visit file referenced by BUTTON."
-  (let ((id (denote-link--id-from-string
-             (buffer-substring-no-properties
-              (button-start button)
-              (button-end button)))))
-    (funcall denote-link-buton-action (file-name-completion id 
(denote-directory)))))
+  (let* ((id (denote-link--id-from-string
+              (buffer-substring-no-properties
+               (button-start button)
+               (button-end button))))
+         (file (denote--get-note-path-by-id id)))
+    (funcall denote-link-buton-action file)))
 
 ;;;###autoload
 (defun denote-link-buttonize-buffer (&optional beg end)
@@ -557,8 +558,7 @@ and the identifier."
          (id (if (and (stringp search) (not (string-empty-p search)))
                  (substring link 0 (match-beginning 0))
                link))
-         (path (cl-find-if (lambda (f) (string-prefix-p id 
(file-name-nondirectory f)))
-                           (denote--directory-files :absolute))))
+         (path (denote--get-note-path-by-id id)))
     (cond
      (path-id
       (cons (format "%s" path) (format "%s" id)))
diff --git a/denote.el b/denote.el
index f57ce463e0..26f0168c34 100644
--- a/denote.el
+++ b/denote.el
@@ -327,7 +327,7 @@ FILE must be an absolute path."
   "Return non-nil if current file likely is a Denote note."
   (and (or (string-match-p denote--id-regexp (buffer-file-name))
            (string-match-p denote--id-regexp (buffer-name)))
-       (string= (expand-file-name default-directory) (denote-directory))))
+       (string-prefix-p (denote-directory) (expand-file-name 
default-directory))))
 
 ;;;; Keywords
 
@@ -352,6 +352,12 @@ names that are relative to the variable 
`denote-directory'."
        (lambda (s) (denote--file-name-relative-to-denote-directory s))
        files))))
 
+(defun denote--get-note-path-by-id(id)
+  "Given an ID, return the absolute path of the corresponding note
+in `denote-directory'."
+  (cl-find-if (lambda (f) (string-prefix-p id (file-name-nondirectory f)))
+              (denote--directory-files :absolute)))
+
 (defun denote--directory-files-matching-regexp (regexp &optional 
no-check-current)
   "Return list of files matching REGEXP.
 With optional NO-CHECK-CURRENT do not test if the current file is



reply via email to

[Prev in Thread] Current Thread [Next in Thread]