Как использовать тот же макет в другом каталоге?

У меня есть сайт, использующийhugo-coderтема, которая имеет layouts/postsпапка, которая указывает, что все в папке «posts» будет иметь формат сообщения в блоге.

Я хотел бы иметь два разных блога в двух разных подкаталогах, используя один и тот же макет. Есть ли способ сказать Хьюго, что content/blog1каталог должен использовать те же настройки и макет, что и content/postsкаталог без копирования themes/hugo-coder/layouts/postsв layouts/blog1? В идеале я бы избегал использования символических ссылок, потому что, хотя это удобно, у меня было приличное количество программного обеспечения, выдающего странные ошибки при использовании символических ссылок, поэтому я избегаю их, когда это возможно.

2 ответа

Вы можете установить layoutили же typeполе в переднем плане вашего _index.mdфайл в content/blog1.

См. эту страницу документов для получения дополнительной информации.

Редактировать: В качестве альтернативы вы можете создать архетип для blog1который автоматически устанавливает значение postsв начале отдельных сообщений в этом разделе, если вы используете hugo new blog1/postname.mdдля создания сообщений для этого раздела.

Двойное редактирование: первое предложение не сработало. Вы также можете создавать подразделы внутри content/posts/blog1и установите постоянные ссылки сообщений в этом подразделе, чтобы использовать только последний раздел. Это должно устранить необходимость каждый раз явно задавать тип во фронтмастере сообщения, потому что у каждого сообщения уже будет тип сообщений.

В config.toml:

      [permalinks]
    posts = "/:sections[last]/:slug/"

Вы можете использовать партиал в своих шаблонах. Если вы это сделаете, вам ПОНАДОБИТСЯ файл single и list в каталоге layouts/blog, но это может быть и пустой файл, ссылающийся на partial. Макеты/posts/single.html и layouts/blog/single.html будут выглядеть следующим образом:

      {{ partial "singleblog.html" . }}

Полностью СУХОЙ... и без особых сложностей.

Другие вопросы по тегам