Is it possible to automate plugin installs from plugin libraries?

I have a single HTML file template empty TiddlyWiki edition with a couple of plugin libraries installed (additionally to the official plugin library). It contains a README tiddler which gets displayed at startup and contains a list of plugins that need to be installed. A list not as in “TiddlyWiki list field”, just a plain text reference for me the human, something like

$:/plugins/foo
$:/plugins/bar
...

in its text field.

I use it to install those plugins manually. This does not scale very well for many plugins (for example think CodeMirror with its whole kindergarten of subplugins) - it’s a lot of manual work.

Is there a way to fully automate this process? Something like:

  1. A single file wiki is opened
  2. At startup, it checks for a tiddler (the README tiddler in the example above, but can be any predefined special name), splits its text field into lines, which are plugin names, then finds the plugins in the available plugin libraries of the wiki and installs them.
  3. If there are updates for installed plugins, install the updates as well.
  4. After that I would only need to manually save the wiki with all the plugins installed and reopen it.

Of course I can do the above workflow once manually, then save the wiki with the plugins already installed, and use it as template. There’s at least one obvious problem with this approach - it won’t track plugin updates in plugin libraries, so whenever any needed plugin would get a new release in the library, I would have to manually upgrade it anyway.

This may be not the answer to your question, but may be useful.
If all plugins are in the same library, you can utilize dependencies. A plugin that has several other plugins listed its dependents field, when installed from the plugin library, automatically enforce the installation of all those dependent plugins.


Side note
In my workflow, I created wikifolders for create different editions and included all the plugins I prefer to use. I then utilize Node.js to build the index.html file. Additionally, I have a shell script set up to rebuild the project whenever I update TiddlyWiki or acquire plugins update from third-party sources.

The easiest way is to create a library-wiki, that contains all the plugins and configuration tiddlers needed for the plugins to work.

Then import this wiki into your empty.html wiki with drag and drop. So all tiddlers from the library-wiki will be imported at once.

The advantage of such a library-wiki is that an admin can globally update, test and configure the plugins once. So if there are several users that need to use it, they do not have to do the compatibility testing again.


Also most library authors include a configuration tiddler, which allows you to open the library from your $:/ControlPanel → Plugins → Get more plugins button

If this tiddler is imported to your wiki, it can be used like this.

My https://wikilabs.github.io/ page also contains a link to a video, which explains all that stuff.

Show the Video


Hope that helps