mirror of
https://github.com/org-roam/org-roam
synced 2025-08-01 12:17:21 -05:00
remove org-roam-title-to-slug-function
This commit is contained in:
39
org-roam.el
39
org-roam.el
@ -128,12 +128,6 @@ method symbol as a cons cell. For example: '(find (rg . \"/path/to/rg\"))."
|
|||||||
:type '(set (const :tag "find" find)
|
:type '(set (const :tag "find" find)
|
||||||
(const :tag "rg" rg)))
|
(const :tag "rg" rg)))
|
||||||
|
|
||||||
(defcustom org-roam-title-to-slug-function #'org-roam--title-to-slug
|
|
||||||
"Function to be used in converting a title to the filename slug.
|
|
||||||
Function should return a filename string based on title."
|
|
||||||
:type 'function
|
|
||||||
:group 'org-roam)
|
|
||||||
|
|
||||||
(defcustom org-roam-slug-trim-chars
|
(defcustom org-roam-slug-trim-chars
|
||||||
'(;; Combining Diacritical Marks https://www.unicode.org/charts/PDF/U0300.pdf
|
'(;; Combining Diacritical Marks https://www.unicode.org/charts/PDF/U0300.pdf
|
||||||
768 ; U+0300 COMBINING GRAVE ACCENT
|
768 ; U+0300 COMBINING GRAVE ACCENT
|
||||||
@ -341,23 +335,6 @@ Use external shell commands if defined in `org-roam-list-files-commands'."
|
|||||||
"Return a list of all Org-roam files within `org-roam-directory'."
|
"Return a list of all Org-roam files within `org-roam-directory'."
|
||||||
(org-roam--list-files (expand-file-name org-roam-directory)))
|
(org-roam--list-files (expand-file-name org-roam-directory)))
|
||||||
|
|
||||||
(defun org-roam--title-to-slug (title)
|
|
||||||
"Convert TITLE to a filename-suitable slug."
|
|
||||||
(cl-flet* ((nonspacing-mark-p (char)
|
|
||||||
(memq char org-roam-slug-trim-chars))
|
|
||||||
(strip-nonspacing-marks (s)
|
|
||||||
(ucs-normalize-NFC-string
|
|
||||||
(apply #'string (seq-remove #'nonspacing-mark-p
|
|
||||||
(ucs-normalize-NFD-string s)))))
|
|
||||||
(cl-replace (title pair)
|
|
||||||
(replace-regexp-in-string (car pair) (cdr pair) title)))
|
|
||||||
(let* ((pairs `(("[^[:alnum:][:digit:]]" . "_") ;; convert anything not alphanumeric
|
|
||||||
("__*" . "_") ;; remove sequential underscores
|
|
||||||
("^_" . "") ;; remove starting underscore
|
|
||||||
("_$" . ""))) ;; remove ending underscore
|
|
||||||
(slug (-reduce-from #'cl-replace (strip-nonspacing-marks title) pairs)))
|
|
||||||
(downcase slug))))
|
|
||||||
|
|
||||||
(defun org-roam--tags-table ()
|
(defun org-roam--tags-table ()
|
||||||
"Return a hash table of node ID to list of tags."
|
"Return a hash table of node ID to list of tags."
|
||||||
(let ((ht (make-hash-table :test #'equal)))
|
(let ((ht (make-hash-table :test #'equal)))
|
||||||
@ -450,7 +427,21 @@ OLD-FILE is cleared from the database, and NEW-FILE-OR-DIR is added."
|
|||||||
|
|
||||||
(cl-defmethod org-roam-node-slug ((node org-roam-node))
|
(cl-defmethod org-roam-node-slug ((node org-roam-node))
|
||||||
"Return the slug of NODE."
|
"Return the slug of NODE."
|
||||||
(funcall org-roam-title-to-slug-function (org-roam-node-title node)))
|
(let ((title (org-roam-node-title node)))
|
||||||
|
(cl-flet* ((nonspacing-mark-p (char)
|
||||||
|
(memq char org-roam-slug-trim-chars))
|
||||||
|
(strip-nonspacing-marks (s)
|
||||||
|
(ucs-normalize-NFC-string
|
||||||
|
(apply #'string (seq-remove #'nonspacing-mark-p
|
||||||
|
(ucs-normalize-NFD-string s)))))
|
||||||
|
(cl-replace (title pair)
|
||||||
|
(replace-regexp-in-string (car pair) (cdr pair) title)))
|
||||||
|
(let* ((pairs `(("[^[:alnum:][:digit:]]" . "_") ;; convert anything not alphanumeric
|
||||||
|
("__*" . "_") ;; remove sequential underscores
|
||||||
|
("^_" . "") ;; remove starting underscore
|
||||||
|
("_$" . ""))) ;; remove ending underscore
|
||||||
|
(slug (-reduce-from #'cl-replace (strip-nonspacing-marks title) pairs)))
|
||||||
|
(downcase slug)))))
|
||||||
|
|
||||||
(defvar org-roam-node-map
|
(defvar org-roam-node-map
|
||||||
(let ((map (make-sparse-keymap)))
|
(let ((map (make-sparse-keymap)))
|
||||||
|
Reference in New Issue
Block a user