{{- range .Page.HeadWidgets }}
{{- /* ★ FORK (§3): a widget this viewer may not see is absent from the manifest
entirely — no placeholder, so the page never fetches it and there is no
gap where it would have been (§5.2 row 7). The route answers 404 for the
same viewer, so this is defence in depth, not the only check. */}}
{{- if $.CanSee . }}
{{- if $.App.Config.Server.AsyncLoading }}
{{- else }}
{{- zemanStampWidgetID .GetID .Render }}
{{- end }}
{{- end }}
{{- end }}
{{ end }}
{{- range .Page.Columns }}
{{- range .Widgets }}
{{- if $.CanSee . }}
{{- if $.App.Config.Server.AsyncLoading }}
{{- else }}
{{- /* ★ FORK (#36): the id the live script needs, on a full render too (zeman_syncids.go) */}}
{{- zemanStampWidgetID .GetID .Render }}
{{- end }}
{{- end }}
{{- end }}