Roadmap#

The major features remaining to be implemented in this project are captured below. They are specified in terms of days to indicate the general level of effort, but this is not to be taken as a predictor of the date they will be completed.

@startgantt

hide footbox

[Filesystem note spec] as [fs_spec] lasts 10 days

[Low-level filesystem API] as [fs_api] lasts 10 days
note bottom
    Note.to_folder(), Note.from_folder(), Note.to_file(), Note.from_file()
end note

[Filesystem session] as [fs_session] lasts 20 days

[Virtual session] as [virt_session] lasts 10 days

[Session sync capability] as [sync] lasts 30 days

[Sync CLI] as [sync_cli] lasts 10 days

[fs_spec] -> [fs_api]
[fs_api] -> [fs_session]
[fs_session] -> [sync]
[virt_session] -> [sync]
[sync] -> [sync_cli]

@endgantt

Todo list#

The following is a generated list of implementation todos aggregated from the code.

Todo

Configuration of Session to ignore changes to Branch.expanded as this is mostly a UI concept. It can be clobbered as children of Note subclasses force setting Branch.expanded.

original entry

Todo

Add auto_mime=True to also set mime using magic package (or do so automatically if Mixin.content_file set, but Mixin.mime not set)

original entry

Todo

Add Attributes.labels, Attributes.relations with same interface as Attributes, filtered by attribute type

original entry

Todo

Helper Note.file to set content from file, automatically setting mime and #originalFilename.

Example:

note.file = "assets/my_content.html"

original entry

Todo

Allow Trilium to generate noteId? Would require extra handling to update filesystem noteId, and ensuring Trilium subtree is flushed first.

original entry

Todo

Generate filesystem path as slug of title? (could also enable duplicate titles)

  • But it could be unusual behavior for paths to change when titles change

original entry

Todo

Add a flag to set Mixin.note_id_seed from class name (user guarantees uniqueness of class names)

original entry