[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/hyperdrive 89fa2fe4a9 30/82: Tidy: (hyperdrive--org-normal
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/hyperdrive 89fa2fe4a9 30/82: Tidy: (hyperdrive--org-normalize-link) Deduplicate full URL codepath |
Date: |
Mon, 25 Sep 2023 19:00:52 -0400 (EDT) |
branch: elpa/hyperdrive
commit 89fa2fe4a961bcf3453076435d7734ab1e990ec2
Author: Joseph Turner <joseph@ushin.org>
Commit: Joseph Turner <joseph@ushin.org>
Tidy: (hyperdrive--org-normalize-link) Deduplicate full URL codepath
---
hyperdrive-org.el | 31 ++++++++++++++-----------------
1 file changed, 14 insertions(+), 17 deletions(-)
diff --git a/hyperdrive-org.el b/hyperdrive-org.el
index bcd3ad719e..54aa7b0925 100644
--- a/hyperdrive-org.el
+++ b/hyperdrive-org.el
@@ -178,7 +178,7 @@ the current location."
(org-element-property :end link-element))
(insert (org-link-make-string (hyperdrive--org-normalize-link
link-element))))))
-(defun hyperdrive--org-normalize-link (link-element)
+(cl-defun hyperdrive--org-normalize-link (link-element)
"Return normalized copy of \"hyper://\" LINK-ELEMENT.
Respects `hyperdrive-org-link-full-url' and `org-link-file-path-type'."
(cl-assert hyperdrive-current-entry)
@@ -187,15 +187,18 @@ Respects `hyperdrive-org-link-full-url' and
`org-link-file-path-type'."
(search-option (alist-get 'target (hyperdrive-entry-etc
target-entry)))
(host-format '(public-key)) (with-path t) (with-protocol t)
fragment-prefix destination)
- (cond (hyperdrive-org-link-full-url
- ;; User wants only full "hyper://" URLs.
- (when search-option
- (setf fragment-prefix (concat "#" (url-hexify-string "::"))))
- (setf destination (hyperdrive--format-entry-url
- target-entry :fragment-prefix fragment-prefix
- :with-path with-path
- :with-protocol with-protocol :host-format
host-format)))
- ((hyperdrive-entry-equal-p hyperdrive-current-entry target-entry)
+ (when (or hyperdrive-org-link-full-url
+ (not (hyperdrive-entry-hyperdrive-equal-p
+ hyperdrive-current-entry target-entry)))
+ ;; Full "hyper://" URL
+ (when search-option
+ (setf fragment-prefix (concat "#" (url-hexify-string "::"))))
+ (cl-return-from hyperdrive--org-normalize-link
+ (hyperdrive--format-entry-url
+ target-entry :fragment-prefix fragment-prefix
+ :with-path with-path
+ :with-protocol with-protocol :host-format host-format)))
+ (cond ((hyperdrive-entry-equal-p hyperdrive-current-entry target-entry)
;; Link points to same file on same hyperdrive: make link
;; relative.
(setf destination
@@ -229,13 +232,7 @@ Respects `hyperdrive-org-link-full-url' and
`org-link-file-path-type'."
(setf destination (concat "./"
(file-relative-name
(hyperdrive-entry-path target-entry)
- (file-name-directory
(hyperdrive-entry-path target-entry))))))
- (t
- (setf fragment-prefix (concat "#" (url-hexify-string "::")))
- (setf destination (hyperdrive--format-entry-url
- target-entry :fragment-prefix fragment-prefix
- :with-path with-path
- :with-protocol with-protocol :host-format
host-format))))
+ (file-name-directory
(hyperdrive-entry-path target-entry)))))))
destination))
;;;###autoload
- [nongnu] elpa/hyperdrive 96d458868b 10/82: WIP, (continued)
- [nongnu] elpa/hyperdrive 96d458868b 10/82: WIP, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 8a453f0eb4 14/82: WIP: All tests passing! (so far), ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 82305e861b 15/82: WIP: Have macro define narrower tests, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive a72cf3820d 17/82: WIP: All tests pass, etc., ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive a040fa2686 18/82: WIP, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 5726648878 21/82: Change: (hyperdrive--format-entry-url) Docstring, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 7d3662f842 25/82: Comment: Add TODO, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 016582b1a2 26/82: Tidy: (--org-insert-link-after-advice) Bind search-option at top, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 96129bb5db 27/82: Tidy: Whitespace, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 80ec05b3b5 28/82: Add: (--org-normalize-link) Gut --org-insert-link-after-advice, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 89fa2fe4a9 30/82: Tidy: (hyperdrive--org-normalize-link) Deduplicate full URL codepath,
ELPA Syncer <=
- [nongnu] elpa/hyperdrive a4b2c538df 31/82: Tidy: (hyperdrive--org-normalize-link) Use if instead of cond, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 36a18f326e 34/82: Change: (--org-normalize-link) Return early with search option, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 91c3478593 36/82: Change: (hyperdrive--org-normalize-link) Use file-name-directory, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive c4567c4b9f 46/82: Change: (hyperdrive--org-normalize-link) Use hyperdrive-entry-url, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 28151f3db9 39/82: Change: (--org-normalize-link) Split adaptive into absolute/relative, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 25af84f5e4 52/82: Change: (hyperdrive--org-link) Add "::" to stored link, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 032a77ea2d 43/82: Test: -org-link/same-drive-different-path with heading, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive c99013b23a 61/82: Comment: Add outline heading, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 2c3bc705c7 56/82: Test: Add hyperdrive-test-org-store-link-deftest macro, ELPA Syncer, 2023/09/25
- [nongnu] elpa/hyperdrive 46e6a1201f 54/82: Comment: Add TODO, ELPA Syncer, 2023/09/25