OBS Projects Plus

pending

by Park Pavel

Forked from obsmd-projects/obsidian-projects

Project management with visual calendar, timeline, multi-day events, boards, tables and galleries.

24 starsUpdated 3d agoApache-2.0Discovered via Obsidian Unofficial Plugins
View on GitHub

OBS Projects Plus

Version Obsidian License Downloads Telegram

Управление проектами в Obsidian: таблицы, доски, календарь с timeline, галерея

English | Русский


Зачем этот плагин?

Obsidian хранит всё в обычных Markdown-файлах. Это удобно для текста, но когда заметок становится десятки или сотни — сложно понять, что и в каком состоянии.

Projects Plus превращает папку с заметками в управляемый проект: вы видите все задачи на канбан-доске, все события на календаре, все карточки в галерее — и всё это без экспорта, без облака, прямо в вашем хранилище.

Кому подойдёт

  • Контент-менеджерам — отслеживать статус публикаций в таблице и на доске
  • Исследователям — организовать источники, заметки и дедлайны с фильтрацией
  • Планировщикам — видеть задачи на timeline-календаре с мультидневными событиями
  • Всем, кто ведёт базу знаний — когда нужен визуальный обзор, а не список файлов

Как это работает

  1. Вы указываете папку, тег или Dataview-запрос — это "проект"
  2. Плагин собирает все подходящие заметки и читает их frontmatter (YAML-шапка)
  3. Вы выбираете представление — таблица, доска, календарь или галерея
  4. Редактируете поля прямо в интерфейсе — плагин записывает изменения обратно в файл

Данные остаются в ваших файлах. Плагин не создаёт собственную базу данных.


📸 Галерея

👆 Нажмите для просмотра в полном размере


✨ Возможности

ПредставлениеЧто делает
ТаблицаРедактирование с сортировкой, фильтрацией, навигацией по ячейкам
ДоскаKanban — перетаскивание карточек, закрепление статусов (persist), Ctrl+Scroll zoom (25–200%), сворачивание колонок
КалендарьTimeline 07:00–22:00, мульти-дневные бары, 5 уровней зума (Год → День)
ГалереяКарточки с обложками и полями из frontmatter

Календарь — полноценный планировщик: startDate, endDate, startTime, endTime, date (дата создания заметки), поле color для цветовой кодировки, бесконечный скролл, мобильные жесты (свайп, pinch-to-zoom, двойной тап для создания заметки).

Agenda 2.0 — боковая панель календаря с конструктором списков: 42 оператора фильтрации, вложенные AND/OR группы, формулы дат (today, sow, eom, today+1w), два режима — визуальный и Advanced (формулы в стиле Google Sheets).

Доска (Board) — закрепление статусов (persist): колонки остаются видимыми даже без записей, визуальные индикаторы, Ctrl+Scroll zoom (25–200%), адаптивная вёрстка, создание заметок с наследованием фильтров.

Три источника данных: папка, тег, Dataview-запрос. Шаблоны заметок, автосохранение, локализация (RU, EN, UA, ZH-CN).

Подробнее о горячих клавишах, жестах, шаблонах и настройках — в Руководстве пользователя.


📥 Установка

BRAT (рекомендуется)

  1. Установите BRAT
  2. В настройках BRAT добавьте: ParkPavel/obs-projects-plus
  3. Включите плагин

Ручная установка

  1. Скачайте main.js, manifest.json, styles.css из Releases
  2. Поместите в .obsidian/plugins/obs-projects-plus/
  3. Перезапустите Obsidian → Включите плагин

🚀 Быстрый старт

  1. При первом включении плагин создаёт демо-проект (35+ заметок, 6 представлений)
  2. Ctrl/Cmd+P"Projects Plus: Show projects plus"
  3. Попробуйте переключать виды: Таблица → Доска → Календарь → Галерея
  4. Создайте свой проект: Ctrl/Cmd+P"Projects Plus: Create Project"
# Пример frontmatter для заметки проекта
---
title: Моя задача
status: todo
priority: high
startDate: 2026-02-15
date: 2026-02-15
endDate: 2026-02-20
startTime: "09:00"
endTime: "18:00"
color: "#4CAF50"
tags: [проект, важное]
---

