Вызов переменных внутри партиала Hugo
У меня есть этот код, который я использую внутри партиала в Hugo, чтобы передать ему контекст.
{{- $ctx := . -}}
{{- $curPage := .page -}}
{{- $otherVar := .otherVar -}}
{{- with $curPage -}}
{{ $section := .CurrentSection }}
{{ if .IsHome }}
<span class="post-section"><a href="{{ $section.Permalink }}" target="_blank">{{ $section.Title }}</a></span>
{{ else }}
<a href="{{ $section.Permalink }}"> {{ $section.Title }}</a>
{{ end }}
{{- end -}}
затем я добавляю
{{- $curPage := . -}}
в верхней части шаблона, где я хочу, чтобы частичное отображалось, затем вызовите частичное как
{{ partial "partial-name.html" (dict "page" $curPage "otherVar" .) }}
. Однако контент возвращает ноль на главной странице, в то время как он работает везде по всему сайту. Может ли кто-нибудь посмотреть на мой код и сказать мне, где я ошибся?
2 ответа
Поскольку вы вызываете частичное следующим образом:
{{ partial "partial-name.html" (dict "page" $curPage "otherVar" .) }}
^^^^^^^^^^^^
Notice
Точка (.) содержится в .otherVar. Чтобы узнать, находитесь ли вы на главной странице, используйте что-то вроде этого в верхней части
partial-name.html
:
{{ if .otherVar.IsHome }}
<pre>Debugging: YES .IsHome</pre>
{{ else }}
<pre>Debugging: NOT .IsHome</pre>
{{ end }}
После того, как вы протестируете приведенный выше фрагмент GO HTML, вы можете обновить исходный код выше.
СОВЕТ: В мире Hugo обычно используется ,
"ctx"
,
"page"
, или же
"Page"
а не как имя ключа словаря, содержащего точку. Обсуждение этого см. в разделе Соглашение об именах для контекста страницы (в словаре) при вызове частичного: поиск мнений в группе обсуждения Hugo.
ДРУГОЙ СОВЕТ: есть некоторые странности Hugo, связанные с чувствительностью к регистру, поэтому я бы не стал использовать
"otherVar"
тем не мение. Вместо этого используйте
"othervar"
,
"context"
или любое имя в нижнем регистре без пробелов. Я делаю это, потому что потратил много времени на проблемы с чувствительностью к регистру Hugo.
Извините - не видел вашего утверждения.
Итак, {{- $curPage := .page -}}
это опечатка.
.Страница
Проверено на локальной - самая актуальная версия гуго.
Также обратите внимание: я не думаю, что на домашней странице есть раздел, поэтому ваш диапазон будет выводить очень мало, так как большая часть текущего раздела или раздела, связанного с ним, ничего не вернет.