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