No description
Find a file
Callum Alpass b4fe29068b Refactor and consolidate modal implementation, update naming and imports, and adjust styles and tests
• Remove the legacy “MinimalistTaskModal” base class and its derivatives (MinimalistTaskCreationModal and MinimalistTaskEditModal) by renaming and consolidating them into new classes:
  – Rename MinimalistTaskModal to TaskModal
  – Rename MinimalistTaskCreationModal → TaskCreationModal
  – Rename MinimalistTaskEditModal → TaskEditModal
• Update all references and imports across the project (including AdvancedCalendarView) to use the new TaskModal, TaskCreationModal, and TaskEditModal classes instead of the old minimalist versions.
• Extract and expose a new TaskConversionOptions type (in src/types/taskConversion.ts) to provide a consistent interface for passing conversion-related options.
• Adjust the modal logic:
  – In TaskCreationModal, update natural language parsing, pre-populated values, and form handling using the new base TaskModal APIs.
  – In TaskEditModal, change the constructor signature to accept an options object (including “task” and an optional “onTaskUpdated” callback) and update recurrence handling to convert legacy recurrence objects into display strings.
• Update CSS:
  – Rename styles/minimalist-modal.css to styles/task-modal.css and update class comments (e.g. “MINIMALIST TASK MODAL” → “TASK MODAL – Google Keep/Todoist Inspired”).
  – Modify selectors in modal-bem.css by removing references to “.task-creation-modal” and “.task-edit-modal” in some cases, as these are now included under the unified “tasknotes-plugin” context.
• Remove the tests for BaseTaskModal (tests/unit/modals/BaseTaskModal.test.ts) since that base class is no longer used, and update test references for the new TaskCreationModal class.
• Overall, this commit streamlines the modal codebase and unifies the naming and styling of task-related modals while updating the type definitions and downstream usage in views and tests.

These changes are backward‐compatible with previous plugin settings (aside from renamed classes/interfaces) but may require updates in any custom integrations relying on the old MinimalistTask* modals.
2025-06-27 21:45:08 +10:00
.github/workflows Update artifact uploader from v3 to v4 in GitHub Actions workflow 2025-06-24 07:48:50 +10:00
media add screenshot 2025-06-15 23:33:32 +10:00
src Refactor and consolidate modal implementation, update naming and imports, and adjust styles and tests 2025-06-27 21:45:08 +10:00
styles Refactor and consolidate modal implementation, update naming and imports, and adjust styles and tests 2025-06-27 21:45:08 +10:00
tests Refactor and consolidate modal implementation, update naming and imports, and adjust styles and tests 2025-06-27 21:45:08 +10:00
.editorconfig Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.eslintignore Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
.eslintrc update linting rues 2025-06-25 21:02:02 +10:00
.gitignore Refactor Task Creation, Calendar, Kanban, and Pomodoro views with new UI classes and optimistic task-update support 2025-06-09 13:40:43 +10:00
.npmrc Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
build-css.mjs Refactor and consolidate modal implementation, update naming and imports, and adjust styles and tests 2025-06-27 21:45:08 +10:00
esbuild.config.mjs Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
jest.config.js Update Jest Coverage Settings and CollectCoverageFrom Patterns 2025-06-26 05:57:58 +10:00
jest.integration.config.js Add testing suite 2025-06-24 00:24:11 +10:00
LICENSE update license 2025-05-30 00:49:39 +10:00
main.ts Rename ChronoSync Plugin to TaskNotes Plugin and Remove Legacy Daily Metadata Commands 2025-05-31 11:29:32 +10:00
manifest.json release 3.8.7 2025-06-27 07:29:14 +10:00
package-lock.json Remove @types/date-fns dependency and Update TS Config Paths 2025-06-25 21:07:31 +10:00
package.json release 3.8.7 2025-06-27 07:29:14 +10:00
README.md Simplify readme 2025-06-16 21:12:12 +10:00
Tasknotes-Development-Guidelines.md Refactor and consolidate modal implementation, update naming and imports, and adjust styles and tests 2025-06-27 21:45:08 +10:00
TIMEZONE_FIXES.md Implement Timezone-Safe Date Handling and Utilities Across the Codebase 2025-06-10 18:42:34 +10:00
tsconfig.json Remove @types/date-fns dependency and Update TS Config Paths 2025-06-25 21:07:31 +10:00
version-bump.mjs Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
versions.json release: 0.7.0 2025-06-01 21:58:08 +10:00

TaskNotes for Obsidian

A task and note management plugin with calendar views and daily notes.

Downloads Screenshot of biblib Obsidian plugin

Rationale

TaskNotes uses YAML frontmatter to store task data, providing several benefits. YAML is a standard format compatible with many tools, ensuring long-term data stability in line with Obsidian's file-over-app philosophy. The frontmatter approach makes it trivial to add custom fields like "assigned-to" or "attachments" that integrate seamlessly with other tools like Obsidian Bases. This extensibility has made it easy to add features like time-tracking, which would be difficult to implement cleanly in other task formats. The one-note-per-task approach enables you to add unstructured content in the note body for descriptions and progress notes. Each task becomes a full participant in your knowledge graph, leveraging native Obsidian features like backlinking and graph visualization. This creates a complete history and context for every task in one place.

Core Features

Task Management

  • Individual Markdown files with YAML frontmatter
  • Properties: title, status, priority, due date, scheduled date, contexts, tags, time estimates
  • Recurring tasks with per-date completion tracking
  • Time tracking with multiple sessions per task
  • Archive functionality using tags
  • Advanced filtering and grouping options

Calendar Integration

  • Month view with task and note display
  • Mini calendar for compact layouts
  • ICS/iCal subscription support
  • Direct navigation to daily notes

Time Management

  • Built-in time tracking with start/stop functionality
  • Pomodoro timer with task integration
  • Session history and statistics

Editor Integration

  • Interactive task previews on wikilinks
  • One-click checkbox-to-task conversion
  • Template support with parent note context

Views

  • Calendar: Month view with agenda
  • Task List: Filtering and grouping
  • Kanban: Drag-and-drop task management
  • Agenda: Daily task and note overview
  • Notes: Date-based note browser
  • Pomodoro: Timer with statistics

Configuration

Customization

  • Field Mapping: Customize YAML property names to match existing workflows
  • Custom Statuses: Define task statuses with colors and completion behavior
  • Custom Priorities: Create priority levels with weight-based sorting
  • Templates: Configure daily note templates with Obsidian variables

YAML Structure

Task Example

title: "Complete documentation"
status: "in-progress"
due: "2024-01-20"
priority: "high"
contexts: ["work"]
timeEstimate: 120
timeEntries:
  - startTime: "2024-01-15T10:30:00"
    endTime: "2024-01-15T11:15:00"

Recurring Task

title: "Weekly meeting"
recurrence:
  frequency: "weekly"
  days_of_week: ["mon"]
complete_instances: ["2024-01-08"]

Credits

This plugin uses FullCalendar.io for its calendar components.

License

This project is licensed under the MIT License - see the LICENSE file for details.