Обзор урока

Изображения

Узнай, как сжимать и оптимизировать изображения с помощью Hugo.
Несколько минут 429 слов

Теперь, когда у нас настроен наш сайт, мы можем добавить изображения к нашим сообщениям или макетам.

Самый простой способ сделать это - использовать папку static.

Static

Папка static в нашем проекте - еще одна особенная функция Hugo. Hugo позволяет легко получить доступ ко всему в папке static внутри постов разметки или в макетах, просто используя вот такую косую черту/.

Например: помести изображение в папку static. Затем перейди к Markdown сообщению в блоге и используй синтаксис image для ссылки на новое изображение.

Если я сохраняю изображение утки по имени duck.png внутри моей папки static, тогда в моём посте мне необходимо написать ![Yellow Duck](/duck.png 'Yellow Duck'), чтобы отобразить его.

Это просто! НО об изображениях и Интернете нужно знать одну важную вещь - большие изображения загружаются дольше.

Каждый раз, когда пользователь посещает наш сайт, он должен загрузить все файлы HTML, файлы CSS и изображения, которые необходимы браузеру для правильного отображения страницы, поэтому чем больше файлы, тем больше времени требуется для загрузки страницы - а медленное время загрузки = плохое время.

Чтобы легко решить эту проблему, мы можем использовать assets.

Assets

Assets - еще одна особенность Hugo, потому что они предоставляют нам некоторые функции в наших шаблонах для сжатия изображений, чтобы их окончательный размер был меньше и загружался быстрее.

Имей в виду, что при сжатии изображений качество может ухудшаться, но в большинстве случаев это незаметно.

Чтобы проверить сжатие, создай папку с именем assets в корне твоего проекта, затем перемести изображение из папки static в эту новую папку.

Затем, чтобы сжать изображение, перейди к HTML-файлу твоего шаблона и напиши следующее:

{{ $asset := resources.Get "/duck.png" }}
{{ $img := $asset.Fit "600x400" }}
<figure class="image is-3by2">
  <img alt="Yellow Duck" src="{{ $img.RelPermalink }}" />
</figure>

Сначала мы получаем изображение по имени и сохраняем его в переменной $asset. Затем мы изменяем размер изображения до 600 на 400 пикселей и сохраняем его в переменной $img. Затем мы используем $img.RelPermalink внутри тега HTML <img>для отображения нашего нового сжатого изображения! Мы также используем классы CSS от Bulma, чтобы изображение хорошо масштабировалось на больших и маленьких экранах.

Shortcodes

Тебе может быть интересно, почему для Markdown мы использовали изображения в папке static, а для HTML-шаблонов изображения в папке assets, и это потому, что у нас есть доступ к функциям сжатия только внутри шаблонов, а не внутри Markdown.

Но есть способ предоставить авторам контента доступ для сжатия изображений внутри Markdown с помощью пользовательских шорткодов, которые являются функцией Hugo. Она позволяет нам создавать собственный синтаксис и логику для использования внутри Markdown.

Пользовательские шорткоды выходят за рамки этого мини-курса, но если вы хотите узнать больше о вариантах их использования, ознакомьтесь с документацией Hugo о них.

Поделиться этой страницей