Fix: Исправление ошибок в Hugo сайте и добавление поста об исправлениях

This commit is contained in:
2026-02-01 10:19:24 +03:00
parent 0bb1e1f36a
commit f834d08a7f
6 changed files with 262 additions and 2 deletions
+48
View File
@@ -0,0 +1,48 @@
# Настройки взаимодействия
## Общие принципы работы
1. Все важные решения и изменения фиксируются в README.md
2. Взаимодействие происходит на русском языке
3. Перед применением изменений проверяется корректность принятых решений
4. Цель - максимально быстро запустить проект для публикации контента
## Текущая задача
Организация блога на основе Hugo с темой PaperMod:
- Установка Hugo расширенной версии
- Создание нового сайта dedinit.ru
- Установка темы PaperMod
- Настройка bundle хранения статей
- Интеграция с Gitea сервером gitea.nixg.ru через SSH
## Проверочные действия
Перед выполнением каждого этапа будут выполняться проверки:
- Наличие установленного Hugo
- Возможность создания нового сайта
- Корректность настроек темы
- Подключение к Gitea серверу
## Примечания
- Важно обеспечить поддержку блоков кода и подсветки синтаксиса
- Необходимо предусмотреть хранение контента на внешнем сервере
- Проект должен быть готов к публикации контента как можно скорее
## Информация о системе
- Hugo была установлена через winget
- Для обновления Hugo до последней версии используется команда: `winget install Hugo.Hugo.Extended`
- Текущая версия Hugo: 0.155.1
- После установки/обновления Hugo требуется перезапуск терминала для обновления PATH
## Принятые решения в ходе реализации
1. **Структура проекта**: Git-репозиторий инициализирован в папке с Hugo-сайтом, а не во внешней папке
2. **Интеграция с Gitea**: Используется SSH-подключение по порту 2222
3. **Файлы документации**: Все файлы документации находятся в папке проекта Hugo-сайта
4. **Исключение папки public**: Создан .gitignore файл для исключения папки public из репозитория
5. **Bundle формат статей**: Используется формат bundle (папка с index.md) для хранения статей
6. **Тема PaperMod**: Установлена как submodule с выбором совместимой версии
7. **Решение проблемы совместимости**: Выбрана версия темы, совместимая с установленной версией Hugo
+48
View File
@@ -0,0 +1,48 @@
# dedinit.ru
## Описание проекта
Этот проект представляет собой блог на основе генератора статических сайтов Hugo с темой PaperMod. Основная цель проекта - создать платформу для публикации лонгридов с поддержкой блоков кода и подсветки синтаксиса, чего не хватает в других сервисах (Telegraph, VK, Writefreely).
## Технические детали
- Генератор статических сайтов: Hugo (расширенная версия)
- Тема оформления: PaperMod (https://github.com/adityatelange/hugo-PaperMod)
- Хранение контента: Gitea сервер (gitea.nixg.ru) через SSH
- Настройка: bundle хранение статей
## Статус проекта
Проект находится в стадии разработки. Выполненные задачи:
- Установлена Hugo расширенная версия (0.155.1)
- Создан новый сайт dedinit.ru
- Установлена и настроена тема PaperMod
- Настроено bundle хранение статей
- Решена проблема совместимости Hugo и темы PaperMod
## История изменений
### 31 января 2026 года
- Установлена Hugo расширенная версия 0.155.1
- Создан новый сайт dedinit.ru
- Установлена тема PaperMod
- Настроено bundle хранение статей
- Создан пример статьи в формате bundle
- Настроена интеграция с Gitea сервером (требуется дополнительная настройка SSH)
## Принятые технические решения
1. **Выбор Hugo**: Выбран генератор статичных сайтов Hugo для быстродействия и гибкости
2. **Расширенная версия Hugo**: Используется расширенная версия для поддержки SCSS
3. **Тема PaperMod**: Легкая и адаптивная тема с поддержкой темной/светлой темы
4. **Bundle хранение статей**: Используется формат bundle (папка с index.md) для удобного хранения статьи и связанных файлов
5. **Хранение на Gitea**: Контент хранится на собственном Gitea сервере для полного контроля
6. **SSH подключение**: Используется SSH для безопасного доступа к репозиторию
7. **Структура проекта**: Правильная иерархия папок с .gitignore для исключения ненужных файлов
## Запуск проекта
Для генерации сайта и просмотра его в браузере используйте следующие команды:
- `hugo` - генерирует статический сайт в папку `public`
- `hugo server` - запускает локальный сервер для предварительного просмотра сайта в браузере (обычно доступен по адресу http://localhost:1313)
+59
View File
@@ -0,0 +1,59 @@
---
title: "Исправление ошибок в Hugo сайте"
date: 2026-01-31T22:45:00+03:00
draft: false
tags: ["hugo", "ошибки", "исправления", "google analytics", "deprecated"]
categories: ["Разработка", "Hugo"]
---
## Проблема
При запуске команды `hugo server` возникала ошибка:
```
ERROR html/template:_partials/head.html:153:13: no such template "_internal/google_analytics.html"
```
## Решение
### 1. Исправление ошибки с Google Analytics
В новых версиях Hugo внутренний шаблон `_internal/google_analytics.html` был удален.
Необходимо заменить его использование на частичный шаблон из темы PaperMod:
```html
<!-- Было -->
{{- template "_internal/google_analytics.html" . }}
<!-- Стало -->
{{- partial "google_analytics.html" . }}
```
### 2. Обновление шаблона Google Analytics
В шаблоне `themes/PaperMod/layouts/partials/google_analytics.html` также
потребовалось обновить способ получения ID Google Analytics, так как в новых
версиях Hugo поле `.Site.GoogleAnalytics` было заменено на
`.Site.Config.Services.GoogleAnalytics.ID`.
### 3. Исправление ошибок с устаревшим .Site.Social
В шаблонах `twitter_cards.html` и `opengraph.html` использовались устаревшие
обращения к `.Site.Social`, которые были заменены на `.Site.Params.Social`.
### 4. Исправление путей к частичным шаблонам
Также были исправлены неправильные пути к частичным шаблонам в нескольких файлах:
- `twitter_cards.html`
- `schema_json.html`
- `opengraph.html`
## Результат
После всех исправлений сайт успешно запускается командой `hugo server` и
доступен по адресу http://localhost:1313/
## Вывод
При обновлении Hugo или тем важно следить за изменениями в API и устаревшими
функциями. Использование устаревших элементов может привести к ошибкам сборки сайта.
+60
View File
@@ -0,0 +1,60 @@
# Настройка интеграции с Gitea
## Требуемые данные для интеграции с gitea.nixg.ru
Для завершения настройки интеграции с Gitea сервером необходимы следующие данные:
1. **SSH ключи** - должны быть уже настроены на вашем компьютере
2. **URL репозитория** - полный URL к репозиторию на gitea.nixg.ru
3. **Имя пользователя** - для доступа к Gitea серверу
4. **Название репозитория** - куда будут отправляться изменения
## Шаги для настройки:
1. Убедитесь, что SSH ключи настроены и работают с gitea.nixg.ru
2. Создайте репозиторий на gitea.nixg.ru
3. Добавьте удаленный репозиторий в локальный проект:
```bash
cd dedinit.ru
git remote add origin ssh://git@gitea.nixg.ru/ВАШ_ЛОГИН/НАЗВАНИЕ_РЕПОЗИТОРИЯ.git
```
4. Инициализируйте Git и сделайте первый коммит:
```bash
git add .
git commit -m "Initial commit"
git push -u origin main
```
## Альтернативный способ (HTTPS):
Если SSH недоступен, можно использовать HTTPS с токеном:
```bash
git remote add origin https://gitea.nixg.ru/ВАШ_ЛОГИН/НАЗВАНИЕ_РЕПОЗИТОРИЯ.git
```
## Автоматизация деплоя
Для автоматизации процесса деплоя можно создать скрипт deploy.sh:
```bash
#!/bin/bash
echo "Сборка сайта..."
hugo
echo "Добавление изменений в репозиторий..."
git add .
git commit -m "Обновление сайта $(date)"
echo "Отправка изменений на сервер..."
git push origin main
echo "Сайт успешно обновлен!"
```
## Примечание
Все файлы в директории `dedinit.ru` являются частью Hugo-сайта и могут быть помещены в репозиторий целиком, за исключением директории `public` (если используется).
+10 -2
View File
@@ -31,8 +31,8 @@ preserveTaxonomyNames = true
# utterancesRepo = "" # utterancesRepo = ""
# utterancesTheme = "preferred-color-scheme" # utterancesTheme = "preferred-color-scheme"
# Отключаем Google Analytics, т.к. partial отсутствует # Google Analytics
# googleAnalytics = "" # googleAnalytics = "G-XXXXXXXXXX" # Замените на ваш ID Google Analytics
# Убираем использование .Site.Social, так как устарело # Убираем использование .Site.Social, так как устарело
# Social = {twitter = "username"} # Social = {twitter = "username"}
@@ -71,3 +71,11 @@ preserveTaxonomyNames = true
name = "Теги" name = "Теги"
url = "/tags/" url = "/tags/"
weight = 40 weight = 40
[params.social]
# twitter = "your_twitter_handle"
# facebook_admin = "your_facebook_admin_id"
[services]
[services.googleAnalytics]
ID = "" # Укажите ваш ID Google Analytics, например "G-XXXXXXXXXX"
+37
View File
@@ -0,0 +1,37 @@
# Инструкция по настройке SSH подключения к Gitea серверу
Для завершения настройки интеграции с Gitea сервером, необходимо выполнить следующие шаги вручную:
## 1. Проверка подключения к серверу
Откройте терминал и выполните команду для проверки подключения:
```bash
ssh -p 2222 git@gitea.nixg.ru
```
При первом подключении система запросит подтверждение добавления ключа сервера в known_hosts. Ответьте "yes".
## 2. Если подключение прошло успешно, завершите SSH сессию командой:
```bash
exit
```
## 3. Теперь можно выполнить команды Git:
```bash
cd e:/yandex.disk/YandexDisk/projects/dedinit.ru/dedinit.ru
git remote set-url origin ssh://git@gitea.nixg.ru:2222/estorozhenko/dedinit.ru.git
git push -u origin main
```
## Альтернативный вариант (если SSH по-прежнему не работает)
Если SSH соединение не удается настроить, можно использовать HTTPS с токеном:
```bash
git remote set-url origin https://gitea.nixg.ru/estorozhenko/dedinit.ru.git
```
Затем при пуше система запросит логин и пароль (или токен доступа).