-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
In light of the pending changes in #9183 to allow for server only plugins that are not served to the client, it becomes ever more important to facilitate the installation of plugins on node.js as opposed to via drag and drop in the client.
There are several barriers to this:
- If there is a github repository, the process is clunky and involves downloading the code, placing it in the correct repo and editing
tiddlywiki.info
- Often there is no repository and the plugin is only available via a TiddlyWiki avaiable at a URI.
- A plugin might be available via a plugin library and need to be installed from there.
It is proposed to add a new node.js TiddlyWiki command, called for the time being install-plugin
. This plugin would fetch the plugin from the provided resource, unpack it if needed and place it in the correct directory and update tiddlywiki.info
.
!!Proposed syntax:
node tiddlywiki.js ./my-edition --install-plugin URI
Where URI could be any of:
- a link to a specific path in a git repository in the form
git://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path-to-plugin.info> [#<commit-ish> | #semver:<semver>]
- examples:
git://github.com/saqimtiaz/streams/tree/main/plugins/streams
- or
git://github.com/saqimtiaz/streams/tree/main/plugins/streams#v1.2.23
- examples:
- a permalink to a tiddler in a publicly hosted TiddlyWiki
- a permalink identifying a plugin in a plugin repository (not yet implemented in plugin libraries), it could take the form of
plugin-title@plugin-library-URI
- also worth considering here are core plugins and facilitating their installation. They need not be fetched over HTTP since they are a part of the TiddlyWiki installation.
$:/plugins/tiddlywiki/dynannotate@core
?
- also worth considering here are core plugins and facilitating their installation. They need not be fetched over HTTP since they are a part of the TiddlyWiki installation.
We could also offer an affordance to trigger the command from the client for logged-in users for those so inclined. After all the same plugins could still be installed by dragging and dropping them on the client. However, this would also require the ability to restart the server from the client.