# Миграция контента на Hugo ## 1. Понимание текущей архитектуры ### 1.1 Текущий флоу (Quartz) ``` Obsidian Vault → Quartz → Static Site → Nginx ``` **Компоненты:** - **Obsidian Vault**: Исходные Markdown документы - **Quartz**: Генератор статического сайта на Node.js - **Static Site**: Собранные HTML/CSS/JS файлы - **Nginx**: Веб-сервер для раздачи статики ### 1.2 Новый флоу (Hugo) ``` Obsidian Vault → Hugo → Static Site → Nginx (в Docker) ``` **Компоненты:** - **Obsidian Vault**: Те же исходные Markdown документы - **Hugo**: Генератор статического сайта на Go - **Static Site**: Оптимизированные HTML/CSS/JS файлы - **Nginx**: Веб-сервер в Docker контейнере ## 2. Сохранение структуры каталогов ### 2.1 Принцип "не трогать структуру" **Ключевое правило:** Структура каталогов в Git остается неизменной, Hugo адаптируется под неё. **Преимущества:** - Сохранение удобной навигации в Obsidian - Отсутствие необходимости переименовывать файлы - Сохранение существующих ссылок - Простота миграции ### 2.2 Адаптация Hugo под существующую структуру **Текущая структура (остается неизменной):** ``` Second Mind/ ├── index.md ├── Идеи/ │ ├── Obsidian телеграм бот/ │ │ ├── MVP Telegram бота для Obsidian.md │ │ └── Telegram бот для Obsidian.md │ └── Оптимизация ресурсов VPS/ │ ├── Единое приложение Hugo + Webhook.md │ └── Миграция контента на Hugo.md ├── Мой сервер/ │ ├── Authelia Authentication/ │ ├── Git Service/ │ ├── Second Mind Setup/ │ └── Traefik Reverse Proxy/ └── Документация сервера aepif.ru.md ``` **Hugo конфигурация для работы с существующей структурой:** - Настройки для работы с существующей структурой - Поддержка Obsidian-специфичных элементов - Сохранение кириллических имен ### 2.3 Обработка имен файлов и каталогов **Стратегия Hugo:** - Использование оригинальных имен файлов и каталогов - Автоматическое создание slug из имен файлов - Сохранение кириллических имен - Обработка пробелов и специальных символов **URL структура:** - `/идеи/obsidian-телеграм-бот/mvp-telegram-бота-для-obsidian/` - `/мой-сервер/authelia-authentication/` - Сохранение читаемости URL ## 3. Граф записей (Graph View) ### 3.1 Аналоги Obsidian/Quartz графа **Доступные решения для Hugo:** **Встроенные возможности Hugo:** - Автоматическое создание графа связей между страницами - Визуализация внутренних ссылок - Отображение связанных страниц - Интерактивная карта знаний **Сторонние библиотеки:** - D3.js для интерактивной визуализации - Vis.js для сетевых графов - Cytoscape.js для сложных графов - Sigma.js для больших сетей ### 3.2 Функциональность графа **Визуализация связей:** - Отображение всех внутренних ссылок между страницами - Размер узлов в зависимости от количества связей - Цветовая кодировка по категориям/тегам - Интерактивная навигация по графу **Интерактивность:** - Клик по узлу для перехода к странице - Зум и панорамирование графа - Фильтрация по тегам или категориям - Поиск по названиям страниц **Аналитика:** - Центральные страницы (много связей) - Изолированные страницы (мало связей) - Кластеры связанных тем - Пути между страницами ### 3.3 Интеграция с существующей структурой **Автоматическое создание графа:** - Анализ всех Markdown файлов - Извлечение внутренних ссылок - Создание JSON данных для графа - Генерация интерактивной визуализации **Сохранение Obsidian-стиля:** - Похожий интерфейс на Obsidian Graph View - Те же принципы навигации - Совместимость с существующими ссылками - Поддержка кириллических названий ## 4. Миграция контента ### 4.1 Основные изменения при миграции **Frontmatter преобразования:** - Сохранение существующих полей - Добавление Hugo-специфичных полей (title, date, draft) - Автоматическое извлечение заголовка из имени файла - Преобразование дат в стандартный формат **Внутренние ссылки:** - `[[wiki links]]` → `{{< ref "path" >}}` - Сохранение относительных путей - Обработка Obsidian-специфичных ссылок - Автоматическое обновление ссылок при изменении структуры **Изображения и вложения:** - Сохранение в той же структуре каталогов - Обновление путей в контенте - Оптимизация размера файлов без изменения структуры ### 4.2 Автоматизация миграции **Скрипт миграции:** - Анализ существующей структуры - Автоматическое создание Hugo конфигурации - Преобразование frontmatter - Обновление внутренних ссылок - Сохранение структуры каталогов ## 5. Docker развертывание ### 5.1 Архитектура контейнеров ```mermaid graph TB A[Git Repository] --> B[Hugo + Webhook Container] B --> C[Static Files Volume] C --> D[Nginx Container] D --> E[Internet] subgraph "Docker Host" B C D end ``` ### 5.2 Структура Docker **Docker Compose:** - Hugo + Webhook контейнер с прямым монтированием существующей структуры - Nginx контейнер для раздачи статики - Общие volumes для статических файлов - Настройки для сохранения структуры ### 5.3 Преимущества сохранения структуры **Для пользователя:** - Знакомая навигация в Obsidian - Отсутствие необходимости переучиваться - Сохранение всех существующих ссылок - Простота поиска файлов **Для системы:** - Минимальные изменения в Git репозитории - Простота отката к предыдущей версии - Сохранение истории изменений - Совместимость с существующими инструментами ## 6. Интеграция с Obsidian ### 6.1 Рабочий флоу **Разработка (без изменений):** 1. Редактирование в Obsidian 2. Коммит в Git репозиторий 3. Webhook автоматически запускает сборку 4. Hugo генерирует новый сайт 5. Nginx раздает обновленный контент **Синхронизация:** - Obsidian Vault → Git Repository (без изменений) - Git Repository → Hugo Content (прямое использование) - Hugo Content → Static Site (с сохранением структуры) - Static Site → Nginx ### 6.2 Автоматизация **Git Hooks (без изменений):** - Автоматический коммит при изменениях в Obsidian - Push в удаленный репозиторий - Webhook уведомление **Webhook обработка:** - Валидация изменений - Клонирование/обновление репозитория - Сборка Hugo с сохранением структуры - Перезагрузка Nginx ## 7. Конфигурация Hugo ### 7.1 Базовая конфигурация **Основные параметры:** - Настройки для сохранения структуры - Поддержка оригинальных имен файлов - Включение поиска и навигации - Настройки для графа записей ### 7.2 Оптимизации для VPS **Производительность:** - Минификация всех ресурсов - Оптимизация изображений - Gzip сжатие - Кэширование статических файлов **Ресурсы:** - Ограничение использования памяти - Оптимизация времени сборки - Эффективное использование диска ## 8. Преимущества миграции ### 8.1 Производительность - **Время сборки**: С 30-60 секунд до 5-10 секунд - **Потребление памяти**: С 512MB до 128MB - **CPU нагрузка**: Снижение на 70-80% - **Время загрузки**: Улучшение на 40-60% ### 8.2 Операционные - **Простота развертывания**: Docker Compose - **Изоляция**: Контейнеры - **Масштабируемость**: Легкое горизонтальное масштабирование - **Мониторинг**: Встроенные метрики ### 8.3 Интеграция - **Сохранение рабочего флоу**: Obsidian → Git → Hugo - **Сохранение структуры**: Без изменений в организации файлов - **Граф записей**: Интерактивная визуализация связей - **Автоматизация**: Webhook → Сборка → Деплой - **Консистентность**: Один источник истины - **Простота отладки**: Единый лог и контекст