Hello! I expect the following to return "[[/foobar]]":
(with-temp-buffer (delay-mode-hooks (org-mode)) (insert "[[/foobar]]") (goto-char (point-min)) (let ((link (org-element-link-parser))) (org-element-link-interpreter link nil))) Instead, it returns "[[file:/foobar]]". In hyperdrive.el currently, "[[/foobar]]" and "[[file:/foobar]]" have different meanings: a link with no protocol prefix, like "[[/foobar]]", points to a file inside of the same hyperdrive (virtual p2p folder), whereas a link with the "file" protocol prefix, like "[[file:/foobar]]", points to a file on the local filesystem: https://git.sr.ht/~ushin/hyperdrive.el/tree/33d8cef0507fbbe25839a019b5c42fda862ac4de/item/hyperdrive-org.el#L137 In org-transclusion.el, org-element-context is used to parse a link, and then org-element-link-interpreter is used to insert it into a buffer: https://github.com/nobiot/org-transclusion/blob/b10d4de93c6c0523bd4e7e72c11ef3a9a5630370/org-transclusion.el#L372 The problem is that the "file" protocol prefix is added to links which have no protocol prefix. When you call org-transclusion-make-from-link with point on "[[/foobar]]", org-transclusion.el ends up inserting this: #+transclude: [[file:/foobar]] which, at least with hyperdrive.el, doesn't point to the same file as #+transclude: [[/foobar]] All suggestions are welcome! Thank you!!! Joseph