2015-08-16 4 views
0

Отказ от ответственности: Это вопрос повторного поста вопроса, который остался без ответа на 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, не жертвуя тем, что у создателя контента легко настроен контент для разметки.

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

ответ

0
  • Вы можете сделать короткий код, который говорит .Page.Site.Pages, - но учтите, что есть ограничения на то, что вы можете получить со страниц, которые вы итерируете. Только метаданные, а не содержимое самой страницы. Я назвал это the chicken or the egg problem.
  • В Hugo нет концепции структуры дерева страниц, и я тоже не вижу, как вы могли бы это сделать.