Btheado/tw-browser-storage site updated to tiddlywiki 5.3.0

The plugin itself is unchanged, however the edition at https://btheado.github.io/tw-browser-storage/ is upgraded to the newly released TW 5.3.0

This plugin contains opinionated configuration settings for the browser-storage plugin :

  • Configures the browser storage plugin to save more tiddlers than the default
  • Since the tiddlers are automatically saved to local storage, the SaverFilter is configured to leave the save icon inert
  • Automatically save list of open tiddlers between sessions (see $:/DefaultTiddlers)
  • Instructions on using the save button as a way to backup the wiki
  • Browseable list of tiddlers which were loaded from storage and those which were saved to storage after load
  • Displays a notification message at startup telling how many tiddlers were loaded from browser storage

The initial release (see this earlier thread: Tw browser storage) used a forked version of the tiddlywiki/browser-storage plugin to take advantage of some unreleased improvements. It did not contain any of the new 5.3.0 features.

You can add the plugins (btheado/tw-browser-storage and tiddlywiki/browser-storage) to your own wiki or you can use the demo site directly: https://btheado.github.io/tw-browser-storage/ (backups are easy…just click the save button).

If you already use the demo site directly, be aware you will get TW 5.3.0 next time you load the page.

2 Likes

@btheado thanks for sharing, and updating. This may be opinionated, but I share it. I have done something similar for myself, before 5.3.0 and was looking at publishing my own at a tiddlyhost address;

  • something which people can use as a tiddlyhost template and have a simpler url.
  • Or simply use online to “spin up a wiki” in any browser that will retain your changes.

I do have additional ideas, but rather than create an overlapping solution perhaps we could collaborate to mature this approach a little more?

  • It could perhaps be broken into more than one project.

For example;

  • A way to “save changes only” from the published copy (much smaller)
    • Local storage items + haschanged + underlying wiki version indicator.
    • For limited edits these changes could also be saved in a
      • bookmarklet
      • Or data url
    • This may facilitate a visitor to make edits and additions they can export and send to the owner (or directly as an email attachment) who then uses a special import mechanism to import, which helps the owner manage or avoid conflicts thus updating the underlying wiki.
    • In addition to the existing full save, which has its advantages.
  • An indicator that is set for any “important change” (like dirty indicator), reset on backup (assumes saved)
  • A Page control button/indicator that indicates Local storage is in use.
  • Provide support to capture the backup location used, in a bookmarklet, and a mechanism, if loading a fresh wiki, to prompt the user to use it (the bookmarklet) if available, to recover from the latest backup file.
    • One may even be able to manage multiple instances of the wiki with different packages of changes.

I have other ideas up my sleeves but will mention if and when appropriate. But can I engage you @btheado or anyone else in a collaboration?

Notes: TW 5.3.0 introduced;

  • fixed problem with BrowserStorage Plugin unnecessarily saving shadow tiddlers
  • improved BrowserStorage Plugin to request that browser storage be persisted without eviction
  • I also suspect if we saved the “backup location” in local storage, IndexDB or cookie it may survive lost tiddlers and allow someone to restore from backups.
  • What if this delta could be saved to a known internet location or a minimal local HTTP server.?
    • Perhaps facilitated by the new “HTTP Requests in WikiText” PUT & GET
    • I am confident we can, but I don’t know how to.

The export icon in this tiddler does this:
$:/plugins/btheado/BrowserStorage/backup

image

That page can be reached by clicking on the cylinder icon of any tiddler which is stored in local storage:

Github works well for collaboration. You could open issues in the github repository. I prefer specific and concrete. A working implementation is very concrete :slight_smile:. A pull request would be best of all.