Hi everyone and thanks for creating this awesome tool!
I like to keep my links to other files in a special connections property like so:
* Headline :PROPERTIES: :Connections: [[file:2020-06-24--190152.org][other file]] :END:
The problem is, that org-roam doesn’t recognize links that are in properties as backlinks.
This happens in the function
org-roam--extract-links at the line
(org-element-map (org-element-parse-buffer) 'link ...
this function skips over property drawers.
For now I have a workaround, where I’m advicing
Before the functions gets called, I add all of the properties to the end of the buffer as regular strings and after it, I revert the buffer again. Here is the code for that:
(defun ch/org-extract-properties-as-string-from-property-drawer () "Extract all properties in buffer as string." (let ((str "")) (org-element-map (org-element-parse-buffer) 'node-property (lambda (prop) (let ((key (org-element-property :key prop)) (val (org-element-property :value prop))) (setq str (concat str "* :" key ": " val "\n")) )) ) str )) (defun ch/org-insert-properties-into-buffer () "Insert all values from properties and insert them at the end of current buffer." (interactive) (let ((props (ch/org-extract-properties-as-string-from-property-drawer))) (goto-char (point-max)) (newline) (insert props) )) (defun ch/revert-buffer () (interactive) (revert-buffer t t t)) (advice-add 'org-roam--extract-links :before #'ch/org-insert-properties-into-buffer) (advice-add 'org-roam--extract-links :after #'ch/revert-buffer)
That works for now, and I get the correct backlinks, but it’s kind of dirty. I don’t know how many other people have this workflow, but would it be possible to change
org-roam--extract-links to look for links inside of properties?