giuspen / cherrytree

cherrytree
https://www.giuspen.net/cherrytree/
Other
3.36k stars 458 forks source link

Concept for tags usage #1487

Open userfav opened 3 years ago

userfav commented 3 years ago

This is not a "feature request" per se. It is just an idea that I was chewing on from the time that I read on an issue (I couldn't find it now) where another user ask about the possibility to give to the node tags more relevance in the program.

So I made a mock-up of some ideas that in principle will not require to add nothing extra to the database (but a lot in the program I guess).

First, for this example, lets say that we have this nine nodes with this tags assigned:

imagen

This is just a list of "characters" that are composed from some popular cartoons and some animals. The tags here just define what predominant colors have the character or the animal or what type they are. Some nodes doesn't have tags because is not relevant.

In the tree we will see the nodes organized with this structure:

1

I think that the first step it's to give more exposure to the node tags. A possibility can be to add another bar to show what tags have a node assigned:

2-a

I put an icon to the tags buttons to differentiate them from the normal "last visited" nodes bar. Another possibility can be to move the bar to another place, to the bottom, for example:

2-b

Now, let's say that I want to see a general view of what tags are used and on what nodes. I think that one possibility is to have a "tag side panel", in the same way that actually we have the "tree panel". Maybe could be something that one switch, that is, between the regular tree and the tag view.

The tag view can be something like this:

3

Differences between the tree panel and the tag panel:

That is. Is just an (quite improvable!) idea and I understand that this is not priority now and of course could be a big change, but I guess I was on the mood to write something today about "Cherrytag", ha.

Cheers

datavectors commented 3 years ago

Interesting idea. Basically offering different views from different perspectives. I first thought through how this might be approached by external python script - avoiding need for additional development of Cherrytree. But then I had the idea to just parse the existing CherryTree document (XML format) using python to extract node names and tags (XML elements) - then create a visualisation script using D3.js / Chord diagram.. Node names can be connected (through D3.js edge connectors) to tags. I have not done this yet but it might be an interesting approach - i.e. a CherryTree dashboard created dynamically.