uwe-app / app

Universal web editor
https://uwe.app
0 stars 0 forks source link

Plugin system #199

Open tmpfs opened 4 years ago

tmpfs commented 4 years ago

The plugin design should allow for:


Later we can look at a component system built on top of the plugin system.

tmpfs commented 4 years ago

Initial simple implementations could be:

tmpfs commented 4 years ago

The short code functionality should be migrated to partial plugins.

tmpfs commented 4 years ago

The search runtime and book assets could be migrated to plugins.

tmpfs commented 4 years ago

As of 62f2fc4a68211c3e2f82b9464796003b189392ff the search runtime files are now a plugin and short codes have been migrated to simple partial plugins, see the plugins repo.

tmpfs commented 4 years ago

As of bb90119f66cb1e1eaadd16831476cfe58672e265 the builtin templates have been migrated to the std::core plugin and the feed templates to std::feed.

tmpfs commented 4 years ago

Optional features support integrated in 1898fa3448a7e250271d654a2e83b45e91c28e9e.

tmpfs commented 4 years ago

Consider using non-namespaced dependencies as private modules. So, for example in the case of a font pack we might want a variant but in order to mesh with the feature flags it needs to be a plugin. However publishing another plugin for a private module would be too much maintenance.

If we have the plugin font::inter then it could declare a private local dependency without the namespace of perhaps with a trailing delimiter or keyword either self::regular or just ::regular could resolve to a relative folder regular containing the plugin.

tmpfs commented 4 years ago

Draft scoped plugin support was completed in 1db1caa0c90f2b0cd3894d0eb695c3307c151f4a which allows us to use feature flags to embed specific scoped plugins, used the font::inter package intergrated with the main project website.