(fix): uniqify title and tag extraction (#1325)

Remove duplicates from title and tag extraction, arising from
multiple (or the same) sources.

Fixes #1324
This commit is contained in:
Jethro Kuan
2020-11-24 20:00:49 +08:00
committed by GitHub
parent 9ca5461a2f
commit fb0662efe7
2 changed files with 8 additions and 6 deletions

View File

@ -9,6 +9,7 @@
### Fixed ### Fixed
- [#1281](https://github.com/org-roam/org-roam/pull/1281) fixed idle-timer not instantiated on `org-roam-mode` - [#1281](https://github.com/org-roam/org-roam/pull/1281) fixed idle-timer not instantiated on `org-roam-mode`
- [#1308](https://github.com/org-roam/org-roam/pull/1308) fixed file renames corrupting database - [#1308](https://github.com/org-roam/org-roam/pull/1308) fixed file renames corrupting database
- [#1325](https://github.com/org-roam/org-roam/pull/1325) make titles and tags extracted unique per note
## 1.2.3 (13-11-2020) ## 1.2.3 (13-11-2020)

View File

@ -687,7 +687,7 @@ If NESTED, return the first successful result from SOURCES."
(setq coll (nconc coll res)) (setq coll (nconc coll res))
(setq coll res) (setq coll res)
(cl-return)))) (cl-return))))
coll))) (-uniq coll))))
(defun org-roam--extract-tags-all-directories (file) (defun org-roam--extract-tags-all-directories (file)
"Extract tags from using the directory path FILE. "Extract tags from using the directory path FILE.
@ -738,11 +738,12 @@ Tags are obtained via:
path is considered a tag. path is considered a tag.
2. The key #+roam_tags." 2. The key #+roam_tags."
(let* ((file (or file (buffer-file-name (buffer-base-buffer)))) (let* ((file (or file (buffer-file-name (buffer-base-buffer))))
(tags (mapcan (lambda (source) (tags (-uniq
(funcall (intern (concat "org-roam--extract-tags-" (mapcan (lambda (source)
(symbol-name source))) (funcall (intern (concat "org-roam--extract-tags-"
file)) (symbol-name source)))
org-roam-tag-sources))) file))
org-roam-tag-sources))))
(pcase org-roam-tag-sort (pcase org-roam-tag-sort
('nil tags) ('nil tags)
((pred booleanp) (cl-sort tags 'string-lessp :key 'downcase)) ((pred booleanp) (cl-sort tags 'string-lessp :key 'downcase))