🌟 Введение #

Hugo продолжает развиваться и совершенствоваться. В новой версии v0.140.0 разработчики представили важное нововведение для работы с JavaScript, а также внесли множество улучшений и исправлений. Давайте подробно рассмотрим, что нового появилось в этом релизе.

🔥 Главное нововведение: js.Batch #

Ключевым обновлением в Hugo v0.140.0 стала функция js.Batch. Это мощный инструмент для организации JavaScript-кода, который предоставляет следующие возможности:

  • Создание групп JavaScript-файлов для разных разделов сайта
  • Глобальное разделение кода между группами
  • Гибкая настройка хуков и порядка выполнения
  • Эффективное управление зависимостями

Эта функция особенно полезна при разработке сложных сайтов, где требуется четкая организация JavaScript-кода и оптимизация его загрузки.

🛠 Исправления ошибок #

В этом релизе было исправлено несколько важных ошибок:

Стабильность и производительность #

  • ✅ Устранена паника при перестроении сервера при использовании базовых шаблонов с template.Defer
  • ✅ Улучшена работа js.Batch в конфигурациях с несколькими сайтами
  • ✅ Исправлены проблемы с перестроением при переименовании ресурсов

Форматирование и парсинг #

  • ✅ Корректная работа разделителя аннотаций в Org Mode
  • ✅ Исправлен атрибут title в шорткоде details
  • ✅ Улучшен парсинг текста в хуке рендеринга цитат

Работа с ресурсами #

  • ✅ Правильная обработка импортов Sass для файлов формата index.{scss,sass}

💡 Улучшения и новые возможности #

Обновления esbuild #

  • 🆕 Добавлена поддержка цели es2024
  • 🆕 Возможность запуска после выполнения скриптов
  • 🆕 Оптимизированное построение групп в порядке идентификаторов

Улучшения шорткодов и функций #

  • 📦 Обновлены шорткоды youtube и details
  • 📦 В функцию querify добавлена поддержка аргумента типа map
  • 📦 Добавлен новый шорткод details в tpl/tplimpl

Оптимизация js.Batch #

  • 🔧 Предотвращение создания пустого среза Instances
  • 🔧 Улучшенная интеграция с многосайтовыми конфигурациями

📝 Заключение #

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

Рекомендуется обновиться до новой версии, особенно если вы активно используете JavaScript в своих проектах или сталкивались с какими-либо из исправленных ошибок.

Для получения более подробной информации и загрузки новой версии посетите официальную страницу релиза на GitHub.

🚀 Версия 0.144.0 #

Это крупное обновление Hugo, выпущенное незадолго до 19 февраля 2025 года, принесло ряд важных изменений и улучшений:

🎯 Новые возможности #

  • Добавлены новые токены для постоянных ссылок: :contentbasename и :slugorcontentbasename (заменяют устаревшие :filename и :slugorfilename)
  • Введена настройка parser.autoDefinitionTermID для автоматического добавления атрибутов id к элементам dt в списках определений
  • Добавлена поддержка меню в виде карт (maps) в адаптерах контента
  • Реализована опция drop для js.esbuild
  • Добавлена поддержка GOAUTH в конфигурации модулей

🐛 Исправления ошибок #

  • Исправлена паника при обработке пустых заголовков Markdown
  • Устранена проблема с позиционированием для проходных хуков
  • Исправлена ошибка, когда server.redirects.fromRe игнорировался, если не был установлен server.redirects.from
  • Улучшено сообщение об ошибке для самозакрывающихся шорткодов без .Inner

⚡ Улучшения #

  • Обновлен Go до версии 1.24
  • Улучшена обработка автоматически генерируемых ID заголовков
  • Добавлена поддержка autoID для терминов определений
  • Включено расширение KaTeX mhchem
  • Добавлены новые опции сервера

⚠️ Устаревания #

  • Объявлены устаревшими kind, lang и path во фронтматтере

🔧 Версия 0.144.1 #

Это небольшое обновление, выпущенное вскоре после 0.144.0, фокусируется на исправлении критической ошибки:

🐛 Исправление ошибки #

  • Устранена паника при обработке пустых заголовков Markdown

Это обновление обеспечивает стабильность работы Hugo при обработке контента с пустыми заголовками, что особенно важно для больших проектов с разнообразным контентом.