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 display-style
(called 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.