Development
Contributing
- Fork the repo and submit pull requests.
- Follow the code style and add tests for new features.
- Document all public methods and keep methods small and testable.
Code Structure
src/— Main plugin codemain.ts— Plugin entry pointpluginMeta.ts— Centralized plugin metadatasettings.ts— Plugin settings interface and defaultssettingsTab.ts— Settings UIproviders/— Database provider (e.g.,sqliteProvider.ts)services/— Import, cache, note writing, and Things3 query logiccacheService.ts— Persistent cache for imported tasksdbPathService.ts— Database path resolution and validationimporterService.ts— Import orchestration and cache rebuildnoteWriterService.ts— Note creation and file handlingthings3Service.ts— Query/filter Things3 tasks and checklist items
docs-site/— Documentation site (Docusaurus)
Building & Testing
make build— Build the plugin and copy files to your test vaultmake lint— Check code stylemake lint-fix— Auto-fix lint errorsmake test— Run tests (Jest)make docs— Build and view documentation for deployment
Version Management
- The plugin version is managed in
manifest.json(authoritative for Obsidian) andpackage.json(for npm/dev tooling). versions.jsonmaps plugin versions to minimum supported Obsidian app versions.- The documentation version in
docs-site/docs/_index.mdis updated automatically. - Use
make bump-versionornpm version <newversion>to update all version references. This will prompt for a new version, update all relevant files, and keep your documentation in sync.
License
MIT License. See LICENSE.
Note: Development and testing was performed using Node.js version 20.19.6. For best results, use this version or later (unless otherwise specified).