Re: How can I keep Org-id links from breaking when moving files?
On 2021-01-21 08:14, aroz...@gmail.com wrote: there's no way to programmatically make sure that Org can find those IDs again (since there's no way to simply add a folder, rather than a list of files, to =org-id-locations= or =org-id-files=? Being that this is Emacs, you can do almost anything you want, with a little Elisp practice. ;) For example, you could write some custom move command which would automatically add the new folder to some variable or file with a list of folders to add to places for org-id to look in from now on. However perhaps we should take a step back and ask ourselves if this is a good approach? And IMHO, starting to scatter files here and there throughout the filesystem is not a good idea. Even if you implement above mentioned custom Elisp, it adds (IMO, needless) complexity. Therefore I would think long and hard if that is actually really necessary, before starting to go down that path. Just my $0.02. Cheers, TRS-80
Re: How can I keep Org-id links from breaking when moving files?
This is helpful clarification, thank you. But does that mean that, if I change the directory where some files with UUIDs are located, there's no way to programmatically make sure that Org can find those IDs again (since there's no way to simply add a folder, rather than a list of files, to =org-id-locations= or =org-id-files=? Thanks, Alan On Wed, Jan 20, 2021 at 5:42 AM doltes wrote: > > Yeah, I also found that confusing. Basically, because both mean the > same. > > I think that a better description for those variables would be > > + =org-id-locations=: List obtained from `org-id-locations-file'. This > list maps each ID to the file in which the definition occurs. It > contains lists of the form (FILE ID). > > + =org-id-files=: List of files which contain ID definitions. >
Re: How can I keep Org-id links from breaking when moving files?
Yeah, I also found that confusing. Basically, because both mean the same. I think that a better description for those variables would be + =org-id-locations=: List obtained from `org-id-locations-file'. This list maps each ID to the file in which the definition occurs. It contains lists of the form (FILE ID). + =org-id-files=: List of files which contain ID definitions.
Re: How can I keep Org-id links from breaking when moving files?
(defvar org-id-locations nil "List of files with IDs in those files.") (defvar org-id-files nil "List of files that contain IDs.") you are in a maze of twisty little passages. you are in a twisty maze of little passages. On 1/19/21, doltes wrote: > > aroz...@gmail.com writes: > >> This question is in the context of using Org-id UUIDs for linking between >> files. If I understand correctly, Org-id knows where to look for UUIDs >> (generated by org-id-get-create) by looking at the org-id-locations >> variable. But what if I move an .org file that I've generated a UUID into >> another folder? I know I can run org-id-update-id-locations, and there's >> an >> org-id-extra-files variable, but is there a way to list all the folders >> on >> the system where Org-id should look for UUIDs? >> >> Thanks, >> Alan > > After reading the docstring of the function > =org-id-update-id-locations=, I found that the files which are scanned > are defined by 6 variables. > > The following was retrieved from the docstring > > #+begin_quote > This will scan all agenda files, all associated archives, and all > files currently mentioned in ‘org-id-locations’. > #+end_quote > > This implies that when that function is executed, the files whose > content is searched for IDs (i.e. they are scanned) are > > + The files mentioned in =org-agenda-files=. > + The archives associated to the files in =org-agenda-files=. > + The files mentioned in =org-id-locations=. > + The files provided as arguments to the =org-id-update-id-locations=. > > The following are not mentioned in the documentation of > =org-id-update-id-locations=, but when looking at the source code, you > can see that the value of the following variables is used > > + =org-id-extra-files= > + =org-id-files= > > As we could see, the files which are scanned are defined by 6 variables. > > Now, apparently, you want to get a list of the files which are > scanned. You can do that by executing what > =org-id-update-id-locations= executes in order to get the list of > files to scan. The following was retrieved from that function with > some modifications > > #+begin_src elisp :results output > (let ((files (delete-dups > (mapcar #'file-truename > (append > (org-agenda-files t org-id-search-archives) > (unless (symbolp org-id-extra-files) > org-id-extra-files) > org-id-files) > (dolist (file files) (princ (format "%s\n" file > #+end_src > > #+RESULTS: > #+begin_example > /home/username/my/org/Statistics.org > /home/username/my/org/Programming languages/Elisp.org > /home/username/my/org/Programming languages/R.org > #+end_example > > Hope that helps. Let me know if that answers your question. > > -- The Kafka Pandemic Please learn what misopathy is. https://thekafkapandemic.blogspot.com/2013/10/why-some-diseases-are-wronged.html
Re: How can I keep Org-id links from breaking when moving files?
aroz...@gmail.com writes: > This question is in the context of using Org-id UUIDs for linking between > files. If I understand correctly, Org-id knows where to look for UUIDs > (generated by org-id-get-create) by looking at the org-id-locations > variable. But what if I move an .org file that I've generated a UUID into > another folder? I know I can run org-id-update-id-locations, and there's an > org-id-extra-files variable, but is there a way to list all the folders on > the system where Org-id should look for UUIDs? > > Thanks, > Alan After reading the docstring of the function =org-id-update-id-locations=, I found that the files which are scanned are defined by 6 variables. The following was retrieved from the docstring #+begin_quote This will scan all agenda files, all associated archives, and all files currently mentioned in ‘org-id-locations’. #+end_quote This implies that when that function is executed, the files whose content is searched for IDs (i.e. they are scanned) are + The files mentioned in =org-agenda-files=. + The archives associated to the files in =org-agenda-files=. + The files mentioned in =org-id-locations=. + The files provided as arguments to the =org-id-update-id-locations=. The following are not mentioned in the documentation of =org-id-update-id-locations=, but when looking at the source code, you can see that the value of the following variables is used + =org-id-extra-files= + =org-id-files= As we could see, the files which are scanned are defined by 6 variables. Now, apparently, you want to get a list of the files which are scanned. You can do that by executing what =org-id-update-id-locations= executes in order to get the list of files to scan. The following was retrieved from that function with some modifications #+begin_src elisp :results output (let ((files (delete-dups (mapcar #'file-truename (append (org-agenda-files t org-id-search-archives) (unless (symbolp org-id-extra-files) org-id-extra-files) org-id-files) (dolist (file files) (princ (format "%s\n" file #+end_src #+RESULTS: #+begin_example /home/username/my/org/Statistics.org /home/username/my/org/Programming languages/Elisp.org /home/username/my/org/Programming languages/R.org #+end_example Hope that helps. Let me know if that answers your question.
How can I keep Org-id links from breaking when moving files?
This question is in the context of using Org-id UUIDs for linking between files. If I understand correctly, Org-id knows where to look for UUIDs (generated by org-id-get-create) by looking at the org-id-locations variable. But what if I move an .org file that I've generated a UUID into another folder? I know I can run org-id-update-id-locations, and there's an org-id-extra-files variable, but is there a way to list all the folders on the system where Org-id should look for UUIDs? Thanks, Alan