Files
second-mind-aep/Идеи/Оптимизация ресурсов VPS/Миграция контента на Hugo.md
2025-08-04 15:46:12 +04:00

12 KiB
Raw Blame History

Миграция контента на 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 Архитектура контейнеров

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 → Сборка → Деплой
  • Консистентность: Один источник истины
  • Простота отладки: Единый лог и контекст