Вызов переменных внутри партиала 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 -}}

это опечатка.

.Страница

Проверено на локальной - самая актуальная версия гуго.

Также обратите внимание: я не думаю, что на домашней странице есть раздел, поэтому ваш диапазон будет выводить очень мало, так как большая часть текущего раздела или раздела, связанного с ним, ничего не вернет.

Другие вопросы по тегам