9.7 KiB
9.7 KiB
created, updated, tags, parent, status, priority
| created | updated | tags | parent | status | priority | ||||
|---|---|---|---|---|---|---|---|---|---|
| 2024-12-19 | 2024-12-19 |
|
Second Mind Pipeline/index | активный | средний |
🚀 План развития Second Mind Pipeline
🎯 Практические цели развития
Фокус на улучшении личной системы работы с заметками, без коммерциализации и лишней сложности.
Основные направления развития
-
Переписать webhook на Go
- Улучшение производительности
- Более надежная обработка Git событий
- Упрощение деплоя
-
Кастомизация Quartz
- Настройка под личные потребности
- Улучшение внешнего вида
- Оптимизация для русского языка
-
Обработка Dataview запросов
- Парсинг dataview синтаксиса
- Генерация динамических списков
- Поддержка сложных запросов
-
Контроль видимости контента
- Скрытие служебных папок (Templates, Private)
- Фильтрация черновиков
- Настраиваемые правила публикации
-
Инкрементальная сборка
- Анализ Git diff для определения изменений
- Пересборка только измененных страниц
- Кеширование неизмененного контента
-
AI-помощник для заметок
- Чатбот для поиска по заметкам
- Помощь в создании связей
- Предложения по структурированию
📅 Практический роадмап
Фаза 1: Улучшение backend (1-2 месяца)
Переписывание webhook на Go
-
Неделя 1-2: Базовая структура Go сервиса
- Создание Go модуля для webhook
- HTTP сервер с обработкой Git webhook'ов
- Базовое логирование и health checks
-
Неделя 3-4: Интеграция с Git и Quartz
- Парсинг Git webhook payload
- Запуск Quartz сборки из Go
- Миграция с Node.js на Go в Docker
Настройка инкрементальной сборки
-
Неделя 5-6: Анализ Git изменений
- Получение diff'а между коммитами
- Определение измененных markdown файлов
- Маппинг файлов на страницы сайта
-
Неделя 7-8: Кеширование и селективная сборка
- Кеш-система для неизмененных страниц
- Сборка только затронутых страниц
- Обновление индексов и навигации
Фаза 2: Кастомизация Quartz (2-3 недели)
Персональные настройки
-
Неделя 1: Базовые настройки
- Настройка русской локализации
- Кастомные CSS стили
- Логотип и брендинг
-
Неделя 2: Скрытие служебного контента
- Исключение папок Templates, Private из сборки
- Фильтр файлов по паттернам
- Настройка правил видимости
-
Неделя 3: Улучшение навигации
- Кастомная структура меню
- Breadcrumbs для заметок
- Теги и категории
Фаза 3: Dataview интеграция (3-4 недели)
Парсинг Dataview запросов
-
Неделя 1-2: Базовый парсер
- Распознавание dataview блоков в markdown
- Парсинг простых LIST и TABLE запросов
- Извлечение метаданных из frontmatter
-
Неделя 3-4: Генерация динамического контента
- Выполнение dataview запросов
- Генерация HTML таблиц и списков
- Интеграция в процесс сборки Quartz
Фаза 4: AI-помощник (1-2 месяца)
MVP чатбота
-
Неделя 1-2: Базовая архитектура
- Telegram бот или веб-интерфейс
- Индексация содержимого заметок
- Простой поиск по тексту
-
Неделя 3-4: Умный поиск
- Семантический поиск (embedding)
- Поиск по связям между заметками
- Контекстные ответы
-
Неделя 5-6: Расширенные функции
- Предложения новых связей
- Анализ структуры заметок
- Помощь в создании контента
📊 Личные метрики успеха
Производительность системы
- Время сборки: с 45s до <10s (инкрементальная сборка)
- Время отклика сайта: <100ms
- Стабильность: 99%+ uptime
- Объем кеша: эффективное использование дискового пространства
Удобство использования
- Скорость публикации: от commit'а до обновления сайта <30s
- Качество поиска: точность результатов AI-помощника
- Покрытие Dataview: поддержка 90%+ используемых запросов
- Мобильность: корректное отображение на всех устройствах
🔧 Технические детали реализации
Go webhook сервис
// Примерная структура Go сервиса
type WebhookServer struct {
gitRepo *git.Repository
quartzPath string
cache *BuildCache
}
func (w *WebhookServer) handleWebhook(payload GitPayload) {
changedFiles := w.getChangedFiles(payload.Before, payload.After)
if w.needsRebuild(changedFiles) {
w.incrementalBuild(changedFiles)
}
}
Dataview парсер
// Парсинг dataview запросов
type DataviewQuery struct {
Type string // LIST, TABLE, TASK
From string // источник данных
Where string // условия фильтрации
Sort string // сортировка
}
func parseDataviewBlock(markdown string) []DataviewQuery {
// Извлечение и парсинг dataview блоков
}
Правила видимости
# Конфигурация исключений
exclude_paths:
- "📋 Templates/"
- "Private/"
- "Draft/"
exclude_patterns:
- "*.private.md"
- "temp-*"
include_only_published: true
🎯 Приоритеты реализации
Первоочередные задачи
- Go webhook - основа для всех улучшений
- Инкрементальная сборка - критично для производительности
- Скрытие служебных папок - важно для чистоты публикации
Вторичные задачи
- Dataview поддержка - расширение функциональности
- Кастомизация Quartz - улучшение внешнего вида
- AI-помощник - качественное улучшение workflow
Опциональные улучшения
- Расширенная аналитика использования
- Дополнительные форматы экспорта
- Интеграция с другими сервисами
📋 Конкретные следующие шаги
Немедленно (эта неделя)
- Создать Go модуль для webhook сервиса
- Настроить базовую структуру проекта
- Реализовать простейший HTTP сервер
- Протестировать получение webhook'ов от Gitea
Ближайшие 2 недели
- Завершить базовый Go webhook сервис
- Интегрировать с существующим Git репозиторием
- Добавить запуск Quartz сборки из Go
- Начать работу над Git diff анализом
Ближайший месяц
- Реализовать инкрементальную сборку
- Настроить исключение служебных папок
- Оптимизировать кеширование
- Начать работу над Dataview парсером
Ближайшие 3 месяца
- Полная поддержка Dataview запросов
- Кастомизация Quartz под личные потребности
- MVP AI-помощника для поиска
- Все основные функции работают стабильно
Связано с: Second Mind Pipeline/index Последнее обновление: 2024-12-19