Ресурсы Hugo JS для отдельных страниц или разделов

#javascript #node-modules #hugo

Вопрос:

Более новые версии Hugo предлагают расширенное управление активами JS, даже обработку ресурсов из node_modules, но я этого не понимаю.

Я прочитал документацию и связанные с ней новостные статьи, но мне нужно больше учебника, например, для начала. Или ссылка на репозиторий, где это делается, как и предполагалось, с текущей версией Hugo ( ~ 80 ).

Если для одной страницы вашего сайта требуется three.js скин или другой более крупный импорт JS как вы это делаете? где вы говорите Хьюго импортировать необходимые библиотеки и как/где вы размещаете сценарии, в которых используется библиотека?

Мне кажется, что это неправильно:

  • включите ресурсы для всех страниц
  • просто добавьте необходимые сценарии cdn в content/section/page.html и используйте его

Это то, что я ищу:

  • импортируйте скрипты только в случае необходимости
  • используйте предоставленные механизмы для включения и связывания из node_modules
  • один файл js для каждой задачи (настройка сцены threejs, инициализация alpinejs, …) каким-то образом привязан к странице или разделу, где это необходимо.
  • системный подход, который будет работать с модулями Hugo

Ответ №1:

если вы просто хотите включить или исключить статический js для определенной страницы, такой как Страница, раздел, Главная страница, вы можете добавить переменные страницы HUgo в свою частичную «footer.html» :

 .IsHome
.IsPage
.IsSection
 

экс :

 {{ .isHome }}
 <script src="home.js">
{{ end }}

{{ .isPage }}
 <script src="page.js">
{{ end }}
 

таким образом, вам не нужно создавать несколько footer.html или вставьте вручную.

более подробно читайте Документ Переменной страницы Хьюго здесь https://gohugo.io/variables/page/

Комментарии:

1. Это нормально, но не использует активы/трубопроводы и т. Д. Т. Е. Нет управления JS. gohugo.io/hugo-pipes для начала. (примечание OP, хотя и не написано четко, ссылается на Управление активами в Hugo)

2. Я ищу решение «один источник истины». В вашем примере заголовок и страница должны быть в курсе всех опций

Ответ №2:

К сожалению, вы не перечисляете то, на что смотрели. Тем не менее, я бы начал (и начал при внедрении систем активов/трубопроводов ХЬЮГО и т. Д.):

  1. https://gohugo.io/hugo-pipes/
  2. https://gohugo.io/hugo-pipes/js/
  3. https://gohugo.io/hugo-pipes/js/#import-js-code-from-assets
  4. https://www.regisphilibert.com/blog/2018/07/hugo-pipes-and-asset-processing-pipeline/ С точки зрения сборки ES: импорт { привет } из «мой/модуль»; Это пример, приведенный в 3 выше. Затем, чтобы выборочно использовать, 4 выше дает отличный пример. Пожалуйста, дайте мне знать, если это поможет.

Комментарии:

1. 4. это потрясающий ресурс. Я молодец: я игнорировал такие старые ресурсы. И с этим чистым описанием я мог бы в конечном итоге намного лучше понять документы Хьюго 😉

2. Не волнуйся, Дэниел. Тем не менее, в «Руководстве истинного автостопщика по моде галактики» я предлагаю вам изучить сам вопрос — возможно, это было предположение о том, как разрабатывается Хьюго, я нахожу, что сопровождающие, особенно BEP, превосходны и следуют отличным шаблонам дизайна, т. Е. Если он был построен, их будут явные и подробные запросы на вытягивание, если он изменится, то же самое сохранится, все они общедоступны и могут быть рассмотрены. Удачи!