On Sun, Jul 28, 2019 at 3:10 AM Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
Hello,

Nathan Neff <nathan.neff@gmail.com> writes:

> I've often been confused why org-mode has both a CUSTOM_ID
> and a ID property.  I mean, why not just use one or the other name?

Custom ID are user-defined, and only meaningful in the scope of the
document. Also, they may appear as-is when exported, e.g., as an anchor
in HTML.

ID are (or should be) generated by Org, and are valid across files,
which means they need to be absolutely unique. 

I have a lot of org files and one of the main purposes of links is to be able to link
to different headings across documents.  This seems to imply I should use 
the ID property.

However, I usually *do* manually assign IDs (not CUSTOM_IDs) myself.   The
reason is so I can reasonably search for the ID within my org files and that the link
ID makes some sense to me.

For example, if I see a link to "id:keyboard_shortcuts" I can tell where it's going.
Later on, if I want to insert a link to my keyboard shortcuts heading in another place
in my org files,  I can make a guess of the ID I want to link to.

So, I guess I'm okay manually assigning ID properties, as long as I don't have conflicts.

Thanks for the explanation!

Thanks,
--Nate


 

Org keeps track of ID if `org-id-track-globally' is non-nil (the
default). If this is nil, there is almost no difference between ID and
custom ID.

> When would I ever have both an ID and a CUSTOM_ID property for
> a heading?

You may want to refer to a heading from anywhere with id:... but need
a clean anchor in HTML export, for example.

FWIW, I never use ID property.

Regards,

--
Nicolas Goaziou