Multiple notebooks

We want to be able to merge two distinct notebooks whilst also allowing cross linking between them using predictable linking strategy. This is a feature in roadmap.

Personal need for this feature: to be able to use this notebook in my private Zettelkasten, and be able to link to it in everyday contexts. As a meta observation, this feature is necessary to connect tasks on this project to Personal needs specified only in my private Zettelkasten.

Implementation whiteboard

  • Piggy back on the “scope” work done in Browse filesystem hierarchy, and extend the Thing type to contain a namespace attribute, such that full path is a function of scope and namespace.
  • Use the distinction between scope and namespace to derive the default linking strategy; specifically, if two notebooks have same note file, then to disambituate [[Foo]], use the note from the same namespace as that note containing this link (if the same notebook has ambiguously named files that’s still an error)
  • In the UI, report these otherwise conflicting note files anyway, in case they were created by accident using the VSCode memo extension (its Ctrl+Click)

Dev tasks to implement the above:

  • Refactor _app_things’s Map value type to be an ADT.