検索したNodeのROAM_REFSを直接ブラウザで開く Emacs OrgMode OrgRoam
Org-roamで、検索したNodeを開かずに ROAM_REFS
に指定されたURLに直接飛びたいことがある。
org-roam-node-refs
を使って取得したREFSを browse-url
に渡せばいけそうだ。
(browse-url (car (org-roam-node-refs (org-roam-node-read))))
このままだとREFSを持っていないNodeがたくさん出てくるので、
関係ないNodeを除外するための FILTER-FN
を引数に持たせてやるといい。
(defun my/org-roam-filter-has-refs (node) (when-let* ((refs (org-roam-node-refs node)) (url (car refs)) (http? (string-prefix-p "http" url))) t))
さらに、 org-roam-node-display-template
を設定すればURLも検索の対象にできます。
下記の設定では20文字しか表示されませんが、見えない部分もちゃんと検索対象になってます。
(defun my/org-roam-node-open-ref () (interactive) (let ((org-roam-node-display-template "${title:*} ${refs:20} ${tags:10}")) (browse-url (car (org-roam-node-refs (org-roam-node-read "" #'my/org-roam-filter-has-refs))))))
これでブラウザのブックマークいらずですね。