Fix: Исправление ошибок в Hugo сайте и добавление поста об исправлениях
This commit is contained in:
@@ -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
|
||||||
@@ -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)
|
||||||
@@ -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 и устаревшими
|
||||||
|
функциями. Использование устаревших элементов может привести к ошибкам сборки сайта.
|
||||||
@@ -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` (если используется).
|
||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
```
|
||||||
|
|
||||||
|
Затем при пуше система запросит логин и пароль (или токен доступа).
|
||||||
Reference in New Issue
Block a user