-
-
Notifications
You must be signed in to change notification settings - Fork 156
Comparing changes
Open a pull request
base repository: chhoumann/quickadd
base: 1.13.3
head repository: chhoumann/quickadd
compare: 1.14.0
- 14 commits
- 67 files changed
- 4 contributors
Commits on May 29, 2025
-
feat(docs): enhance documentation with improved content, modern desig…
…n, and framework upgrade Documentation framework upgrade: - Upgraded Docusaurus from v2.2.0 to v3.8.0 - Updated React from v17 to v19 - Updated TypeScript from v4.9.5 to v5.8.3 - Updated all dependencies to latest versions Documentation enhancements: - Enhanced Macro documentation with comprehensive examples and troubleshooting - Improved QuickAdd API documentation with complete reference and examples - Fixed broken links throughout documentation Design and UX improvements: - Created beautiful new homepage with features showcase - Added sophisticated blue-based color scheme for better readability - Implemented local search functionality - Reorganized sidebar with better grouping and emoji icons - Enhanced navbar with quick links to API and Examples - Fixed hero text contrast issues for both light/dark modes - Improved typography with system font stack The documentation now has a cohesive, modern design that better represents the quality of the QuickAdd plugin while maintaining excellent readability and user experience.
Configuration menu - View commit details
-
Copy full SHA for ae003f8 - Browse repository at this point
Copy the full SHA ae003f8View commit details
Commits on May 30, 2025
-
fix: prevent crash when typing comma in VDATE syntax
- Added validation to skip incomplete VDATE patterns - Check for empty variable name or date format after trimming - Added try-catch in FormatDisplayFormatter for extra protection - Prevents infinite loops when processing malformed input - Added comprehensive test coverage (12 test cases) This fixes the crash that occurred when users typed {{VDATE:, in the capture format field during live preview. Fixes #455 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 2e8939c - Browse repository at this point
Copy the full SHA 2e8939cView commit details
Commits on Jun 10, 2025
-
Fix VDATE infinite loop and add Natural Language Dates plugin warnings
- Fix infinite loop in formatter.ts by changing continue to break when processing incomplete VDATE patterns - Add warnings in Template and Capture Choice Builders when VDATE syntax is used without Natural Language Dates plugin installed/enabled - Warnings display in real-time as users type format strings
Configuration menu - View commit details
-
Copy full SHA for 126358c - Browse repository at this point
Copy the full SHA 126358cView commit details -
Add runtime error for VDATE usage without Natural Language Dates plugin
- Replace silent continue with clear error message during choice/template execution - Add test to verify runtime error behavior - Complete error handling now covers configuration, preview, and runtime scenarios
Configuration menu - View commit details
-
Copy full SHA for 5377545 - Browse repository at this point
Copy the full SHA 5377545View commit details -
feat: add comma support in VDATE date formats
- Update DATE_VARIABLE_REGEX to allow commas in date format patterns - Enable popular formats like 'MMM D, YYYY' and 'dddd, MMMM D, YYYY' - Enhance FormatDisplayFormatter with improved VDATE preview showing actual formatted dates - Add comprehensive test coverage for comma support and preview functionality - Maintain backward compatibility with existing VDATE patterns
Configuration menu - View commit details
-
Copy full SHA for 6c65266 - Browse repository at this point
Copy the full SHA 6c65266View commit details -
Merge pull request #823 from chhoumann/fix/issue-455-vdate-comma-crash
fix: prevent crash when typing comma in VDATE syntax
Configuration menu - View commit details
-
Copy full SHA for 0ae7fcb - Browse repository at this point
Copy the full SHA 0ae7fcbView commit details
Commits on Jun 11, 2025
-
feat: enhance field suggestions with advanced filtering and smart def…
…aults (#826) * feat: enhance field suggestions with advanced filtering and smart defaults This comprehensive enhancement addresses the most requested feature (#337) with: **New Syntax Features:** • Case-insensitive deduplication: {{FIELD:status|case-sensitive:false}} • Custom defaults: {{FIELD:status|default:To Do|default-empty:true}} • Exclusion filters: {{FIELD:status|exclude-folder:archive|exclude-tag:deprecated}} • Enhanced file filtering with inclusion/exclusion logic **Performance & UX:** • Progress feedback for large vault operations with time estimation • Smart caching system (5-minute TTL) for improved performance • Batch processing to prevent UI blocking during file scanning • Unicode-aware deduplication preserving original case **API Integration:** • New fieldSuggestions module in QuickAdd API • getFieldValues() method with filtering options • Cache management for performance optimization **Quality:** • 148 comprehensive tests across all components • 100% backward compatible with existing syntax • Modular architecture with 8 new utility classes • Handles edge cases and large vaults (10k+ files) Fixes #337 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com> * refactor: improve memory management and code quality - Fix regex pattern in FIELD_VAR_REGEX_WITH_FILTERS by removing incorrect pipe character - Add memory limits to FieldSuggestionCache (100 entries max, 1000 values per field) - Implement automatic cache cleanup with proper Obsidian interval registration - Add cache eviction for oldest entries when limit reached - Improve type safety in completeFormatter with proper array/unknown type handling - Add error handling for file read operations - Remove unused ProgressTracker class and tests - Remove formatDisplayFormatter test (depends on Obsidian, cannot be tested externally) - Fix import practices by moving FieldSuggestionCache import to top of main.ts - Add proper cleanup on plugin unload with destroy() method * test: add comprehensive tests for EnhancedFieldSuggestionFileFilter - Add 17 test cases covering all filtering scenarios - Test inclusion filters (folder, tags) - Test exclusion filters (folders, tags, files) - Test complex filter combinations - Test edge cases (missing metadata, empty filters) - Test normalization (# prefix, path slashes) - Achieve 100% code coverage for EnhancedFieldSuggestionFileFilter This addresses the critical testing gap identified in code review. * refactor: improve error messages in formatter for better debugging - Add context snippets to all parsing errors showing the problematic syntax - Improve variable parsing errors to show surrounding text - Enhance date/time parsing errors with specific format information - Update date variable errors to show expected format and actual value - Provide actionable guidance for current file path errors - Standardize error message format with consistent capitalization These changes make debugging template syntax errors much easier by showing users exactly what part of their template is causing issues. * feat: integrate Dataview API for improved field suggestions - Add obsidian-dataview as dev dependency - Create DataviewIntegration utility for querying field values - Use Dataview API when available for better performance and consistency - Support all filtering options (folder, tags, exclusions) in Dataview queries - Fall back to manual parsing when Dataview is unavailable or inline filter is used - Automatically handles both YAML frontmatter and inline dataview fields This integration provides users with the same field parsing behavior they expect from Dataview queries, while maintaining backward compatibility for users without the Dataview plugin installed. * fix: handle file objects from Dataview queries in field suggestions When Dataview returns file objects (with path/embed/type properties) instead of strings, extract the path property to use as the field value. This fixes the issue where Dataview would find many values but only show a few in the suggestions. --------- Co-authored-by: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 7b09254 - Browse repository at this point
Copy the full SHA 7b09254View commit details
Commits on Jun 18, 2025
-
Remove global app dependency and fix npm build issues (#830)
* Fix TypeScript build errors - Remove unused imports to resolve lint errors - Add global app declaration for backward compatibility - Fix incorrect app usage in engine and GUI files - Resolve inferrable types and prefer-const issues - Build now succeeds with npm run build * fix(build): remove global app dependency for npm compatibility Fixes #829 - Remove global app declaration from global.d.ts - Update all functions and constructors to accept app parameter explicitly - Fix modal constructors to take app parameter - Update AI assistant functions to accept app parameter - Fix utility functions to properly accept app parameter - Update all function calls to pass app through proper channels - Eliminate all global app usage in favor of explicit dependency injection This resolves TypeScript build errors when using npm instead of bun, and prepares the codebase for future Obsidian versions where global app will no longer be available.
Configuration menu - View commit details
-
Copy full SHA for 0034c05 - Browse repository at this point
Copy the full SHA 0034c05View commit details -
fix: handle undefined variables by returning empty string instead of …
…'undefined' (#820) - Modified getVariableValue() to use nullish coalescing operator - Fixes issue where {{VALUE}} outputs "undefined" when no input provided - Preserves legitimate values like empty strings, "0", and "false" - Added comprehensive tests to prevent regression Fixes #209 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 6048ef7 - Browse repository at this point
Copy the full SHA 6048ef7View commit details -
feat: add default values for {{VALUE:variable}} syntax (#821)
- Added support for default values using pipe syntax: {{VALUE:name|default}} - Default value is used when user provides empty input - Works seamlessly with suggesters and variable reuse - Backwards compatible - existing templates continue to work - Added comprehensive test coverage (16 test cases) - Updated documentation in FormatSyntax.md - Updated constants to include new syntax format This implementation follows the approach from PR #569 but with improved test coverage, documentation, and edge case handling. Fixes #264 Closes #569 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 382294e - Browse repository at this point
Copy the full SHA 382294eView commit details -
fix: replaceLinebreakInString bug with double newlines (#752)
* fix: replaceLinebreakInString bug with double newlines * test: add comprehensive tests for replaceLinebreakInString function - Add tests covering basic linebreak replacement (\n -> newline) - Add tests for escape sequence handling (\ -> \) - Add tests for complex escape sequences like \n and \\n - Add specific test cases from PR description to verify bug fix - All tests pass, confirming the state machine implementation works correctly --------- Co-authored-by: Christian Bager Bach Houmann <christian@bagerbach.com>
Configuration menu - View commit details
-
Copy full SHA for 1a02543 - Browse repository at this point
Copy the full SHA 1a02543View commit details -
feat: add canvas template support (#831)
- Add CANVAS_FILE_EXTENSION_REGEX constant for .canvas files - Modify TemplateEngine to preserve canvas extensions when reading templates - Update TemplateChoiceEngine to create files with correct extensions based on template type - Allow both .md and .canvas files in file validation - Add template extension detection and file path normalization methods - Update file incrementation to handle canvas extensions properly - Add comprehensive integration tests for canvas functionality - Document canvas template support in TemplateChoice documentation Fixes #663
Configuration menu - View commit details
-
Copy full SHA for ccfd936 - Browse repository at this point
Copy the full SHA ccfd936View commit details
Commits on Jun 19, 2025
-
feat: enable VDATE reuse with different formats (#822)
* feat: enable VDATE reuse with different formats - Store parsed date as ISO string with @Date: prefix instead of formatted value - Allow same date variable to be formatted differently on each use - Single prompt for date input, multiple format outputs - Backward compatible - existing templates continue to work - Updated documentation with example Example usage: {{VDATE:date,YYYY}}/{{VDATE:date,MM}}/{{VDATE:date,DD}}/note.md Enter date once, get: 2024/01/15/note.md This enables common use cases like hierarchical folder structures and consistent date formatting across templates. Note: Unit tests could not be added due to Obsidian plugin testing limitations. Manual testing is required to verify functionality. Fixes #69 * fix: handle multiple VDATE variables with same name but different formats - Replace specific match string instead of using regex replacement - Prevents infinite loop when same variable name is used multiple times - Fixes issue where only first occurrence was replaced in templates like: {{VDATE:date,YYYY}}/{{VDATE:date,MM}}/{{VDATE:date,DD}}
Configuration menu - View commit details
-
Copy full SHA for fe1dcac - Browse repository at this point
Copy the full SHA fe1dcacView commit details -
release(version): Release 1.14.0 [skip ci]
# [1.14.0](1.13.3...1.14.0) (2025-06-19) ### Bug Fixes * handle undefined variables by returning empty string instead of 'undefined' ([#820](#820)) ([6048ef7](6048ef7)), closes [#209](#209) * prevent crash when typing comma in VDATE syntax ([2e8939c](2e8939c)), closes [#455](#455) * replaceLinebreakInString bug with double newlines ([#752](#752)) ([1a02543](1a02543)) ### Features * add canvas template support ([#831](#831)) ([ccfd936](ccfd936)), closes [#663](#663) * add comma support in VDATE date formats ([6c65266](6c65266)) * add default values for {{VALUE:variable}} syntax ([#821](#821)) ([382294e](382294e)), closes [#569](#569) [#264](#264) [#569](#569) * **docs:** enhance documentation with improved content, modern design, and framework upgrade ([ae003f8](ae003f8)) * enable VDATE reuse with different formats ([#822](#822)) ([fe1dcac](fe1dcac)), closes [#69](#69) * enhance field suggestions with advanced filtering and smart defaults ([#826](#826)) ([7b09254](7b09254)), closes [#337](#337) [#337](#337)
Configuration menu - View commit details
-
Copy full SHA for 024da38 - Browse repository at this point
Copy the full SHA 024da38View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 1.13.3...1.14.0