Как работает маршрутизация в шаблонах 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/ .

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