🗺️ Roadmap

ПриоритетФункцияВерсияСтатус
Agenda 2.0 & Filter Systemv3.0.5Выпущено
Obsidian Guidelines Compliancev3.0.6Выпущено
Оптимизация + Теги + Поля датv3.0.7Выпущено
Board UX: persist, zoom, collapsev3.0.8Выпущено
Унификация фильтров + Instant modev3.0.9Выпущено
Mobile Feature Parityv3.0.10Выпущено
Deep Mobile Adaptationv3.1.0Выпущено
Drag & Drop 2.0v3.2.0Выпущено
🥇Database Viewv3.3.0Планируется
🥈Calendar Sync (iCal, Google, CalDAV)v3.4.0Планируется

🛠️ Для разработчиков

Известные проблемы

#ПроблемаПриоритетКомментарий
1Дублирование логики команд (main.ts + CommandManager)P2Риск рассогласования при добавлении новых команд
2Fire-and-forget void в ViewApi записиP2Ошибки I/O при записи проглатываются без уведомления пользователя

Custom View API (экспериментальное)

Плагин поддерживает регистрацию пользовательских представлений от сторонних плагинов. Это наследие оригинального Obsidian Projects (Marcus Olsson).

Как это работает: при загрузке Projects Plus перебирает все включённые плагины и ищет метод onRegisterProjectView. Если метод найден — плагин вызывает его и регистрирует возвращённый view рядом со встроенными (Table, Board, Calendar, Gallery).

// В вашем плагине (plugin.ts):
import { Plugin } from "obsidian";
import type { ProjectView, ProjectViewProps, DataQueryResult } from "obsidian-projects-types";

class MyCustomView extends ProjectView {
  getViewType(): string { return "my-view"; }
  getDisplayName(): string { return "My View"; }
  getIcon(): string { return "layout-grid"; }

  onOpen({ contentEl }: ProjectViewProps) {
    contentEl.createEl("h2", { text: "My Custom View" });
  }

  onData({ data }: DataQueryResult) {
    // data.fields — схема, data.records — заметки
  }

  onClose() { /* cleanup */ }
}

export default class MyPlugin extends Plugin {
  onRegisterProjectView = () => new MyCustomView();
}

Установите типы: npm install --save-dev obsidian-projects-types

⚠️ API экспериментальное и может измениться без предупреждения. Подробнее: obsidian-projects-types/README

📣 Голосование контрибьюторов: Svelte 3 → 5

Svelte — компилятор, не runtime. В main.js нет Svelte-кода. CVE компилятора не затрагивают плагин, Obsidian не проверяет версию Svelte.

За: runes DX, экосистема, контрибьюторы. Против: ~50+ файлов, ломающее API, нулевое влияние на пользователя.

Проголосовать или открыть Issue.

Разработка

git clone https://github.com/ParkPavel/obs-projects-plus.git
cd obs-projects-plus
npm ci
npm run dev       # esbuild watch mode
npm run build     # tsc + esbuild production
npm run test      # Jest (375 тестов, 21 suite)
npm run lint      # ESLint + eslint-plugin-obsidianmd (23 правила)
npm run format    # Prettier

Подробнее: CONTRIBUTING.mdCODE_STANDARDS.md


📖 Документация

ДокументОписание
Руководство пользователя (RU)Горячие клавиши, жесты, шаблоны, настройки
User Guide (EN)Full instructions in English
Custom View APIРегистрация своих view из других плагинов
История версийВсе релизы
CHANGELOGKeep a Changelog формат
Архитектура фильтровСпецификация движка
Drag & DropСпецификация для контрибьюторов
Database ViewКонцептуальный документ

💬 Обратная связь


🙏 Благодарности

Форк оригинального Obsidian Projects от Marcus Olsson.
Текущий мейнтейнер: Park Pavel

📄 Лицензия

Apache License 2.0 © 2024–2026 Park Pavel


Сделано с ❤️ для сообщества Obsidian

⭐ Star🐛 Issues💬 Telegram

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.