Как работает маршрутизация в шаблонах Hugo?
Я пытаюсь создать свою собственную тему, начиная сblank
. Тестовый сайт строится нормально и действительно пустой, но функциональный.
Однако я не понимаю, как работает рутина в темах. Конкретно моя проблема в том, что я не вижу, где находится основной скелет конечной веб-страницы - тот, который будет строиться
<header>
,
<body>
и т. д. Я ожидал найти там логику переключения между представлениями: что парсить при просмотре на главной странице, что при записи в блоге, что при отдельной странице и т. д.
Чтобы взять пример этой стартовой темы, я вижу
https://github.com/Vimux/blank/tree/master/layouts/index.html
, но это всего лишь определение одного из блоков. Есть и другие подобные определения
https://github.com/Vimux/blank/tree/master/layouts/_default
например.
Где я могу закодировать логику/решение использовать определенный файл шаблона? (один из нескольких с определением
main
)
Я ожидаю, что какая-то "маршрутизация" (не динамическая - маршрутизация, которая затем компилируется в набор страниц со ссылками на другие страницы) должна быть определена где-то там, где вы говорите, что страница
/
генерируется из
<something>
и страница
/blog/hello-world
генерируется из
<something else>
.
1 ответ
Отличный вопрос.
Ответ довольно удивителен... особенно если вы исходите из Jekyll или подобного SSG.
Логика/решение использовать конкретный файл шаблона подразумевается .
Это означает, что файл в корне каталога 'content' с именем '_index.md' использует шаблон 'layouts/index.html', а страница с другим именем в том же каталоге использует 'layouts/pages/single. HTML-шаблон. Если этот файл макета не найден или не существует, он вернется к шаблону layouts/_default/single.html.
Подробнее об этом можно узнать на странице https://gohugo.io/templates/lookup-order/ .