Skip to content

[Feature]: Use JSON Canvas as the persistent storage format instead of one-time conversion #433

@slimhk45

Description

@slimhk45

Is your feature request related to a problem?

Currently there is no open implementation of a JSON Canvas editor. Applications like Lokus often rely on mature canvas engines such as:

Lokus performs a permanent batch conversion of all .canvas files into its own internal format the first time the vault is loaded.

However, the use of such engines should not require abandoning JSON Canvas as storage format as there is an ongoing effort by the Open Canvas Working Group (OCWG) to create conversion tools.

Describe the solution you'd like

Instead of performing a permanent conversion when a vault is opened, LokusMD could decouple its storage format from its editing format:

JSON Canvas file
       ↓
Convert to internal canvas format (in memory)
       ↓
User edits canvas
       ↓
Continuously serialize to JSON Canvas on-disk (with OCWG's tools)

This leverages future OCWG's conversion tools to have flexibility in choosing any mature canvas editor frontend while preserving JSON Canvas as the canonical on-disk representation.

The main benefit is saving interoperability with Obsidian.

Priority

Critical - Blocking my usage (no interoperability with Obsidian)

Implementation Complexity (your estimate)

Complex - Major feature or architectural change

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions