Commit graph

28 commits

Author SHA1 Message Date
callumalpass
735706ead4 docs: tighten accuracy, fix cross-links, and consolidate unreleased notes 2026-02-21 13:41:32 +11:00
callumalpass
b0cd74f1ad docs: update docs content and docs build tooling 2026-02-21 08:52:08 +11:00
callumalpass
291184cd56 docs: restructure task management guides and refresh screenshots
Split recurring tasks and reminders content into dedicated pages,
condense existing guides for clarity, and update all documentation
screenshots. Refactor e2e screenshot tests with shared openView()
helper and retry support. Refine MdbaseSpec field types (enum,
datetime, link) and replace MCPService @ts-expect-error workarounds
with bound tool pattern.
2026-02-15 12:10:28 +11:00
callumalpass
119b0fc47b docs: add screenshots to documentation from e2e tests
Add comprehensive screenshots to documentation pages:
- Views: task list, kanban, calendar (month/week/day/year), agenda, mini calendar, pomodoro
- Settings: general, task properties, modal fields, appearance, features, integrations
- Features: task creation modal, task statistics

Also adds e2e/docs-screenshots.spec.ts test suite for generating documentation screenshots.
2025-12-31 09:59:45 +11:00
callumalpass
5708d3dd9d docs: consolidate and streamline documentation
- Add v3 to v4 migration guide with Bases setup instructions
- Expand core-concepts.md with YAML structure, property types, and methodology examples
- Streamline index.md to be a concise landing page with quickstart
- Remove developer-focused timezone docs (TIMEZONE_HANDLING_*.md)
- Update releases.md to show v4.x as current
- Fix broken relative links in features.md
- Reduce repetition across docs by centralizing Bases info in core-concepts.md
- Consolidate task-management.md recurring tasks and reminders sections
- Simplify features/integrations.md and features/calendar-integration.md
- Reduce task-defaults.md Default Reminders section from 227 to 24 lines
- Add v4/Bases troubleshooting and OAuth calendar troubleshooting sections
- Update troubleshooting.md with current settings paths and GitHub link
- Update calendar-setup.md with Azure manifest redirect URI instructions
2025-12-07 13:03:21 +11:00
callumalpass
d168644661 refactor: split taskPropertiesTab into modular components
- Extract property card renderers into separate modules:
  - helpers.ts: shared types, NLP trigger helpers, simple/metadata cards
  - statusPropertyCard.ts: status values with drag-drop reordering
  - priorityPropertyCard.ts: priority values with drag-drop reordering
  - projectsPropertyCard.ts: projects with autosuggest filters
  - tagsPropertyCard.ts: native Obsidian tags
  - remindersPropertyCard.ts: default reminder configuration
  - titlePropertyCard.ts: title and filename settings
  - userFieldsCard.ts: custom user fields

- Add Feature Properties section for pomodoros, ICS event ID, and
  ICS event tag (properties not stored in task frontmatter)

- Update documentation to reflect settings reorganization:
  - Task Properties tab now contains property keys, defaults, and NLP triggers
  - Defaults tab redirects to new locations
  - Appearance tab references moved settings
  - Features tab documents body template settings
