The new leo_cloud plugin allows subtrees within a .leo file to be
stored in the cloud.  It should be possible to support various cloud
platforms, currently git is supported (i.e. you can use GitLab or
GitHub or your own remote git server).

A leo_cloud subtree has a top node with a headline that starts with 
'@leo_cloud'.  The rest of the headline is ignored.  The body of this
top node is used to describe the cloud service, e.g.:

type: Git
remote: g...@gitlab.com:tnbrown/leo_cloud_storage.git
local: ~/.leo/leo_cloud/gitlab_leo_cloud_storage
ID: shortcuts
read_on_load: ask
write_on_save: ask

The first three lines can be repeated with different IDs to store
different subtrees at the same remote cloud location.

read_on_load: / write_on_save: can be yes, no, or ask.  If it's not one
of those three, there's a warning dialog.

There's also a file system backend, which would look like this:

type: FileSystem
root: ~/DropBox/leo_cloud
ID: my_notes
read_on_load: ask
write_on_save: ask

The FileSystem backend was meant to be for development, but of course
if you map it into a folder that is sync'ed externally, as shown above,
it can serve as a cloud adapter too.

In addition to the Git and FileSystem cloud types it should be possible
to add many others - Google Drive, OneDrive, DropBox, AWS, WebDAV,
sFTP, whatever.

Note: https://gitlab.com/ gives you free private repos., in case you
didn't know.

The data stored is basically headline, body, and uA (unknown
attributes).  The caveat is that it must be JSON serializable, this is
to avoid pickle flavor issues.  I don't think this will cause problems
except for legacy datetime objects from the todo.py plugin and set()s
in the tags plugin.  I think both can be fixed easily - a custom JSON
writer can write datetime as iso string time and sets as lists, and the
tags plugin can coerce lists to sets.  I think the todo.py plugin
already reads iso string time values.

My intended use was a common synchronized todo list across machines,
which this achieves.  (note to self, make sure todo icons are refreshed
properly).

An unintended bonus is that you can use it to sync. your settings
across machines easily too.  Because Leo is brilliant ;-), this:

@settings
  @keys
    @leo_cloud
      @shortcuts

"just works", so now your shortcuts etc. can be stored on a central
server.

Lightly tested, but seems to work - testing and other feedback
appreciated.

Cheers -Terry

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to