updated description and removed view reference

This commit is contained in:
poanse 2026-03-04 02:03:53 +03:00
parent b79a0c16dd
commit 7af472312e
4 changed files with 25 additions and 22 deletions

View file

@ -1,10 +1,10 @@
# Obsidian Taskmap Plugin
Visualize your project as a tree of automatically positioned tasks.
Plan projects via interactive GUI task trees.
No need to move tasks around manually — the automatic layout keeps your structure visually clear and easy to edit.
## How to install
*Installation from obsidian is unavailable while Taskmap is in beta.*
*Taskmap is in beta. Installation from Obsidian community plugins is currently unavailable.*
Install [BRAT](https://github.com/TfTHacker/obsidian42-brat) community plugin from obsidian app.
Go to settings, press `Add beta plugin` and paste link to this repo https://github.com/poanse/obsidian-taskmap
@ -22,11 +22,11 @@ Canvas-style visualization, zero manual positioning.
## Key Features
- Automatic parent status from children
- Color-coded status visualization
- Tree restructuring via reparenting
- Blockers/dependencies
- Hide irrelevant branches
- Automatic layout
- Tree navigation via temporarily hiding irrelevant branches
- Link tasks to obsidian notes for rich description
- Color-coded status visualization
- Automatic parent status from children
- Link tasks outside of tree structure using blocker system
![screenshot.png](screenshot.png)

View file

@ -1 +1,10 @@
{"id":"obsidian-taskmap","name":"Obsidian Taskmap Plugin","version":"0.0.4","minAppVersion":"0.15.0","description":"tbd","author":"poanse","authorUrl":"tbd","fundingUrl":"tbd","isDesktopOnly":false}
{
"id": "obsidian-taskmap",
"name": "Obsidian Taskmap Plugin",
"version": "0.0.4",
"minAppVersion": "1.12.4",
"description": "Plan projects via interactive GUI task trees. No need to move tasks around manually — the automatic layout keeps your structure visually clear and easy to edit.",
"author": "poanse",
"authorUrl": "https://github.com/poanse",
"isDesktopOnly": false
}

View file

@ -14,7 +14,7 @@ import {
TFile,
type WorkspaceLeaf,
} from "obsidian";
import type { TaskmapView } from "./TaskmapView";
import { TaskmapView } from "./TaskmapView";
import {
type NodePositionsCalculator,
NoTaskId,
@ -28,7 +28,6 @@ import { VersionedData } from "./data/VersionedData";
export class Context {
app: App;
plugin: TaskmapPlugin;
view: TaskmapView;
nodePositionsCalculator: NodePositionsCalculator;
linkManager: LinkManager;
pressedButtonCode = $state(-1);
@ -56,14 +55,12 @@ export class Context {
private springOptions = { stiffness: 0.07, damping: 0.7 };
constructor(
plugin: TaskmapPlugin,
view: TaskmapView,
projectData: VersionedData,
app: App,
plugin: TaskmapPlugin,
projectData: VersionedData,
nodePositionsCalculator: NodePositionsCalculator,
) {
this.plugin = plugin;
this.view = view;
this.nodePositionsCalculator = nodePositionsCalculator;
this.app = app;
this.versionedData = projectData;
@ -341,9 +338,7 @@ export class Context {
}
public save() {
const x = this.view;
x.debouncedSave();
console.debug("saved");
this.app.workspace.getActiveViewOfType(TaskmapView)?.debouncedSave();
}
public addTask(parentId: TaskId): void {
@ -373,7 +368,7 @@ export class Context {
);
this.versionedData.setStatus(this.selectedTaskId, status);
this.toolbarStatus = status;
this.view.debouncedSave();
this.save();
}
public hideTaskBranch(id: number) {

View file

@ -41,10 +41,9 @@ export class TaskmapView extends TextFileView {
this.setViewData(data);
this.projectData = deserializeProjectData(this.app, this.data);
this.context = new Context(
this.plugin,
this,
new VersionedData(this.projectData, new HistoryManager()),
this.app,
this.plugin,
new VersionedData(this.projectData, new HistoryManager()),
new NodePositionsCalculator(),
);
this.contentEl.addClass("taskmap-view-container");