2025-12-02 10:04:21 +11:00
callumalpass
a3621ca01f Docs: Comprehensive v4.0.0 documentation update
Updates documentation to reflect version 4 changes:
- Bases core plugin integration and requirement
- OAuth calendar integration (Google, Microsoft)
- New Bases-based filtering with YAML expressions
- Removed v3 FilterBar UI references
- Added modal fields settings documentation
- Added 4.0.0 release notes
- Updated all feature guides with v4 functionality
2025-11-18 12:57:46 +11:00
callumalpass
1bd5127c85 docs: add boolean status values documentation
Add documentation explaining how to use boolean true/false as status
values for compatibility with Obsidian's checkbox properties.
2025-10-08 07:34:45 +11:00
callumalpass
249cde274f docs: describe task dependencies 2025-09-28 15:42:14 +10:00
callumalpass
412aa7e3ad update docs 2025-09-16 21:34:58 +10:00
callumalpass
5c1ce1182e Update docs (fix #673) 2025-09-16 21:11:36 +10:00
callumalpass
1232d028ce Add project property filter support 2025-09-16 07:57:33 +10:00
callumalpass
4e1312f62b docs: update documentation for version 3.23.1 2025-09-13 21:50:39 +10:00
callumalpass
181b378761 feat: migrate project autosuggest to modern settings UI
- Move project autosuggest settings from Misc to Appearance & UI tab
- Use new card-based settings components (createSectionHeader, createToggleSetting, createTextSetting, createHelpText)
- Update documentation references from Settings → Misc to Settings → Appearance & UI
- Update status trigger documentation location to Settings → Features
- Maintain backward compatibility with existing settings structure
2025-09-03 22:25:57 +10:00
renatomen
f0da4b966c docs(autosuggest): enhanced project autosuggester docs with GIF, cards/flags, and demos 2025-09-03 22:22:42 +10:00
Renato Mendonca
76ad45d1a0
Feat/Implement status auto-suggestion with NLP integration (#512)
* feat: implement status auto-suggestion with NLP integration

What:

Added status auto-suggestion triggered by configurable character (statusSuggestionTrigger setting)

Enhanced NaturalLanguageParser to handle custom status extraction before date parsing

Fixed suggestion dropdown text truncation with CSS improvements

Why:

Often users need to add tasks with a status that differ from the default status. E.g when adding a task that's already in progres.

This featue allows quick status selection during task creation via natural language input

Prevents conflict when parsing status names containing keywords like 'Now' by parsing status before chrono-node date parser

How:

User defined trigger defined in Settings -> Misc. Defaults to "*".

Status parsing disabled if the trigger setting is empty.

Implemented NLPSuggest class extending AbstractInputSuggest for status suggestions

String-based matching;

Uses case-insensitive indexOf() to handle any characters Obsidian properties accept

Processes status configs by length (longest first) to prevent partial matches

Manual boundary checking instead of unreliable regex word boundaries

* docs: add status auto-suggestion documentation

Added documentation for status auto-suggestion feature in task management:
- Updated auto-suggestions list to include status trigger
- Added Status Suggestions section with usage example
- Included visual reference to auto-suggest-status.gif

* test: add status auto-suggestion tests

Added test coverage for status auto-suggestion feature:

TaskCreationModal.status-suggestions.test.ts: Tests for modal integration, trigger configuration, and UI behavior

NaturalLanguageParser.status-extraction.test.ts: Tests for string-based status extraction

## Status Trigger Configuration
• Uses configured status trigger character from settings
• Disables status suggestions when trigger setting is empty
• Supports custom trigger characters beyond default "*"

## Status Suggestion Detection
• Detects status trigger in natural language input field
• Shows status suggestions for partial text matches
• Matches partial input like "*in" to "In Progress" status

## Status Suggestion Behavior
• Inserts status text into textarea when suggestion selected
• Works consistently with other NLP elements (@contexts, #tags, +projects)

## Natural Language Parser Integration
• Extracts status before date parsing to prevent keyword conflicts
• Handles complex status names with special characters and spaces

## String-based Status Matching
• Extracts simple status labels from text input
• Extracts complex status labels containing special characters like "Active = Now"
• Handles status names with parentheses and colons

## Boundary Checking
• Matches status at beginning, middle, and end of text
• Prevents partial word matches within larger words
• Uses proper word boundary detection

## Case Insensitive Matching
• Matches status regardless of text case (UPPER, lower, Mixed)
• Handles mixed case status names consistently

## Error Handling
• Handles missing status configurations gracefully
• Works with empty status configuration arrays

* fix: resolve status suggestion test failures

- Add proper DOM initialization helper for TaskCreationModal tests
- Fix NLP parser test expectations to align with correct date parsing behavior
- Status extraction correctly happens before date parsing to prevent conflicts
- Date expressions like 'tomorrow at 3pm' are properly parsed and removed from title
- All status suggestion tests now pass except for 2 edge cases requiring investigation

* fix: enhance chrono-node mock to properly handle time expressions

Following TDD and testing standards:
- Apply single responsibility principle to mock external dependencies properly
- Mock chrono-node to handle 'tomorrow at 3pm' as complete date expressions
- Add time parsing support for am/pm patterns in test environment
- Ensure mock returns full matched text like real chrono-node
- Fix date text removal to handle complete time expressions correctly

All 20 status extraction tests now pass, confirming:
- Status extraction happens before date parsing (prevents 'Now' conflicts)
- Complete date+time expressions are properly parsed and removed
- Time components are correctly extracted and assigned

* fix: align overlay tests with simplified implementation

Following testing standards to ensure tests expect what's implemented:
- Remove references to removed overlayHideDelay setting and dual-mode behavior
- Remove calls to non-existent clearCursorHideState function
- Update test expectations to match simplified cursor detection logic
- Align tests with actual implementation: cursor within link boundaries hides overlay
- Remove legacy vs immediate mode tests (feature was simplified)

All 21 overlay tests now pass:
- 6/6 debounce tests passing
- 6/6 context menu tests passing
- 9/9 integration tests passing

Tests now accurately reflect the simplified, working implementation.

* refactor: extract status suggestion business logic following code quality standards

Apply Single Responsibility Principle and Dependency Injection:

NEW: StatusSuggestionService
- Extract all status suggestion business logic from TaskCreationModal
- Pure business logic with no UI dependencies - easily testable
- Handles status extraction, suggestions, trigger detection, and text manipulation
- Follows single responsibility: only manages status suggestion logic

REFACTOR: TaskCreationModal
- Add dependency injection for StatusSuggestionService (optional for backward compatibility)
- Use injected service for all status-related operations
- Maintain existing public API while improving internal architecture

TESTS: Comprehensive test coverage
- 23 unit tests for StatusSuggestionService (100% business logic coverage)
- 9 integration tests verifying service integration
- All 32 tests passing - validates functionality separation
- Tests focus on business logic, not complex DOM manipulation

Benefits:
- Business logic separated from UI concerns (Single Responsibility)
- Easy to mock and test (Dependency Injection)
- Fast, reliable tests (no DOM complexity)
- Maintains backward compatibility
- Follows TDD principles with meaningful test coverage

* fix: resolve TypeScript compilation errors

- Fix StatusConfiguration -> StatusConfig type imports across all files
- Add explicit 'as const' assertions for literal union types in TaskCreationModal
- Fix DateContextMenu type guard for showPicker method
- Ensure proper type safety while maintaining functionality

All TypeScript errors resolved, build now succeeds cleanly.

* feat: complete status auto-suggestion feature implementation

FEATURE COMPLETE: Status auto-suggestion on task creation

 Core Implementation:
- StatusSuggestionService with comprehensive business logic
- Natural language parsing with status extraction before date parsing
- Status trigger suggestions (*status) with real-time filtering
- Proper handling of complex status names like 'Active = Now'

 Architecture Improvements:
- Applied Single Responsibility Principle (business logic separated from UI)
- Dependency injection for better testability
- Clean separation of concerns following code quality standards

 Test Coverage:
- 32 comprehensive tests (23 unit + 9 integration)
- 100% business logic test coverage
- All overlay and NLP parser tests passing (62 total tests)
- Enhanced chrono-node mock for realistic date/time parsing

 Technical Fixes:
- TypeScript compilation errors resolved
- Updated to TypeScript 5.9.2 for better type safety
- Fixed type imports and literal union types
- Added backward compatibility stub functions

 Manual Testing Confirmed:
- Status extraction from natural language input working
- Status suggestions with trigger (*) working
- Complex scenarios with dates, contexts, projects working
- Edge cases handled gracefully

The feature is production-ready with clean, maintainable architecture.
2025-08-31 10:35:02 +10:00
Callum Alpass
57fdf0ef00 docs: Document the new notification system 2025-08-07 23:06:06 +10:00
Callum Alpass
465b264b87 docs: Comprehensive update to recurring tasks documentation
Completely rewrote the recurring tasks section to document the sophisticated
new behavior including:

- Core concepts: Separation of recurring patterns vs next occurrence
- DTSTART integration: All recurrence rules now include start dates/times
- Visual hierarchy: Solid borders (next occurrence) vs dashed (pattern instances)
- Dynamic scheduled dates: Automatic updates and flexible scheduling
- Drag behaviors: Different actions for next occurrence vs pattern instances
- Completion tracking: Individual instance completion and automatic updates
- Flexible scheduling: Next occurrence can be anywhere, even outside pattern
- Advanced examples: Complex scenarios like early starts and off-pattern days
- Timezone handling: UTC anchor principle explanation
- Backward compatibility: How existing tasks continue to work

The documentation now matches the sophisticated implementation and provides
detailed guidance for users to understand and utilize the full feature set.
2025-08-04 16:49:13 +10:00
Callum Alpass
4d89d754d9 docs: Update documentation for enhanced task conversion and UI improvements
- Update instant task conversion to reflect universal line support (any line type, not just checkboxes)
- Document clickable project group headers in Task List View
- Add FilterBar integration details for project subtasks widget
- Update main README to reflect universal line-to-task conversion capability

These changes document the user-facing improvements introduced since v3.15.1.
2025-07-26 19:34:52 +10:00
Callum Alpass
48f96cafd5 docs: Add auto-suggestion functionality documentation
- Document auto-suggestion triggers (@, #, +) in natural language input
- Explain project suggestion display format with titles and aliases
- Detail search capabilities across filename, title, and aliases
- Clarify project suggestion insertion format (+[[filename]])
- Add example suggestions showing rich display format
2025-07-20 21:17:35 +10:00
Callum Alpass
ce8321f770 docs: Update documentation for v3.14.0 features
- Add project indicator and subtask creation documentation
- Document drag-and-drop saved view reordering
- Add created date sort option
- Document recurring task calendar improvements
- Add comprehensive recurring task documentation with scheduled date behavior
2025-07-17 06:01:27 +10:00
Callum Alpass
442318eb0a fix: resolve {{parentNote}} YAML parsing issues and update documentation
## Template Processing Fixes
- Add YAML-specific template processing with automatic quoting for special characters
- Fix {{parentNote}} variable causing nested arrays in YAML frontmatter
- Implement needsYamlQuoting() and escapeYamlString() for proper YAML safety
- Create processTemplateVariablesForYaml() to handle frontmatter vs body content differently

## Root Cause Resolution
The YAML parser was interpreting [[markdown links]] as nested array syntax, causing:
- `parent: [[test-13]]` → parsed as `[["test-13"]]`
- When serialized back: `parent:\n  - - test-13` (double nesting)
- YAML collection warnings and malformed frontmatter

## Solution Implementation
- YAML frontmatter: {{parentNote}} → "[[Parent Note]]" (quoted string)
- Markdown body: {{parentNote}} → [[Parent Note]] (unquoted link)
- Proper string handling prevents YAML parser misinterpretation

## Documentation Updates
- Update template variable documentation in task-defaults.md and task-management.md
- Remove references to old broken behavior (newline and dash prefix)
- Add recommended best practice: use `project:\n  - {{parentNote}}` for project alignment
- Provide clear examples of basic usage vs recommended project usage
- Explain benefits of list format for consistency with projects system

Fixes instant task conversion where parentNote was getting "way too nested"
and showing YAML collection warnings. Now produces clean, properly formatted
YAML with preserved markdown links.
2025-07-06 10:17:16 +10:00
Callum Alpass
6d5784ba4f docs: update {{parentNote}} template variable documentation
- Update settings help text to clarify {{parentNote}} formats as YAML list item
- Add detailed explanation with newline and dash prefix behavior
- Include practical example showing template usage and expected output
- Update documentation across task management and settings sections
- Clarify that formatting applies to instant conversion context
2025-07-05 20:02:34 +10:00
Callum Alpass
10ab36449e refactor: remove default projects functionality
- Remove defaultProjects field from TaskCreationDefaults interface
- Remove default projects UI setting and initialization logic
- Remove {{projects}} template variable support and documentation
- Simplify project system to manual selection only
- Update documentation to reflect manual-only project assignment
2025-07-05 19:28:05 +10:00
Callum Alpass
814520f0d5 docs: update documentation to include projects feature
- Add projects section to task management documentation
- Update README with projects in core features and YAML examples
- Include projects in task properties list and field mapping documentation
- Document project assignment, linking, organization and template integration
- Maintain informative tone without promotional language
2025-07-05 18:58:50 +10:00
Callum Alpass
eca08599d3 refactor documentation 2025-06-29 13:35:47 +10:00
Callum Alpass
78cb270f89 docs: Restructure and streamline documentation for improved clarity
• Removed outdated/redundant docs files:
 – Deleted "docs/concepts-rationale.md" and "docs/creating-editing-tasks.md" which duplicated content now integrated into core-concepts and task management documentation.
 – Removed "docs/features/natural-language.md" and "docs/features/time-tracking.md" as their content has been merged or rephrased in other feature docs.
 – Deleted the legacy "docs/views/task-view.md" to avoid overlap with the new Task List View documentation.

• Revised core concept and feature documents:
 – Updated "docs/core-concepts.md" to better explain the “note-per-task” approach and YAML frontmatter benefits.
 – Streamlined "docs/features.md" and its subpages (Inline Task Integration, Calendar Integration, and the new Time Management doc) to reflect a unified, concise explanation of TaskNotes’ feature set.
 – Refined inline task, calendar, and settings docs (including advanced, inline task, and task defaults) for consistent language and structure.

• Introduced new documentation:
 – Added "docs/features/time-management.md" to clearly outline time tracking, Pomodoro timer, and productivity analytics.
 – Created "docs/views/task-list.md" to complement the suite of views now including Agenda, Kanban, Notes, Calendar, and Pomodoro views.

• General improvements:
 – Reworded and reorganized sections across multiple docs to enhance readability and better align with the new design philosophy.
 – Consolidated similar topics and removed duplicate descriptions to simplify the overall documentation structure.
 
These changes improve the organization, clarity, and maintainability of the TaskNotes documentation, making it easier for users to understand the core concepts and features.
2025-06-29 13:14:07 +10:00
Callum Alpass
99ce83f897 Initial documentation 2025-06-29 12:26:57 +10:00