2024-03-12 01:48:02 -05:00
# Penpot Plugins
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
## What can you find here?
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
We've been working in an MVP to allow users to develop their own plugins and use the existing ones.
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
There are 2 important folders to keep an eye on: `apps` and `libs` .
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
In the `libs` folder you'll find:
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
- plugins-runtime: here you'll find the code that initializes the plugin and sets a few listeners to know when the penpot page/file/selection changes.
It has its own [README ](libs/plugins-runtime/README.md ).
- plugins-styles: basic css library with penpot styles in case you need help for styling your plugins.
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
In the `apps` folder you'll find some examples that use the libraries mentioned above.
2024-01-29 06:39:21 -05:00
2024-05-07 03:28:40 -05:00
- contrast-plugin: to run this example check < a href = "#create-a-plugin-from-scratch-or-run-the-examples-from-the-apps-folder" > Create a plugin from scratch</ a >
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
- example-styles: to run this example you should run
2024-01-29 06:39:21 -05:00
```
2024-03-12 01:48:02 -05:00
npm run start:styles-example
2024-01-29 06:39:21 -05:00
```
2024-03-12 01:48:02 -05:00
Open in your browser: `http://localhost:4202/`
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
## Create a plugin from scratch or run the examples from the apps folder
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
First of all it's necessary to have penpot running locally, you can check the steps [here ](https://help.penpot.app/technical-guide/developer/devenv/ )
Once you've done the previous step, you'll need to move to the following [branch ](https://github.com/penpot/penpot/tree/niwinz-poc-plugins ) as we still have the penpot part WIP
Remember to run penpot:
2024-01-29 06:39:21 -05:00
```
2024-03-12 01:48:02 -05:00
./manage.sh pull-devenv
./manage.sh run-devenv
2024-01-29 06:39:21 -05:00
```
2024-03-12 01:48:02 -05:00
Then, you need to run `npm start` in the penpot-plugins repository.
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
At this point, you have 2 choices:
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
- if you want to run the examples you should run:
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
```
// for the example plugin
2024-03-19 07:04:47 -05:00
npm run start:example
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
or
2024-01-29 06:39:21 -05:00
2024-05-07 03:28:40 -05:00
npm run start:pc-plugin
2024-03-12 01:48:02 -05:00
```
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
or
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
```
// for the contrast plugin
2024-05-07 03:28:40 -05:00
npm run start:contrast-plugin
2024-03-12 01:48:02 -05:00
```
2024-01-29 06:39:21 -05:00
2024-03-15 03:02:56 -05:00
Open in your browser: `http://localhost:4210/`
2024-01-29 06:39:21 -05:00
2024-03-12 01:48:02 -05:00
- if you want to create a new plugin, read the following [README ](docs/create-plugin.md )
2024-04-08 05:15:04 -05:00
2024-05-23 03:24:30 -05:00
## Sample plugins
2024-05-08 08:32:42 -05:00
| Plugin | Description | PORT | Start command | Manifest URL |
| ------------------ | ----------------------------------------------------------- | ---- | ------------------------------- | ------------------------------------------ |
| poc-state-plugin | Sandbox plugin to test new plugins api functionality | 4301 | npm run start:pc-plugin | http://localhost:4301/assets/manifest.json |
| contrast-plugin | Sample plugin that gives you color contrast information | 4302 | npm run start:contrast-plugin | http://localhost:4302/manifest.json |
| icons-plugin | Tool to add icons from [Feather ](https://feathericons.com/ ) | 4303 | npm run start:icons-plugin | http://localhost:4303/assets/manifest.json |
| lorem-ipsum-plugin | Generate Lorem ipsum text | 4304 | npm run start:loremipsum-plugin | http://localhost:4304/assets/manifest.json |
2024-05-23 03:24:30 -05:00
## Web Apps
| App | Description | PORT | Start command | URL |
| --------------- | ----------------------------------------------------------------- | ---- | ---------------------------- | ---------------------- |
| plugins-runtime | Runtime for the plugins subsystem | 4200 | npm run start | |
| example-styles | Showcase of some of the Penpot styles that can be used in plugins | 4201 | npm run start:styles-example | http://localhost:4201/ |
2024-04-08 05:15:04 -05:00
## License
```
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
Copyright (c) KALEIDOS INC
```
Penpot is a Kaleidos’ [open source project ](https://kaleidos.net/ )