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 = ""
|
||||
# utterancesTheme = "preferred-color-scheme"
|
||||
|
||||
# Отключаем Google Analytics, т.к. partial отсутствует
|
||||
# googleAnalytics = ""
|
||||
# Google Analytics
|
||||
# googleAnalytics = "G-XXXXXXXXXX" # Замените на ваш ID Google Analytics
|
||||
|
||||
# Убираем использование .Site.Social, так как устарело
|
||||
# Social = {twitter = "username"}
|
||||
@@ -71,3 +71,11 @@ preserveTaxonomyNames = true
|
||||
name = "Теги"
|
||||
url = "/tags/"
|
||||
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