Как в Hugo работает область видимости переменных для разных страниц?

Как работает область видимости переменных в Hugo для разных страниц?

Я могу составить список заголовков сообщений на своей домашней странице, добавив этот код в themes\[theme name]/layouts/_default/list.html:

<ul>
{{ range .Data.Pages.ByPublishDate }}
        <li>
            {{ .Title }}
        </li>
    {{ end }}
</ul>

Однако тот же код на отдельной странице content/archive.md ничего не дает. Как получить отдельную страницу со списком записей из папки /post?


person mjeppesen    schedule 09.10.2017    source источник


Ответы (1)


объект .Data ограничен типом содержимого, в котором он вызывается. Для доступа к другому типу содержимого используйте объект .Site, с помощью которого вы можете получить доступ к объекту .Pages. Этот объект содержит все страницы всех типов контента. Просто отфильтруйте нужный тип контента с помощью функции where where .Site.Pages "Type" "post".

Итак, ваш код становится:

<ul> {{ range (where .Site.Pages.ByPublishDate "Type" "post") }} <li> {{ .Title }} </li> {{ end }} </ul>

person Scriptonomy    schedule 10.10.2017