ReTask - это плагин для Obsidian, предназначенный для управления повторяющимися задачами. Плагин позволяет пользователям создавать задачи с определенным расписанием, отслеживать их выполнение и управлять статусами задач.
1.1. Создание и хранение задач
- Задачи хранятся в виде файлов в Obsidian с метаданными в frontmatter
- Обязательные поля для задачи: название, время старта, длительность, расписание (schedule), описание
- В будущем возможно добавление интерфейса для создания задач, но должна сохраняться возможность создания задач через текстовые файлы
1.2. Типы расписаний
- Поддерживается три типа расписаний для задач:
- Preset (предустановленные шаблоны)
- Interval (интервальное расписание)
- Cron (расписание в формате cron-выражений)
1.3. Статусы задач
- Задача может иметь один из следующих статусов:
- Не начата (not_started)
- В процессе (pending)
- Выполнена (done)
- Отменена (canceled)
- Пропущена (skipped)
1.4. Управление статусами
- Пользователь может изменять статус задачи через интерфейс плагина
- Доступные действия: отметить как выполненную, отмененную или пропущенную
2.1. Система просрочки
- Время жизни экземпляра задачи делится на временные участки
- Каждому участку соответствует статус просрочки: зеленый, желтый, красный
- Черный статус используется для задач, время жизни которых истекло
- Пороговые значения для статусов просрочки задаются пользователем в настройках задачи
2.2. Визуальное отображение
- Статус просрочки визуально отображается в интерфейсе плагина
- Цель - показать пользователю, сколько времени осталось для выполнения задачи
3.1. Представление задач
- Задачи отображаются в виде карточек
- Каждая карточка содержит:
- Название задачи
- Описание
- Даты начала и окончания
- Статус задачи
- Статус просрочки
- Кнопки для изменения статуса
3.2. Доступ к плагину
- Плагин использует view в Obsidian
- Пользователь должен иметь возможность открыть интерфейс плагина
3.3. Язык интерфейса
- Основной язык интерфейса - английский (текущая реализация на русском)
- В будущем возможна локализация
4.1. Графики активности
- График для каждой задачи по типу таблицы коммитов в GitHub
- Визуальное отображение выполнения задач по дням
4.2. Фильтрация и поиск
- Возможность фильтровать и искать задачи
- Просмотр пропущенных задач за определенный период
4.3. Уведомления
- Пуш-уведомления о просроченных задачах
1.1. Задачи
- Задачи хранятся в виде файлов в Obsidian
- Метаданные задач хранятся в frontmatter файлов
- Структура хранения может быть изменена в будущем
1.2. Экземпляры задач
- Экземпляры задач сериализуются и хранятся в хранилище Obsidian
2.1. Использование API Obsidian
- Плагин использует API Obsidian для работы с файлами и метаданными
- Плагин интегрируется в интерфейс Obsidian через систему view
3.1. Эффективная работа с данными
- Плагин должен эффективно обрабатывать задачи и их экземпляры
- Использование подходящих структур данных для хранения и поиска (например, BinarySearchTree)
На основе предоставленного кода, проект находится в стадии разработки.
Реализовано:
- Базовая модель данных для задач и их экземпляров
- Парсер задач из файлов Obsidian
- Менеджер задач для управления статусами
- Пользовательский интерфейс для отображения задач в виде карточек
- Создание и отображение инстансов задач
- Базовая функциональность фильтрации и поиска задач по имени и статусу
- Пагинация для удобного просмотра большого количества задач
- Автоматическое создание экземпляров задач по расписанию
Требует реализации или доработки:
- Улучшение механизма реакции на изменение файла задачи в Obsidian
- Создание пользовательского интерфейса для создания новых задач
- Дальнейшее улучшение пользовательского интерфейса
- Добавление графиков активности по типу таблицы коммитов в GitHub
- Расширение функций фильтрации и поиска
- Система уведомлений о просроченных задачах
- Перевод интерфейса на английский язык
ReTask - это многообещающий плагин для Obsidian, который поможет пользователям эффективно управлять повторяющимися задачами. Текущая реализация включает основные компоненты, но требует доработки для полной функциональности, особенно в части создания экземпляров задач по расписанию и реакции на изменения в файлах задач.