Dual-view of blocks in whiteboard: Structured / Tree / Framed

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.