I want to suggest a feature that would make the whiteboard much more versatile. This is to allow each block to be displayed in one of three ways:
- Structured (current visualization, just an embed page)
- Tree, which is like a mind-map, with each block connected to its parent by a link.
- Frame, with the parent block rendered like a box that surrounds all children.
This is inspired by Marginote, an app that allows very versatile displays of mind maps. Here is a screenshot of my note in Marginote. Everything is essentially a tree structure, but the ability to switch between framed and tree display becomes a very compelling way to structure hierarchies of ideas.
The implementation in logseq is possible since the data structure logseq uses is also a tree structure. We can give each block an optional property
branch style in Marginote), and determine the display of blocks using that property.
An option should also be provided to apply the same
display-style recursively to all children of a particular block.
Another important aspect is to do an appropriate amount of auto-layout for those tree structures. While the user should be able to freely drag things around, some auto-layout can make life easier in adjusting the layouts. In Marginote, positions of the notes are quite rigid (almost determined by their relative structures in the tree), while a more flexible layout scheme would be better for logseq whiteboard.
The value of this feature is enormous: It can be a step in making whiteboards and pages inter-operable. It allows editing a page in a mind-map format which is more comfortable in specific use cases. It also allows one to layout a page’s data on a whiteboard, which can communicate its information much more effectively if given the appropriate layout decisions.