Использование безголовых страниц в разделах списков в Hugo - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть требование создать страницу раздела, которая состоит из некоторого статического материала заголовка, статического нижнего колонтитула и нескольких разделов контента, управляемого пользователем. Контент, управляемый пользователем, является фрагментарным и не должен иметь постоянную ссылку.

Я подумал, что хорошим способом сделать это может быть использование безголовых страниц .

Похоже, для этого эти фрагменты должны иметь каталог с index.md и должны быть доступны с помощью оператора .Site.GetPage.

Я пытаюсь понять, как использовать .Site.GetPage, чтобы получить список страниц для повторения. Там будет 2..n пользовательских разделов, и я не хочу перестраивать шаблон раздела, если количество модулей содержимого изменится.

Я предполагаю, что либо есть какая-то магия для запроса нескольких страниц с использованием .Site.GetPage, либо для этого есть совершенно другой оператор.

Это, или я совершенно не понял, как использовать безголовые страницы.

Вот мой шаблон для раздела (../layouts/the-range/section.html):

{{ define "main" }}
    <div id="page-wrapper">
        <div class="halfhero" id="map"></div>
    </div>

    {{ $sections := .Site.GetPage "/the-range/*" }}
    <!-- leaf content at .../content/the-range/*/*.md -->
    {{ range $sections }}
    <section class="range-section">
        <div class="section-content">
            {{.Content}}
        </div>
        <img src="{{.Site.BaseURL}}{{.Params.images}}">
    </section>

    {{ end }}
{{ end }} 

Безголовый контент - это просто серия файлов разметки в виде листовых пакетов.

1 Ответ

0 голосов
/ 14 ноября 2018

Через сообщество Гюго на https://discourse.gohugo.io/t/using-headless-pages-in-section-lists-in-hugo/15275/2

При такой структуре:

content/headless/
├── index.md     # headless = true in front matter
├── five.md
├── four
│   └── index.md
├── one
│   └── index.md
├── three
│   └── index.md
└── two
    └── index.md

Вы можете сделать:

{{ $headlessbundle := .Site.GetPage "/headless" }}
{{ range ( $headlessbundle.Resources.ByType "page" ) }} <br>
  {{.}}
{{ end }}

Что должно выдать:

Page(/headless/five.md) 
Page(/headless/four/index.md) 
Page(/headless/three/index.md) 
Page(/headless/two/index.md) 
Page(/headless/one/index.md)
...