- Исправлен маппинг статусов Logseq → PPDB (теперь отправляет TODO/DOING/DONE вместо new/in_progress/completed) - Удалён нерабочий код setupConfig (использовал несуществующий API) - Исправлена сборка: теперь создаётся index.html + assets/ вместо одного index.js - Исправлено чтение свойств блоков (проверка source-id/sourceId/source_id) - Добавлен скрипт deploy.sh для деплоя в ~/.logseq/plugins/
2.5 KiB
2.5 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Описание проекта
TODO Everywhere — Logseq плагин для синхронизации задач из внешних источников (PPDB, Gitea) в Logseq.
Команды сборки
npm install # Установка зависимостей
npm run build # Сборка для продакшена (dist/index.js)
npm run dev # Режим разработки с автопересборкой
Архитектура
Плагин состоит из одного файла src/index.ts, который:
- Настройка config.edn (
setupConfig) — при первой установке автоматически добавляет Datalog-запросы для PPDB и Gitea в конфиг Logseq - Синхронизация PPDB (
syncPPDBTasks) — получает задачи через/api/logseq/tasksи создаёт страницуPPDB - TODO - Синхронизация Gitea (
syncGiteaTasks) — получает issues через Gitea API и создаёт страницыGitea - {name} - TODO - Запись в страницу (
writeToPage) — конвертирует данные в формат Logseq блоков с TODO/DOING/DONE статусами
Ключевые интерфейсы
PPDBTask— структура задачи из PPDB API (включаетlogseq_priorityиlogseq_status)GiteaIssue— структура issue из Gitea APIGiteaSource— настройки подключения к Gitea репозиторию
Конвертация данных
- Приоритеты: critical/high → [#A], normal → [#B], low → [#C]
- Статусы: new → TODO, in_progress → DOING, completed/rejected → DONE
- Gitea labels определяют приоритет и тип (bug/feature)
Настройки плагина
Настройки хранятся через logseq.settings и включают:
ppdbUrl,ppdbApiKey— подключение к PPDBgiteaSources— JSON массив Gitea репозиториевconfigVersion— версия конфига для отслеживания миграций
Связанный API
PPDB endpoint /api/logseq/tasks (в проекте ppdb-site) требует LOGSEQ_API_KEY в переменных окружения.