From dd7bb0ebfbbef094df2e8171699cc267efbc735c Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Mon, 4 Aug 2025 15:41:49 +0400 Subject: [PATCH] vault backup: 2025-08-04 15:41:49 --- .../Миграция контента на Hugo.md | 174 +++++++++++------- 1 file changed, 103 insertions(+), 71 deletions(-) diff --git a/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md b/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md index 7819fda..816381d 100644 --- a/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md +++ b/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md @@ -24,11 +24,21 @@ Obsidian Vault → Hugo → Static Site → Nginx (в Docker) - **Static Site**: Оптимизированные HTML/CSS/JS файлы - **Nginx**: Веб-сервер в Docker контейнере -## 2. Миграция контента +## 2. Сохранение структуры каталогов -### 2.1 Структура Obsidian Vault +### 2.1 Принцип "не трогать структуру" -**Текущая структура:** +**Ключевое правило:** Структура каталогов в Git остается неизменной, Hugo адаптируется под неё. + +**Преимущества:** +- Сохранение удобной навигации в Obsidian +- Отсутствие необходимости переименовывать файлы +- Сохранение существующих ссылок +- Простота миграции + +### 2.2 Адаптация Hugo под существующую структуру + +**Текущая структура (остается неизменной):** ``` Second Mind/ ├── index.md @@ -47,55 +57,76 @@ Second Mind/ └── Документация сервера aepif.ru.md ``` -**Новая структура для Hugo:** -``` -hugo-site/ -├── content/ -│ ├── _index.md # Главная страница -│ ├── идеи/ -│ │ ├── _index.md # Страница раздела -│ │ ├── obsidian-telegram-bot/ -│ │ │ ├── _index.md -│ │ │ ├── mvp-telegram-bota.md -│ │ │ └── telegram-bot-dlya-obsidian.md -│ │ └── optimizatsiya-resursov-vps/ -│ │ ├── _index.md -│ │ ├── edinoe-prilozhenie-hugo-webhook.md -│ │ └── migratsiya-kontenta-na-hugo.md -│ └── мой-сервер/ -│ ├── _index.md -│ ├── authelia-authentication/ -│ ├── git-service/ -│ ├── second-mind-setup/ -│ └── traefik-reverse-proxy/ -├── static/ -│ ├── images/ # Изображения -│ └── attachments/ # Вложения -└── themes/ - └── custom-theme/ # Кастомная тема +**Hugo конфигурация для работы с существующей структурой:** +```toml +# config.toml +baseURL = "https://aepif.ru" +languageCode = "ru-ru" +title = "Second Mind" +theme = "custom-theme" + +# Настройки для работы с существующей структурой +[params] + preserveStructure = true + useOriginalNames = true + +[markup] + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true + + # Поддержка Obsidian-специфичных элементов + [markup.highlight] + style = "dracula" + lineNos = true ``` -### 2.2 Основные изменения при миграции +### 2.3 Обработка имен файлов и каталогов + +**Стратегия Hugo:** +- Использование оригинальных имен файлов и каталогов +- Автоматическое создание slug из имен файлов +- Сохранение кириллических имен +- Обработка пробелов и специальных символов + +**URL структура:** +- `/идеи/obsidian-телеграм-бот/mvp-telegram-бота-для-obsidian/` +- `/мой-сервер/authelia-authentication/` +- Сохранение читаемости URL + +## 3. Миграция контента + +### 3.1 Основные изменения при миграции **Frontmatter преобразования:** -- Quartz frontmatter → Hugo frontmatter -- Добавление обязательных полей (title, date, draft) -- Сохранение пользовательских полей +- Сохранение существующих полей +- Добавление Hugo-специфичных полей (title, date, draft) +- Автоматическое извлечение заголовка из имени файла - Преобразование дат в стандартный формат **Внутренние ссылки:** - `[[wiki links]]` → `{{< ref "path" >}}` -- Относительные пути → Абсолютные пути Hugo +- Сохранение относительных путей - Обработка Obsidian-специфичных ссылок +- Автоматическое обновление ссылок при изменении структуры **Изображения и вложения:** -- Перемещение в `static/images/` +- Сохранение в той же структуре каталогов - Обновление путей в контенте -- Сохранение структуры вложений +- Оптимизация размера файлов без изменения структуры -## 3. Docker развертывание +### 3.2 Автоматизация миграции -### 3.1 Архитектура контейнеров +**Скрипт миграции:** +- Анализ существующей структуры +- Автоматическое создание Hugo конфигурации +- Преобразование frontmatter +- Обновление внутренних ссылок +- Сохранение структуры каталогов + +## 4. Docker развертывание + +### 4.1 Архитектура контейнеров ```mermaid graph TB @@ -111,7 +142,7 @@ graph TB end ``` -### 3.2 Структура Docker +### 4.2 Структура Docker **Docker Compose:** ```yaml @@ -120,13 +151,14 @@ services: hugo-webhook: build: . volumes: - - ./content:/app/content + - ./Second Mind:/app/content # Прямое монтирование существующей структуры - ./static:/app/static - static-files:/var/www/html environment: - GIT_REPOSITORY_URL=your-repo - HUGO_SOURCE_PATH=/app - HUGO_OUTPUT_PATH=/var/www/html + - PRESERVE_STRUCTURE=true ports: - "8080:8080" restart: unless-stopped @@ -147,28 +179,25 @@ volumes: static-files: ``` -### 3.3 Преимущества Docker развертывания +### 4.3 Преимущества сохранения структуры -**Изоляция:** -- Отдельные контейнеры для Hugo и Nginx -- Изолированные файловые системы -- Контроль ресурсов +**Для пользователя:** +- Знакомая навигация в Obsidian +- Отсутствие необходимости переучиваться +- Сохранение всех существующих ссылок +- Простота поиска файлов -**Простота развертывания:** -- Один `docker-compose up` -- Автоматическое пересоздание при изменениях -- Простое масштабирование +**Для системы:** +- Минимальные изменения в Git репозитории +- Простота отката к предыдущей версии +- Сохранение истории изменений +- Совместимость с существующими инструментами -**Управление данными:** -- Общие volumes для статических файлов -- Сохранение данных между перезапусками -- Простое резервное копирование +## 5. Интеграция с Obsidian -## 4. Интеграция с Obsidian +### 5.1 Рабочий флоу -### 4.1 Рабочий флоу - -**Разработка:** +**Разработка (без изменений):** 1. Редактирование в Obsidian 2. Коммит в Git репозиторий 3. Webhook автоматически запускает сборку @@ -176,14 +205,14 @@ volumes: 5. Nginx раздает обновленный контент **Синхронизация:** -- Obsidian Vault → Git Repository -- Git Repository → Hugo Content -- Hugo Content → Static Site +- Obsidian Vault → Git Repository (без изменений) +- Git Repository → Hugo Content (прямое использование) +- Hugo Content → Static Site (с сохранением структуры) - Static Site → Nginx -### 4.2 Автоматизация +### 5.2 Автоматизация -**Git Hooks:** +**Git Hooks (без изменений):** - Автоматический коммит при изменениях в Obsidian - Push в удаленный репозиторий - Webhook уведомление @@ -191,12 +220,12 @@ volumes: **Webhook обработка:** - Валидация изменений - Клонирование/обновление репозитория -- Сборка Hugo +- Сборка Hugo с сохранением структуры - Перезагрузка Nginx -## 5. Конфигурация Hugo +## 6. Конфигурация Hugo -### 5.1 Базовая конфигурация +### 6.1 Базовая конфигурация ```toml # config.toml @@ -209,7 +238,9 @@ theme = "custom-theme" description = "Персональная база знаний и заметки" author = "AEP" - # Настройки для Obsidian + # Настройки для сохранения структуры + preserveStructure = true + useOriginalNames = true enableSearch = true showBreadcrumb = true showReadingTime = true @@ -238,7 +269,7 @@ theme = "custom-theme" lineNos = true ``` -### 5.2 Оптимизации для VPS +### 6.2 Оптимизации для VPS **Производительность:** - Минификация всех ресурсов @@ -251,22 +282,23 @@ theme = "custom-theme" - Оптимизация времени сборки - Эффективное использование диска -## 6. Преимущества миграции +## 7. Преимущества миграции -### 6.1 Производительность +### 7.1 Производительность - **Время сборки**: С 30-60 секунд до 5-10 секунд - **Потребление памяти**: С 512MB до 128MB - **CPU нагрузка**: Снижение на 70-80% - **Время загрузки**: Улучшение на 40-60% -### 6.2 Операционные +### 7.2 Операционные - **Простота развертывания**: Docker Compose - **Изоляция**: Контейнеры - **Масштабируемость**: Легкое горизонтальное масштабирование - **Мониторинг**: Встроенные метрики -### 6.3 Интеграция +### 7.3 Интеграция - **Сохранение рабочего флоу**: Obsidian → Git → Hugo +- **Сохранение структуры**: Без изменений в организации файлов - **Автоматизация**: Webhook → Сборка → Деплой - **Консистентность**: Один источник истины - **Простота отладки**: Единый лог и контекст \ No newline at end of file