In short, I am intended to use Dynalist as the life-long solution for task management, notes, projects, diary, etc. But I want to be sure that even if something happens to Dynalist I will be able to recover my data.
As now we have OPML and TXT backups. Great, but OPML does not contain enough data to recover internal links if site is down. My Dynalist routine heavily relies on internal links (thanks to Zettelkasten method), so it is crucial to restore them if need. Gavin raised the same problem here - OPML export/import does not preserve intra-document links . But seems there are no solution.
So my proposals are:
-
Short term. Add your internal UID to OPML backup. Like ā<outline text=ābla bla blaā, uid="F7z-7eUJCxn5OsHTmZ_y-21J#z=GVRlF0hwejGpgtZyen_n_qlw>ā. I believe this is MUST, before any bells and whistles. Of course it will makes backup larger, but it will be really helpful to restore data.
-
Long Term. Tune up OPML backup structure to make it easier to import to other outliners. I really like Dynalist (and i switched to it after a couple of years with Workflowy and Checkvist) but want to be ready to any apocaliptyc scenario. There are a couple of tools listed at official OPML site : http://opml.org/compatibleApps.opml . Iāve tried Bike and LogSeq last time. Bike were able to parse data from Dynalist OPML, LogSeq - no.
And thanks for great tool. This is a game changer for me.
Youāre right, but I donāt think the developers plan to add any new features any time soon.
But, I want to call attention to the desktop app in āoffline modeā. It stores your documents locally in a JSON format. In theory, this can be parsed into OPML with uid. In practice, it would be really difficult to do the conversion, and nobody has tried.
Thanks for an idea. I suppose the workaround is to make a portable version of Dynalist (Windows portable program) and update it once a month.
Finally, Iāve implemented JSON backup using https://github.com/Ektimo/dynaflowy library
Steps to do the same:
-
Obtain Secret API token at https://dynalist.io/developer
-
Download https://github.com/Ektimo/dynaflowy/blob/master/wrappers/dynalist.py
-
Make ābackupā folder in folder where you downloaded dynalist.py
-
Create ābackup.pyā file and put this code in (donāt forget to change secret token):
from dynalist import DynalistWrapper
d = DynalistWrapper("<PUT SECRET TOKEN HERE>")
for dynafile in d.listFiles():
dynafile_escaped = dynafile
dynafile_escaped = dynafile_escaped.replace("\\","_")
dynafile_escaped = dynafile_escaped.replace("/","_")
dynafile_escaped = dynafile_escaped.replace(":","_")
print("Backuping: " + dynafile)
d.backupJson(dynafile, "./backup/" + dynafile_escaped+".json")
-
Run backup.py by python backup.py
-
If need install additional libraries if needed like pip install
-
Run again.
-
All backups will be in ābackupā directory.
No the best way, as:
- It is impossible to recover anyway
- JSON is flat, not hierarchical as OPML
But at least I have all my data including internal IDs.
1 Like