Отказ от ответственности: Это вопрос повторного поста вопроса, который остался без ответа на Hugo forum. Если это не здорово, сообщите мне, и я удалю его/отредактирую.Можем ли мы встраивать один (или несколько) почтовых списков на страницу контента?
Я пытаюсь использовать Hugo (статический генератор сайта), чтобы заменить корпоративный сайт маркетинга. Возможно, я ошибаюсь, поэтому я попытаюсь выразить свои желания, прежде чем я войду в свое взломанное решение.
Моя цель
Для сайта моей компании, у нас есть несколько категорий итерационного содержания, как «тематические исследования» и «Советники». Эти категории уже организованы в дерево.
Я хотел бы создать * .md страницы, которые позволяют создателям нетехнического контента настраивать заголовок и некоторый контент в верхней части страницы, а ниже, я хотел бы добавить серию разделов , каждый из которых содержит список сообщений из дочерних каталогов.
Пример вывода может выглядеть следующим образом:
<head>
<title>About us</title>
</head>
<body>
<!-- Marketing content generated from /content/about/index.md -->
<h1>About us</h1>
<!-- Leadership team list generated automatically from /content/about/leaders/* -->
<section>
<h2>Leadership team</h2>
<ul>
<li>
<!-- Content from /content/about/leaders/first_last.md* -->
</li>
</ul>
</section>
<!-- Foo list generated automatically from /content/about/foo/* -->
<section>
<h2>Foo</h2>
<ul>
<li>
<!-- Content from /content/about/foo/bar.md* -->
</li>
</ul>
</section>
</body>
Как я делаю это сейчас
Я создаю пользовательские макеты для каждой из страниц индекса квази-на основе списка, и макеты используют частичные, которые отображают каждую страницу, соответствующую пользовательскому .Params.type. Поэтому моя /content/about/index.md страница сильно настраивается в файле /layouts/about.html.
Я чувствую, что должен быть лучший способ сделать это, по крайней мере одно из следующих действий:
- Используйте шорткод, которые могут получить доступ к объекту в .Site.Pages, так что мои создатели контента могли бы написать что-то вроде
{{< list 'leader' >}}
на странице контента в любом месте сбоку, чтобы получить список всего содержимого с помощью.Params.type = 'leader'
- Используйте настраиваемый макет, но перебирайте «дети» этой страницы, а не фильтруйте все страницы по типу.
- Используйте шаблон страницы list.html, не жертвуя тем, что у создателя контента легко настроен контент для разметки.
Являются ли эти подходы осуществимыми с существующими технологиями, и я просто пропускаю некоторые основные понятия в документации? В идеале, я хотел бы иметь возможность сделать больше, чем один из них, так что домашняя страница сайта могла бы забрать некоторые списки контента через короткий код, но в нескольких разделах были бы автоматически сгруппированные списки их дочерних каталогов. Таким образом, создатели контента могли свободно добавлять подразделы, не жертвуя способностью тонкой настройки домашней страницы.