Thanks for the response, Eric. :)
On Thursday, 5 Mar 2020 at 10:28, Tim Visher wrote:
> I _am_ able to get it to work by adding a file local variable like
>
> ```
> # Local Variables:
> # org-attach-id-dir: "~/.foo/data"
> # End:
> ```
>
> but then whenever I open the file it tells me it's possibly not safe to set
> that.
You've already received a more org-ish response but I'll give you an
Emacs response to this part of your post: Emacs is simply making sure
you are aware that a variable is being set when visiting a file.
My question was more around why I had to do it at all since based on my reading of the manual it seems like I should've been able to do this with some kind of file-wide property. Specifically, I've never been able to wrap my head around `(info "(org) Property Syntax")`.
"Properties are key–value pairs. When they are associated with a single entry or with a tree…," for instance, seems to imply by "When they are associated with a single entry…" that they can be associated with all the entries (or a particular tree or node).
Anyway, I think between you and Gustav I finally have this sorted.
- To set properties at the top level of a file you need to use the `#+PROPERTY: <PROPERTY_NAME> <PROPERTY_VALUE>` syntax. I've been trying to figure out how I misinterpreted that in the past and I _think_ it was because I assumed that the `#+PROPERTY` was actually `#+<PROPERTY>` as in `#+DIR` rather than `#+PROPERTY: DIR`. It looks like to set a file local property in an org file you _must_ (at least on 9.3 or earlier) use the `#+PROPERTY: <PROPERTY_NAME> <PROPERTY_VALUE>` syntax.
- Even then by default org-attach property inheritance is set to `'selective` and `org-use-property-inheritance` is set to off. I've now customized `org-use-property-inheritance` to `'("DIR")` which I believe says that I consider the `DIR` property to be a possible candidate for inheritance and no others. I'm a little concerned about performance implications as the manual gives me all kinds of scary warnings but we'll see about that.
Anyway this appears to work as I expect it to. I don't have to set a file-local variable to anything. I'm using org properties. And `org-attach-dir` now returns the proper directory for this file.
Thanks all! If you think I'm still misunderstanding something please correct me. :)