dendronhq / dendron

The personal knowledge management (PKM) tool that grows as you do!
https://wiki.dendron.so
Apache License 2.0
6.52k stars 247 forks source link

Allow nodes to have more than one parent #3950

Open dysbulic opened 9 months ago

dysbulic commented 9 months ago

Please select if your request is either something new or an enhancement

Please select the area your request applies to. (Multiple selections are Possible. You can leave blank if you're not sure.)

Is your feature request related to a problem? Please describe

The current Dendron structure is a tree. There are concept structures, however, in which an idea might fit within multiple categories, i.e. a node can have more than one appropriate parent.

Describe the solution you'd like

In the frontmatter, I'd like to be able to specify alt_name properties. I would like the alternate name to cause the node to appear in that point in the hierarchy in the various views of the system, particularly in the sidebar when rendered.

Ideally, I would be allowed to specify multiple alt_names by repeating the keyword multiple times and that would generate an array of values. More than likely though there aren't multiple instances of a keyword allowed, so it would need to be comma separated values.

Describe alternatives you've considered

I've not come up with another concise way to describe that a node should appear multiple places in the hierarchy.

My particular use case is I'm describing a game with thirteen teams where each team picks of item from an axis with thirteen options. Each team exists on 13 lists with a different "identity" on each. I'd like to be able to represent that in Dendron.

Additional context

This would introduce the possibility of cycles where someone traversing the tree could end up going in a circle forever if they're blindly descending through the tree.

This just requires programs to expand a level or two at a time and not assume it can walk the entire tree.

Alternatively, you could do cycle detection and have it be an error.