To avoid confusion, it is worth mentioning here that the plugin system is not meant to support and make available any arbitrary plugin out of the box. Rather, it is a curated list of optional core functionalities, following a common pattern. Development of new plugins should be coordinated with the snapshot team.
plugin.json
inside of a new (camelCased) directory in src/plugins
.Proposal.vue
and start with a basic single file component.myPlugin/Proposal.vue
myPlugin/ProposalSidebar.vue
myPlugin/Create.vue
<script setup>
syntax.src/components
, composables in src/composables
or installed packages (like snapshot.js) can be used normally.plugin.json
as follows:"space"
key you can define global config options. They can then be set in the plugin section on a space's settings page."proposal"
key let's you define options specific to a single proposal. This key must be set in order for the Create.vue
component to be shown in the proposal creation process.t
function instead:src/locales/default.json
to be available for translators, in order to update the language specific files, like de-DE.json
. You can add your strings on the highest level in default.json
, under a unique key, e.g. your plugin's directory name.vue-i18n
, there are custom number and time formatters available in the useIntl
composable.