Function: org-roam-migrate-replace-file-links-with-id

org-roam-migrate-replace-file-links-with-id is a natively compiled function defined in org-roam-migrate.el.

Signature

(org-roam-migrate-replace-file-links-with-id)

Documentation

Replace all file: links with ID links in current buffer.

Source Code

;; Defined in /nix/store/60hpqw2cczhjli65ml5v1p4g0q2kbyhb-emacs-packages-deps/share/emacs/site-lisp/elpa/org-roam-20260425.1623/org-roam-migrate.el
(defun org-roam-migrate-replace-file-links-with-id ()
  "Replace all file: links with ID links in current buffer."
  (org-with-point-at 1
    (while (re-search-forward org-link-bracket-re nil t)
      (let* ((mdata (match-data))
             (path (match-string 1))
             (desc (match-string 2)))
        (when (string-prefix-p "file:" path)
          (setq path (expand-file-name (substring path 5)))
          (when-let* ((node-id (caar (org-roam-db-query [:select [id] :from nodes
                                                         :where (= file $s1)
                                                         :and (= level 0)] path))))
            (set-match-data mdata)
            (replace-match (org-link-make-string (concat "id:" node-id)
                                                 desc) nil t)))))))