From 4ea787c213a4d34251aa7223cedb075d865ebaec Mon Sep 17 00:00:00 2001 From: Chris Barrett Date: Sat, 24 Sep 2022 23:22:23 +1200 Subject: [PATCH] Sanitize slipbox name for tag --- lisp/org-roam-slipbox.el | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/lisp/org-roam-slipbox.el b/lisp/org-roam-slipbox.el index 2a53525..c78d28a 100644 --- a/lisp/org-roam-slipbox.el +++ b/lisp/org-roam-slipbox.el @@ -110,17 +110,15 @@ tag applied." +(defun org-roam-slipbox--sanitize-tag (str) + (s-replace-regexp (rx (not (any alnum "_@#%"))) "_" str)) + (defun org-roam-slipbox-from-file (file) (condition-case nil - (let* ((dir (f-dirname file)) - (name (s-replace " " "_" (file-name-nondirectory dir)))) - (cond ((f-same-p dir org-roam-directory) - org-roam-slipbox-default) - ((string-match-p org-tag-re name) - name) - ;; NB. If `name' isn't a legal tag, apply the default. - (t - org-roam-slipbox-default))) + (let ((dir (f-dirname file))) + (if (f-same-p dir org-roam-directory) + org-roam-slipbox-default + (org-roam-slipbox--sanitize-tag (file-name-nondirectory dir)))) (error org-roam-slipbox-default))) ;;;###autoload