mirror of
https://github.com/selectstarfromusers/obsidian-task-manager.git
synced 2026-07-22 06:05:56 +00:00
65 lines
3.1 KiB
Markdown
65 lines
3.1 KiB
Markdown
|
|
# Contributing to Minimal Task Board
|
||
|
|
|
||
|
|
Thanks for taking a look! This plugin is small and focused. Contributions, bug reports, and feature ideas are all welcome.
|
||
|
|
|
||
|
|
## Reporting bugs
|
||
|
|
|
||
|
|
Open an issue at https://github.com/selectstarfromusers/obsidian-task-manager/issues with:
|
||
|
|
|
||
|
|
- Obsidian version (`Settings → About`)
|
||
|
|
- Plugin version (in `Settings → Community plugins → Minimal Task Board`)
|
||
|
|
- A short description of what you saw vs what you expected
|
||
|
|
- A minimal repro: a few example task files (or screenshots) and the bucket/secondary-grouping settings you had configured
|
||
|
|
- The full text of any error from `View → Toggle developer tools → Console`
|
||
|
|
|
||
|
|
## Requesting features
|
||
|
|
|
||
|
|
Open an issue with the `enhancement` label and describe the workflow you're trying to support. Concrete examples beat abstract requests — "I want to triage 50+ tasks per day across 4 customer accounts" gives much better context than "make filtering better".
|
||
|
|
|
||
|
|
## Local development
|
||
|
|
|
||
|
|
```bash
|
||
|
|
git clone https://github.com/selectstarfromusers/obsidian-task-manager
|
||
|
|
cd obsidian-task-manager
|
||
|
|
npm install
|
||
|
|
npm run dev # watches src/ and rebuilds on change
|
||
|
|
```
|
||
|
|
|
||
|
|
Then symlink the plugin folder into a test vault's `.obsidian/plugins/minimal-task-board/`:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
mkdir -p /path/to/test-vault/.obsidian/plugins
|
||
|
|
ln -s "$(pwd)" /path/to/test-vault/.obsidian/plugins/minimal-task-board
|
||
|
|
```
|
||
|
|
|
||
|
|
Enable the plugin under `Settings → Community plugins`, then `Ctrl/Cmd+P` → `Reload app without saving` after rebuilds.
|
||
|
|
|
||
|
|
### Project layout
|
||
|
|
|
||
|
|
- `src/main.ts` — plugin entry, view registration, settings load/save
|
||
|
|
- `src/types.ts` — shared type definitions (`TaskItem`, `BucketGroup`, `TasksPluginSettings`, `TaskFrontmatter`)
|
||
|
|
- `src/data/` — task store, inline-task watcher, frontmatter writer
|
||
|
|
- `src/views/` — board / focus renderers, bucket component, task row
|
||
|
|
- `src/interactions/` — drag/drop, checkbox toggle, inline-task creation
|
||
|
|
- `src/settings.ts` — settings tab UI
|
||
|
|
- `styles.css` — all styles (CSS variables and specificity, no `!important`)
|
||
|
|
|
||
|
|
### Style and review notes
|
||
|
|
|
||
|
|
- Use Obsidian's DOM helpers (`createDiv`, `createSpan`, `createEl`, `createSvg`, `activeDocument`, `activeWindow.setTimeout`, `this.registerDomEvent`) rather than raw DOM globals — the Obsidian community automated review enforces this.
|
||
|
|
- Frontmatter reads should narrow `frontmatter` to the `TaskFrontmatter` interface in `src/types.ts` rather than using `any`.
|
||
|
|
- Keep styles in `styles.css`, not inline `el.style.X` assignments.
|
||
|
|
- Don't introduce new third-party runtime dependencies without discussing first — the plugin is intentionally lightweight.
|
||
|
|
|
||
|
|
## Pull requests
|
||
|
|
|
||
|
|
1. Fork, branch off `main`, keep the change focused
|
||
|
|
2. `npm run build` must succeed and produce a clean `main.js`
|
||
|
|
3. Bump the version in `manifest.json` and add a matching entry in `versions.json` (use semver — patch bumps for fixes, minor for new features)
|
||
|
|
4. Open the PR with a brief summary of the change, screenshots if UI, and any new settings explained
|
||
|
|
5. Be patient — this is a hobby project, I'll get to it
|
||
|
|
|
||
|
|
## License
|
||
|
|
|
||
|
|
By contributing you agree your changes are released under the MIT License (see `LICENSE`).
|