Crate taskdn

Crate taskdn 

Source
Expand description

Taskdn - Rust library for parsing, querying, and manipulating Taskdn task files.

This library provides the core functionality for working with Taskdn’s markdown-based task management system. It handles parsing files with YAML frontmatter, validating against the specification, and performing CRUD operations.

§Features

  • Parse markdown files with YAML frontmatter into typed entities
  • Query tasks, projects, and areas with flexible filters
  • Create/Update/Delete entities with automatic timestamp management
  • Validate files against the Taskdn specification
  • Preserve unknown frontmatter fields during round-trip serialization
  • Process file system events into typed vault events
  • Watch directories for changes (with the watch feature)

§Quick Start

use taskdn::{Taskdn, TaskdnConfig, TaskFilter, TaskStatus, NewTask};
use std::path::PathBuf;

// Initialize the SDK with your vault directories
let config = TaskdnConfig::new(
    PathBuf::from("./tasks"),
    PathBuf::from("./projects"),
    PathBuf::from("./areas"),
);
let sdk = Taskdn::new(config)?;

// Create a new task
let path = sdk.create_task(NewTask::new("My new task"))?;

// List tasks by status
let ready_tasks = sdk.list_tasks(&TaskFilter::new().with_status(TaskStatus::Ready))?;

// Complete a task (automatically sets completed_at)
sdk.complete_task(&path)?;

§Core Types

§File Watching

Enable the watch feature to use the built-in file watcher:

[dependencies]
taskdn = { version = "0.1", features = ["watch"] }

Or process file changes manually using Taskdn::process_file_change:

use taskdn::{Taskdn, FileChangeKind, VaultEvent};

// When your file watcher reports a change:
if let Some(event) = sdk.process_file_change(&path, FileChangeKind::Modified)? {
    match event {
        VaultEvent::TaskUpdated(task) => println!("Updated: {}", task.title),
        VaultEvent::TaskCreated(task) => println!("Created: {}", task.title),
        _ => {}
    }
}

§Modules

  • types - All entity types, status enums, and builder types
  • validation - Spec compliance warnings

Re-exports§

pub use types::Area;
pub use types::AreaStatus;
pub use types::AreaUpdates;
pub use types::DateTimeValue;
pub use types::FileReference;
pub use types::NewArea;
pub use types::NewProject;
pub use types::NewTask;
pub use types::ParsedArea;
pub use types::ParsedProject;
pub use types::ParsedTask;
pub use types::Project;
pub use types::ProjectStatus;
pub use types::ProjectUpdates;
pub use types::Task;
pub use types::TaskStatus;
pub use types::TaskUpdates;
pub use validation::ValidationWarning;

Modules§

types
Core types for the Taskdn library.
validation
Validation warnings for spec compliance.

Structs§

AreaFilter
Filter criteria for querying areas.
BatchResult
Result type for batch operations that can partially succeed.
ProjectFilter
Filter criteria for querying projects.
TaskFilter
Filter criteria for querying tasks.
Taskdn
The main entry point for the Taskdn SDK.
TaskdnConfig
Configuration for initializing the Taskdn SDK.

Enums§

Error
All errors that can occur in the taskdn library.
FileChangeKind
The kind of file system change that occurred.
VaultEvent
A typed event representing a change in the vault.

Type Aliases§

Result
Result type alias for taskdn operations.