No description
Find a file
Callum Alpass 60430a0dea feat: Add markdown link support for inline task widgets (Issue #312)
Extends task link detection and rendering to support both wikilinks and markdown links.
Now properly renders [text](path) markdown links as interactive inline task widgets
in both live preview and reading modes.

Key changes:
- Enhanced TaskLinkDetectionService to detect both [[wikilinks]] and [markdown](links)
- Added URL decoding for markdown link paths (crucial for paths with spaces)
- Updated TaskLinkOverlay to handle both link types in live preview mode
- Enhanced ReadingModeTaskLinkProcessor for markdown link support in reading mode
- Uses proper Obsidian API functions: parseLinktext() and getFirstLinkpathDest()

Complements commit 19c74f8 which added markdown link *writing* support.
Now the plugin both writes AND reads markdown links consistently.

Fixes #312
2025-07-29 06:07:30 +10:00
.github debug: Temporarily test only Node.js 20 with verbose output 2025-07-26 13:54:37 +10:00
docs release 3.16.1 2025-07-28 22:26:15 +10:00
media fix: Move inline task widget screenshots to docs/assets folder 2025-07-17 21:19:22 +10:00
src feat: Add markdown link support for inline task widgets (Issue #312) 2025-07-29 06:07:30 +10:00
styles feat: Add visual state indicators for active saved views in FilterBar 2025-07-28 22:20:29 +10:00
tests fix: Resolve timezone bug in recurring task completion (Issue #314) 2025-07-28 22:20:29 +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 remove unneeded files 2025-07-20 18:04:57 +10:00
.npmrc Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
build-css.mjs feat: add collapsible project note subtasks widget 2025-07-09 21:01:30 +10:00
esbuild.config.mjs Refactor plugin architecture and implement best practices 2025-05-18 11:50:16 +10:00
jest.config.js fix: Adjust Jest coverage thresholds to realistic levels 2025-07-26 13:47:31 +10:00
jest.integration.config.js Add actions read permission to docs workflow 2025-06-29 12:39:17 +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.16.1 2025-07-28 22:26:15 +10:00
mkdocs.yml docs: Add comprehensive release notes documentation 2025-07-20 08:27:31 +10:00
package-lock.json feat: implement comprehensive projects system with note-based linking 2025-07-05 18:54:39 +10:00
package.json release 3.16.1 2025-07-28 22:26:15 +10:00
README.md docs: Update documentation for enhanced task conversion and UI improvements 2025-07-26 19:34:52 +10:00
Tasknotes-Development-Guidelines.md docs: Document view options support in saved views 2025-07-27 12:05:25 +10:00
test-overdue-setting.md feat: Add setting to hide completed tasks from overdue status (#300) 2025-07-27 10:20:40 +10:00
tsconfig.json fix(tests): Resolve multiple unit and integration test failures 2025-07-12 21:22:25 +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 management plugin where each task is stored as an individual note using YAML frontmatter with calendar, kanban and pomodoro integration.

Downloads Screenshot of biblib Obsidian plugin

Documentation

Documentation

Overview

TaskNotes treats each task as an individual Markdown file with YAML frontmatter containing the task's metadata (due date, status, priority, etc.) and the note body for additional context, descriptions, or progress notes. This creates a flexible system where tasks can be as simple or detailed as needed.

The plugin includes several views: calendar, kanban boards, filtered task lists, and a daily agenda. Tasks can link to projects using Obsidian's note linking. Recurring tasks track completion per instance.

You can track time on tasks with start/stop buttons and view session history. There's also a pomodoro timer that connects to tasks, with configurable work/break periods and stats.

Rationale

Using YAML frontmatter for task storage has multiple benefits. YAML is a standard data format that works with many tools, so you can easily extract and transform your task data into other formats. This keeps your data portable and aligns with Obsidian's file-over-app philosophy.

The frontmatter is also extensible—you can add custom fields like "assigned-to" or "attachments" and use other tools like Obsidian Bases to work with that data. This flexibility made it easy to add features like time-tracking, which is tricky in other task formats where there's no obvious place to store timing information.

Since each task is a full note, you can write detailed descriptions, jot down thoughts as you work, and connect tasks to other notes through Obsidian's linking and graph features. The frontmatter compatibility with Bases also means you can use that plugin for different views and bulk operations if you want.

Core Features

Task Management

  • Individual Markdown files with YAML frontmatter
  • Properties: title, status, priority, due date, scheduled date, contexts, projects, tags, time estimates, completion date
  • Project organization using note-based linking
  • Recurring tasks with per-date completion tracking
  • Time tracking with multiple sessions per task
  • Archive function using tags
  • Filtering and grouping options

Calendar Integration

  • Month view displaying tasks and notes
  • Mini calendar view for compact layouts
  • ICS/iCal feed subscriptions
  • Direct navigation to daily notes

Time Management

  • Time tracking with start/stop functionality
  • Pomodoro timer with task integration
  • Session history and statistics

Editor Integration

  • Interactive task previews for wikilinks
  • Universal line-to-task conversion
  • Template support with parent note context

Views

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

Task creation dialog Create tasks with natural language parsing for due dates, recurrence, and contexts

Pomodoro timer Built-in pomodoro timer with task integration and daily completion tracking

Kanban board view Kanban boards with drag-and-drop functionality and customizable columns

Project subtasks view Project management with subtasks and hierarchical organization

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"]
projects: ["[[Website Redesign]]"]
timeEstimate: 120
timeEntries:
  - startTime: "2024-01-15T10:30:00Z"
    endTime: "2024-01-15T11:15:00Z"

Recurring Task

title: "Weekly meeting"
recurrence: "FREQ=WEEKLY;BYDAY=MO"
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.