Почему этот код не отображает содержимое, которое я указываю?

Для этого сайта Hugo у меня есть два раздела в папке «контент», «сообщения» и «проекты», каждый со своими страницами. Страницы site.com/projects/ и site.com/posts/ правильно отображают соответствующий контент. На моей домашней странице я хотел бы отобразить некоторые записи из обоих разделов. Вот layouts/index.html:

{{ define "main" }}

    <div class = "homepage-content">
        {{ .Content }}
    </div>

    <h1>Blog Posts:</h1>
    <div class = "articles">
        {{ $post_pages := where (where site.Pages "Type" "in" "posts") "Params.hidden" "! = " true }}
        {{ range (.Paginate $post_pages).Pages }}
            {{ partial "post-summary.html" . }}
        {{ end }}
    </div>

    <h1>Projects:</h1>
    <div class = "articles">
        {{ $project_pages := where (where site.Pages "Type" "in" "projects") "Params.hidden" "! = " true }}
        {{ range (.Paginate $project_pages).Pages }}
            {{ partial "post-summary.html" . }}
        {{ end }}
    </div>

    {{ partial "pagination.html" . }}

{{ end }}

Что происходит, так это то, что оба блока кода в конечном итоге отображают список страниц из раздела «сообщения», и если я изменю порядок (сначала разместив блок кода для раздела «проекты»), они оба отображают страницы из раздела «проекты». " раздел. Кажется, что происходит что-то вроде скрытой переменной, которая не сбрасывается между блоками кода. Просматривая документы Хьюго около часа, я не мог найти причину. Я уже указал оба раздела в разделе «mainSections» в файле параметров, если это имеет значение (хотя я не думаю, что это имеет значение)

Для справки, я использую тему anubis в качестве основы (хотя она была несколько сильно изменена), но опять же, я не думаю, что это связано.


104
1

Ответ:

Решено

Добрый участник форума Hugo ответил на мой вопрос: https://discourse.gohugo.io/t/list-is-displaying-content-from-the-wrong-section/41255

Я сделал две ошибки. Я пролистнул дважды, что не работает. Я также использовал .Pages вместо .RegularPages, что не рекомендуется (см. здесь).

Пользователь jmooring предоставил следующие два варианта того, как я мог сделать то, что пытался:

  • «Если вы хотите разбить на страницы, создайте отсортированную коллекцию постов и проектов, а затем разбейте коллекцию на страницы. См. https://gohugo.io/functions/union/»
  • «Отобразите первые N сообщений под заголовком «Сообщения» (со ссылкой на другие) и отобразите первые N проектов под заголовком «Проекты» (со ссылкой на другие). См. https://gohugo.io/functions/first. /"