That is actually the big change to when it worked before. Because of the problems with relative links (see other thread) I am passing in a dict like this:
$ is set to the starting value of . (“the dot”) by default.
My understanding is that when you are then inside a partial, the starting “dot” would be the context passed on to it. So in your case, the dict. You can see this by printing {{$}} / {{.}} from inside your partial.
$self.Site... works because $self is a Page, and therefore contains the .Site variable.
site.... works because site is a global variable, independent of context.
Seems like I totally misunderstood $. Sounds like it is not global but just per page/template/partial. I don’t find the docs too clear on that. And I didn’t even know there is site as global var. Thanks for clearing this up!